TP2 : Statistiques descriptives.
Séries statistiques regroupées par intervalles
Lorsqu'une série statistique peut prendre n'importe quelle valeur dans un intervalle, ou
si elle prend un trop grand nombre de valeurs discrètes, il est pratique de regrouper ces
valeurs par petits intervalles (qu’on appellent classes). Nous allons voir comment faire
cela avec scilab en prenant l'exemple de la fonction rand() (le générateur de Knuth) qui
génére des nombres uniformément répartis dans l'intervalle \([0,1[\).
Partie 1
Ex1
- Générer la série statistique et les classes
--> X=rand(1000,1); --> classes=[0:0.1:1]; - Calculer le tableau des fréquences avec la fonction
dsearch.--> [ind,n,info] = dsearch(X,classes,'c'); // n contient les effectifs --> N=length(X); // effectif total --> f=n/N;// fréquences - Tracer l'histogramme normalisé
--> histplot(classes,X); // histogramme normalisé - Calculer les fréquences cumulées et tracer la fonction de répartition.
- Calculer la moyenne et la médiane de la même manière que pour une série discrète.
- Calculer la moyenne approchée en attribuant à tous les effectifs de l'intervalle
I=[a_i,b_i]la valeurx_i = \frac{a_i+b_i}{2} - Calculer la variance, l'écart-type et l'inter-quartile de la même manière que pour une série discrète.
Attention ! les fonctions
varianceetstdevsont des estimateurs sans biais de la variance et l'écart type. Elles divisent par la taille de l'échantillon - 1. Utilisez la définion ou la formule de KönigVar(X) = E[ (X-E(X)^2 ] = E[X^2] - E[X^{}]^2 $ - Comparer la variance et la variance approchée (définie comme la moyenne approchée).
Ex2
Refaire l'exercice 1 avec les classes de taille variable :
[0,0.1[,[0.1,0.2[,[0.2,0.5[,[0.5,0.7[,[0.7,0.8,[0.8,1[
Ex3
Refaire l'exercice avec 10^5 tirages.
Partie 2
Le but est de générer des séries statistiques de réels dans l'intervalle [0,1[ et de les comparer aux séries obtenues
avec la fonction rand(). À partir de l'étude statistique (histogramme, répartition, valeur moyenne, écart-type, etc.) on veut pouvoir justifier si la série obtenue
se comporte comme une série de nombres aléatoires uniformément répartis dans l'intervalle [0,1[.
Pour chaque série suivante, reprendre les questions de l'exercice 1 de la partie 1 afin de savoir si elle est un bon générateur de nombres (pseudo-)aléatoires uniformément répartis dans [0,1[.
-
Partie décimale des racines carrées de entiers
--> X=pmodulo(sqrt(1:1000),1); -
Valeur absolue des cosinus d'entiers
--> Y=abs(cos(1:1000)); -
Partie décimale des multiples entiers de
\pi--> Z=pmodulo(%pi*(1:1000),1); -
Partie décimale des multiples entiers de
\frac{1}{7}--> T=pmodulo((1/7)*(1:1000),1); -
On peut également tester s'il y a corrélation entre deux nombres consécutifs
x_netx_{n+1}en portant dans un plan les points de coordonnéesx=x_nety=x_{n+1}. Que constatez-vous pour chaque série précédente ?