Le but de ce DM est de vérifier que vous avez compris les principales étapes à suivre lorsque l’on analyse un jeu de données.

Pour cela, vous appliquerez la démarche de statistiques descriptives vue en cours aux divers jeux de données proposés:

À chaque étape, vous justifierez que ce que vous calculez ou affichez a bien du sens. Le cas échéant, si le jeu de données ne satisfait pas les hypothèses attendues, vous essayerez de vous restreindre à un sous-ensemble du jeu de données en justifiant vos choix. Si vous avez l’impression qu’il y a plusieurs régimes (successifs ou supperposés), vous séparerez les deux régimes et les analyserez séparément.

On rappelle les différentes fonctions de base de R qui pourront vous êtres utiles: str, summary, mean, diff, sort, var, sd, plot, plot.ts, hist, boxplot.

Récupération des jeux de données

## [1] 8.05 7.83 7.91 8.19 7.88 7.91

Vérification du type des données

Les données à analyser sont des ping réguliers vers une machine non spécifiée sur une durée d’environ 25 minutes à une fréquence d’un ping toutes les 0.2 secondes. Les unités des mesures sont en milisecondes. La première chose à faire est de vérifier le type des données que l’on vient de récupérer.

str(data);
##  num [1:8345] 8.05 7.83 7.91 8.19 7.88 7.91 7.87 7.89 7.94 7.98 ...

Nous avons un grand jeu de données numériques, avec 8 345 valeurs de ping. Les premières valeurs semblent relativement proches les unes des autres, mais nous ne pouvons pas en conclure grand chose.

Etude des données

Pour vérifier si ces valeurs suivent une structure dans le temps, nous devons tracer le graphe de l’ensemble de ces valeurs.

plot.ts(data);

Nous remarquons que le régime se rapproche d’un régime stationnaire autour de 7 millisecondes avec deux courtes phases stationnaires plus hautes, autour de 8 millisecondes (vers 1000 et 3000). Nous observons également des pics de pings. Ces pics sont fréquents et ne sont donc pas des valeurs abhérantes. Toutefois nous avons une valeur extrême, dépassant toute les autres, qui est potentiellement abhérante. Nous ne somme pas sûre que ce soit réellement le cas, mais il est plus pertinant de traiter cette valeur à part pour obtenir un histogramme plus précis.

data_extreme = data[data>=30];
data_2 = data[data<=30];
plot.ts(data_2);

Nous ne pouvons pas dire grand chose de la valeur extrême, mise à part qu’elle vaut 50.8 milliseconde et qu’elle est potentiellement abhérante (mais ce n’est pas forcement le cas, donc nous ne devons pas l’oublier pour autant). Nous allons nous concentrer sur l’analyse du régime stationnaire, sans cette valeur extrême. Pour cela, nous allons observer l’histogramme de ces données.

hist(data_2);

Etant donné que nous avons beaucoup de données et que les pics de ping montent beaucoup plus haut que la phase stationnaire, l’histogramme est peu précis. Pour remédier à cela, nous allons augmenter le nombres de bins.

Une autre méthode consiste à observer seulement les données inférieurs à 10 millisecondes pour visualiser avec plus de précision la phase stationnaire (“suppression” ponctuel des valeurs hautes pour plus de clairté). Nous combinons cette méthode avec une augmentation du nombre de bins pour plus de précision.

hist(data_2,breaks=200);

data_stat = data_2[data_2<=9];
data_stat2 = data_stat[data_stat>=5];
hist(data_stat2,breaks=50);