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

Commençons par visualiser les données à l’aide de plot.ts:

plot.ts(data);

On remarque que la courbe suit une loi exponentielle similaire à la charge d’un condensateur, avec un régime stationnaire atteint pour des valeurs supérieures à 250 en abscisse. Observons ces deux régimes:

plot.ts(data, main = "Régime transitoire", xlim = c(0, 250));

plot.ts(data, main = "Régime stationnaire", xlim = c(250, 500));

La valeur de la variance est proche de 0, cela nous indique que la courbe est proche du modèle théorique (charge exponentielle), les valeurs sont proches les unes des autres:

var(data);
## [1] 0.002276428

La fonction summary nous renseigne sur la valeur atteinte au régime stationnaire (taux d’accès maximal au cache: 66%):

summary(data);
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1275  0.6308  0.6436  0.6278  0.6492  0.6631

Traçons un histogramme suffisamment précis pour y voir apparaître clairement la valeur maximale:

hist(data, breaks = 25);

Le jeu de données contient 2000 échantillons, avec l’histogramme on remarque que le régime transitoire représente plus de la moitié de ces échantillons (environ 1200 échantillons plus quelques centaines d’autres très proches de cette valeur).

Afin d’encore plus confirmer le modèle théorique, déterminons le temps caractéristique τ du phénomène (obtenu lorsque les valeurs atteignent 63% de leur valeur maximale, ie: pour un taux d’accès de 0.417):

plot.ts(data, main = "Recherche du temps caractéristique", xlim = c(0, 100));

En bonne approximation, τ correspond à 30 unités d’abscisses, soit 3 secondes (100ms entre chaque échantillons). Ainsi, en abscisses τ*5=150, les données devraient atteindre 95% de leur valeur maximale (taux d’accès de 0.62):

plot.ts(data, xlim = c(100, 200));

Or à cet instant les données sont estimées à 0.56. La valeur à 95% est atteinte en abscissses égales à 350 (voir la courbe du régime stationnaire). Il faudrait un temps caractéristique 2 fois plus grand pour faire correspondre le jeu de données au modèle théorique. Il est difficile de confirmer ce modèle du fait des imprécisions des données, mais elles semblent concorder.