Thème 05

Lecture de fichier, statistiques descriptive

1. Lecture de fichier

Sur le site internet, on trouvera le fichier data.txt que l’on téléchargera et stockera dans son dossier personnel.


Maple peut lire ce fichier. Pour cela, on doit commencer par ouvrir le fichier en utilisant la fonction fopen(NomFichier,READ);

Cette fonction renvoie un numéro d’identification du fichier qui sera utilisé par la suite. La variable NomFichier contient le nom long du fichier, c’est-à-dire le nom avec le chemin d’accès. On utilise des chemins absolus.


On peut alors procéder à la lecture (scan) des données formatées. On utilise la fonction fscanf(Fichier,format);

Cette fonction renvoie dans une liste les caractères lus dans le fichier. La variable Fichier contient la description du fichier tel que renvoyé par fopen. Quant à la variable format elle contient le format des données à lire. Par exemple,

%d permet de lire un entier.

%f permet de lire un réel (float).

%[...] permet de lire une suite de caractères spécifiés. La lecture s’arrête lorsque l’on lit un caractère qui n’est pas entre [...].

%[^...] c’est le même que le précédent, sauf que c’est le contraire, la lecture s’arrête lorsqu’on rencontre un caractère entre [^...].

On peut lire plusieurs données en un seul appel. Par exemple, format := “%d,%d“ permet de lire deux entiers séparés par une virgule.


Enfin, afin d’éviter les erreurs, on veillera à toujours fermer le fichier après utilisation, en appelant fclose(fichier);

2. Nombres aléatoires


Maple dispose d'une fonction, rand() permettant d'obtenir un nombre entier aléatoire à 12 chiffres, cette fonction peut être initialisée avec la variable _seed.


La bibliothèque random permet également de simuler des nombres aléatoires.


3. Statistiques descriptives

Paramètres de position

Soient x1,...,xn des données statistiques. Il a deux paramètres de dispersion, la moyenne et la médiane.


La moyenne .

Dans le cas de données pondérées, f1,...,fn désignant les fréquences associées aux données x1,...xn, on utilise


La médiane. Pour la calculer, on classe les données par ordre croissant x(1),...,x(n), puis il y a deux cas

Si n = 2p+1, alors q2 = x(p+1),
Si n = 2p, alors q2 = (x(p)+x(p+1))/2.

De sorte qu'il y a autant de données supérieures à la médiane qu'inférieures à la médiane. La médiane est aussi appelée deuxième quartile.

Le premier quartile q1 est défini tel qu'un quart des données soit inférieur, le troisième quartile q3 tel qu'un quart des données soit supérieur.

Ces différents quartiles peuvent aussi être définis dans le cadre de données pondérées.

2. Paramètres de dispersion

Variance et écart-type
On les définit par

On a également la formule de Koenig

Dans le cas de données pondérées, on a les formules


Étendue, intervalle interquartile

L'étendue, est simplement

w = max(x1,...,xn) – min(x1,....,xn)
l'intervalle interquartile, q3-q1.

3.Coefficient de corrélation

Ce coefficient permet de savoir si deux séries x1,...,xn et y1,...,yn de données varient de manière conjointe ou non. Il est compris entre -1 et 1. Pour calculer ce coefficient, on commence par calculer la covariance

Le coefficient de corrélation se calcule alors par la formule

4. Graphiques

Il existe de nombreux types de graphiques, que l'on peut tracer à partir d'une série statistique, on en donnera seulement deux.


L'histogramme


On l'utilise pour des séries de données pondérées. On represente les données par des rectangles dont la hauteur est égale à la fréquence de chaque donnée. Le tracé d'histogramme se fait en regroupant les données par classes.

Pour tracer un tel histogramme, on définit les classes, puis, à l'aide de la commande transform[tallyinto], on regroupe les données par classes. L'appel à la fonction histogram permet alors d'obtenir l'histogramme cherché.

La boîte à moustache

On représente les données sous la forme d'une boite représentant les trois quartiles, et d'une moustache de longeur égale à 1,5 fois l'intervalle interquartile. Les données en dehors de la moustache sont également positionnées.


5. Pour la prochaine scéance

Lancer les procédures suivantes. Analyser les résultats.

serie1 := proc()
stats[random,normald[50,5]](100);
end;

serie2 := proc()
stats[random,binomiald[100,0.5]](100);

end;