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] 0.608297 0.777268 0.882875 0.839618 0.839641 0.839816

Pour ce DM, nous étudierons le taux d’accès réussi au cache durant l’exécution d’un programme. Nous disposerons donc du jeu de données suivant :

On peut alors observer dans ce jeu de donnée une structure stationnaire des valeurs récupérées. En effet bien qu’on pourrait penser à une phase d’évolution des valeurs au début de la prise de données, celle-ci est bien trop rapide pour avoir une signification pour notre étude.

##  [1] 0.608297 0.777268 0.882875 0.839618 0.839641 0.839816 0.908855
##  [8] 0.908855 0.921269 0.921269 0.933003 0.933003 0.933003 0.942508
## [15] 0.942508 0.942631 0.942631 0.942631 0.942631 0.942631

On peut voir en affichant les 20 premières valeurs que seulement 6 valeurs sont en dessous de la barre des 0.9. Ces valeurs n’ont donc aucune incidence sur le reste de notre étude et pourront donc être exclues des prochaines études.

dataTrunc=data[6:2000];
plot.ts(dataTrunc);

A partir d’ici, deux valeurs sont en-dessous de 0.90, ne semblent pas être représentatives de la tendance que l’on peut observer (stationnaire) et pourraient fausser notre étude si jamais on les prennait en compte. Ces valeurs seront donc considérées comme aberrantes et pourront être supprimées en restreignant la lecture des données à des valeurs supérieurs à 0.90.

dataRestrict=dataTrunc[dataTrunc>0.90];
plot.ts(dataRestrict);

Le jeu de données semble être maintenant propice à une étude statistique et nous pouvons donc tracer un premier histogramme de ce jeu :

hist(dataRestrict);

En diminuant la taille des bins de notre histogramme on peut remarquer que des tendances incohérentes apparaissent. On devra donc se limiter au premier histogramme affiché précédement qui semble afficher une tendance cohérente pour notre jeu de données.

hist(dataRestrict, breaks=30);

On observe aucune asymétrie forte dans notre histogramme et une courbe plutôt régulière. A partir de ce résultat nous pouvons donc utiliser la fonction summary afin de résumer l’échantillon obtenu.

summary(dataRestrict);
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.9089  0.9817  0.9864  0.9831  0.9882  0.9904

Cette fonction valide l’histogramme obtenu en nous indiquant une médiane et une moyenne très proche (validable par l’histogramme qui nous indique une forte accumulation de valeurs près de 0.9864). Les quartiles sont très proches de la médiane eux aussi et participe à montrer cette accumulation de valeurs.

On peut désormais tracer un boxplot afin de résumer l’échantillon obtenu.

boxplot(dataRestrict);

Celui-ci conclue notre étude en résumant les analyses que nous avons pu faire précédement. Les valeurs observées nous montrent bien que le taux d’accès au cache est plutôt bon dans le cadre de ces exécutions. La moyenne tourne aux alentours de 0.988 et la box nous montre une forte concentration de valeurs centrées autour de cette moyenne. Seules quelques valeurs sont non-incluses dans la box, vacillant entre 0.92 et 0.97, leur nombre augmentant en se rapprochant de la valeur du premier quartile (validé par l’histogramme qui nous montre un courbe ascendante ayant ce profil). Toutefois ces valeurs restes peu nombreuses face à la tendance globale du jeu de données qui tend à montrer un taux d’accès au cache élevé et constant.