Vous êtes sur la page 1sur 25

Probabilits et statistiques

Travaux pratiques avec Matlab

Stefan Le Coz 1

1. Ce document est librement inspir de polycopis dont je disposais lors de son


criture (2005). lpoque, je navais pas pris la peine de faire de bibliographie et je
nai pas gard trace des document dont je me suis inspir. Malgr les apparences, il
ny a donc aucune prtention loriginalit quant la prsentation qui est faite dans
ce document, qui est plus une compilation des diffrentes sources dont je disposais
lpoque quun travail vritablement original.
Table des matires

1 Introduction Matlab 2
1.1 Remarques prliminaires concernant lapprentissage de Matlab . . 2
1.2 Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Calculs matriciels lmentaires . . . . . . . . . . . . . . . . . . . . 5
1.4 Calculs matriciels plus labors . . . . . . . . . . . . . . . . . . . 7
1.5 Graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6 Entres et sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Oprations logiques, boucles et excutions conditionnelles . . . . . 8
1.8 Fonctions et fichiers .m . . . . . . . . . . . . . . . . . . . . . . . . 9
1.9 Rcursivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.10 Fonctions en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Statistique descriptive 12

3 Simulation de variables alatoires 14


3.1 Loi uniforme et simulation . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Simulation de lois discrtes . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Simulation de lois par la mthode du rejet . . . . . . . . . . . . . 16
3.4 Simulation des lois gaussiennes . . . . . . . . . . . . . . . . . . . 16
3.4.1 Mthode de Box-Mller . . . . . . . . . . . . . . . . . . . 16
3.4.2 Mthode polaire . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.3 Quelques prcisions . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Simulation de lois par leur fonction de rpartition . . . . . . . . . 18
3.6 tude de la planche de Galton . . . . . . . . . . . . . . . . . . . . 18

4 Statistique infrentielle 20
4.1 Estimations et intervalles de confiance . . . . . . . . . . . . . . . 20
4.1.1 Estimations ponctuelle . . . . . . . . . . . . . . . . . . . . 21
4.1.2 Intervalles de confiance . . . . . . . . . . . . . . . . . . . . 21
4.1.3 Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Test du 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.1 Ajustement par la loi binomiale . . . . . . . . . . . . . . . 22
4.2.2 Ajustement par la loi de Poisson . . . . . . . . . . . . . . . 22
4.2.3 Ajustement par la loi normale . . . . . . . . . . . . . . . . 23

1
Chapitre 1

Introduction Matlab

1.1 Remarques prliminaires concernant lappren-


tissage de Matlab
Un langage de programmation, tel Matlab, ne sapprend pas tout fait comme
une thorie mathmatique. En particulier, il ne faut pas esprer lapprendre de
manire trs linaire.
Ce chapitre se veut une aide pour commencer apprivoiser Matlab. Il introduit,
par petites touches, ce qui est utile pour programmer.

Sil ne faut retenir quune seule chose de cette introduction, cest...


la remarque 1.2 ( laide !).

Matlab est un logiciel commercial de calcul matriciel dvelopp par la so-


cit MathWorks. Son nom est la contraction de "Matrix Laboratory". Il consiste
essentiellement en un interprteur de commandes, crites dans un langage de pro-
grammation spcifique appel langage Matlab. Les commandes Matlab sont saisies
et interprtes ligne ligne dans une fentre (console). Comme nous le verrons
plus loin, elles peuvent galement tre regroupes dans un fichier dont le nom se
termine par .m.
Les variables Matlab sont toutes des tableaux, "arrays" en anglais, dfinies au
moment de leur affectation. Il ny a donc pas besoin de les dclarer. Un nombre
complexe (ou rel, ou entier) est un tableau de taille 1 1, un vecteur ligne est
un tableau de taille 1 n et un vecteur colonne est un tableau de taille n 1. Le
langage Matlab a t conu pour faciliter les oprations sur les matrices.
Le langage Matlab permet de manipuler des donnes de diffrents types dont
certains sont imbriqus : entiers, nombres rels, nombres complexes, caractres,
boolens. Ces donnes peuvent tre assembles en tableaux de diffrents types
imbriqus : vecteurs, matrices, tenseurs (matrices plus de 2 dimensions). Les
chanes de caractres sont des vecteurs de caractres.

2
CHAPITRE 1. INTRODUCTION MATLAB 3

1.2 Matlab
En Matlab, les nombres rels sont reprsents en virgule flottante avec 52
chiffres significatifs en base 2, soit un peu moins de 16 en base 10 (regarder
help eps). Les oprations lmentaires sur les nombres rels sont :

+ / \

qui reprsentent respectivement laddition, la soustraction, la multiplication, la


division gauche et la division droite, et enfin llvation une puissance.
Ces oprations sappliquent galement aux matrices, et dans ce cas, \ et / sont
diffrentes.
Comme nous allons le voir, Matlab diffrentie minuscules et majuscules dans
les noms de variables. Laffectation est note =.
Matlab effectue ses calculs dans lensemble des tableaux plusieurs dimensions,
et donc en particulier les matrices, carres ou non, et les vecteurs ligne et colonne.
Bien entendu les oprations sur ces tableaux ne sont faites que lorsquelles ont
un sens. En gnral, Matlab donne un sens assez intuitif aux oprations entre
matrices. Cela dit, son langage contient de nombreuses spcificits que nous allons
apprendre utiliser.
Voici un exemple de code Matlab, saisir ligne par ligne dans la fentre de
commandes.

Exemple 1.1

a=0

On cre une variable relle nomme a, initialise 0. Matlab affiche sa valeur une
fois que lon a appuy sur la touche Entr\{e}e. En suffixant par un point-virgule,
on vite laffichage de la valeur de a.

a=0;

Pour connatre le contenu dune variable, il suffit dinvoquer son nom.

Matlab diffrencie majuscules et minuscules. Ainsi, on peut crer la variable A,


diffrente de a.

A=1

Vous pouvez rappeler les commandes prcdement excutes au moyen des touches
flches de votre clavier (haut et bas).
Voici un calcul compliqu base des variables a et A prcdentes.

A*a+cos(a)/(1+sqrt(1+A^2))
CHAPITRE 1. INTRODUCTION MATLAB 4

La fonction sqrt donne la racine carre ("square root"). La variable spciale ans
contient la dernire rponse de Matlab qui na pas t affecte une variable. On
peut lister les variables actuellement dfinies avec la commande whos. On voit que
pour Matlab, les variables a et A sont des matrices 1 1.

whos

Pour une liste plus succincte, on peut utiliser la commande who. On peut dtruire
une variable au moyen de la commande clear.

clear a % destruction de la variable a

Vrifions que la variable a nexiste plus.

who

On peut aussi dtruire toutes les variables laide de la commande clear. Pour
obtenir de laide (en anglais !) sur une commande, on peut utiliser la commande
help.

help who

La commande helpwin permet dobtenir une liste des commandes Matlab classe
par thme. Nous pouvons tre amen rencontrer certaine valeurs particulires.
Tester les commandes suivantes.

1/0 % Infini positif Inf


-1/0 % Infini n\{e}gatif -Inf
0/0 % Not a Number (NaN)
0*Inf % Not a Number (NaN)
1/Inf % Donne bien z\{e}ro
pi % Donne bien le nombre pi
help pi % Donne sa d\{e}finition pour Matlab
i % Racine carr\{e}e (complexe) de -1.
help i % Sa d\{e}finition pour Matlab.

Remarquons quil est quand mme possible dutiliser i comme variable...

Remarque 1.2 [ laide !] La commande help permet dobtenir de laide sur les
commandes Matlab, help help donne de laide sur laide ! Enfin, la commande
lookfor permet de lister les commandes Matlab par mots cls.

Remarque 1.3 [Affichages] Si X est un tableau :


la commande disp(X) affiche son contenu sans afficher son nom. Sil est
vide, rien nest affich. La variable X vide est symbolise par [ ], on peut
tester si X est vide grce la commande isempty(X).
CHAPITRE 1. INTRODUCTION MATLAB 5

la commande display(X) affichera le nom de la variable (X ici) ainsi que son


contenu, mme sil est vide. Cette commande est utilise automatiquement
par Matlab lorsque quune expression ne se termine pas par un point-
virgule.

Exercice 1.4 Tester et interprter les commandes suivantes.


A= [2,4,8;3,9,27] A(2,3) b=A(2,:) c=A(:,3) B=A(1:2,1:2) A U=[l:20]
V=[l:2:20] V-U(l:2:20) W=[pi/2:1:pi]

Les commandes comme sqrt qui prennent un ou plusieurs arguments (ou para-
mtres) entre parenthses constituent des fonctions. Nous verrons plus loin com-
ment en crer de nouvelles.

1.3 Calculs matriciels lmentaires


Les tableaux suivants indiquent diffrents calculs possibles sur les matrices.

Commande Sens
A=[3,4;1,0] Matrice 2 2
B=(A>0) B = matrice tq Bij =1 si Aij >0 et 0 sinon
V=[5;5] Vecteur colonne de dimension 2, scrit aussi [5,5]
length (V) Renvoie la longueur du vecteur V
size(A) La fonction size renvoie la taille de A

Figure 1.1 Quelques exemples.

A transpose de A
A*B Multiplication matricielle de A et B
A+B Addition matricielle de A et B
A^99 Puissance matricielle
expm(A) Exponentielle matricielle
inv(A) Matrice inverse
sqrtm(A) Racine carre matricielle (cf. help sqrtm)
logm(A) Logarithme matriciel (cf. help logm)
A*V Image du vecteur colonne V par la matrice carre A
V*A Devinez...
A\V Solution du systme linaire AX=V (par pivot, et pas par inv(A))
help slash Aide explicative sur la division matricielle prcdente

Figure 1.2 Oprations matricielles classiques.


CHAPITRE 1. INTRODUCTION MATLAB 6

A=ones(n,n) Matrice de taille n n dont tous les lments valent 1


B=zeros(n,n) Matrice nulle de taille n n
C=eye(n,n) Matrice identit de taille n n. Que donne eye(3,7) ?
[A,B,C] juxtaposition horizontale des matrices A, B et
[A;B;C] juxtaposition verticale des matrices A, B et C
N=0*J Astuce pour obtenir une matrice N nulle de mme taille que J
sans connatre la taille de J.
sparse Cration dune matrice creuse (cf help sparse)

Figure 1.3 Cration de matrices.


C=A.*B C(i,j)=A(i,j)*B(i,j)
C=A./B C(i,j)=A(i,j)/B(i,j)
C=A.3 C(i,j)=A(i,j)*3
C=3+A C(i,j)=3+A(i,j)
C=3*A C(i,j)=3*A(i,j)
C=A./3 C(i,j)=A(i,j)/3
C=cos(A) C(i,j)=cos(A(i,j))
C=log(A) C(i,j)=log(A(i,j)). Ne pas confondre avec logm(A) !
G=sqrt (A) C(i,j)=sqrt(A(i,j)). Ne pas confondre avec sqrtm(A) !
C=exp(A) C(i,j)=exp(A(i,j)). Ne pas confondre avec expm(A) !
C=abs(A) C(i,j)=|A(i,j)|

Figure 1.4 Oprations entre par entre.

Laide sur les oprations lmentaires sobtient par la commande help ops et
celle sur les oprations lmentaires matricielles par help elmat.
Lajout dun point devant un oprateur arithmtique indique Matlbab que
les oprations sur la matrice se font composantes par composantes. Vous pouvez
faire help arith pour de laide sur les oprations arithmtiques et help @ pour
de laide sur les oprateurs en gnral et les caractres spciaux.
Comme on vient de le voir, les sous matrices sobtiennent en spcifiant des
intervalles dindices. Si i,j, k sont des entiers relatifs, alors :
i:j est identique i, i + 1, ..., j,
i:k:j est identique i, i + k, i + 2k, ..., j.
Lintervalle vide est reprsent par la matrice vide [ ]. Une ligne ou une colonne
entire peut tre obtenue en utilisant le caractre : seul. Enfin, une matrice den-
tiers E peut servir spcifier les indices dune matrice A, en crivant A(E). Il ne
faut pas confondre les expressions de la forme [...], qui permettent de fabriquer
des matrices, avec celles de la forme M(...), qui permettent de considrer une
sous-matrice de la matrice M.
CHAPITRE 1. INTRODUCTION MATLAB 7

1.4 Calculs matriciels plus labors


Le tableau 1.4 prsente des oprations matricielle plus labores que les prc-
dentes. Remarquons que les oprateurs de type sum servent trs souvent lorsquil
sagit dviter les boucles.

det(M) Dterminant
rank(M) Rang
trace(M) Trace
D=eig(M) Renvoie le vecteur colonne des valeurs propres de M
[P,D]=eig(M) Diagonalise M=P*D*P1 avec D diagonale
sum(V) Somme des lments du vecteur V
sum(M) Somme des colonnes de la matrice M (renvoie un vecteur ligne)
sum(M,2) Somme les lments de la matrice M selon la dimension 2
sum(sum(M) Somme totale des lments de la matrice M
cumsum(V) Sommes cumulatives des entres du vecteur V
cumsum(M) Matrice des sommes cumulatives des colonnes de M
cumprod(V) Produits cumulatifs des entres du vecteur V
cumprod(M) Matrice des produits cumulatifs des colonnes de M
max(M) Renvoie un vect. ligne = au max sur chaque col . de M
max(max(M)) Maximum des entre de la matrice M.

Figure 1.5 Calculs matriciels labors


Pour laide sur les oprations matricielles lmentaires et sur les fonctions
matricielles, on peut utiliser helpwin elmat ainsi que helpwin matfun

1.5 Graphiques
Le principe gnral des reprsentations graphiques est de se ramener des
calculs sur des matrices ou des vecteurs. Ainsi la repsentation dune fonction
de R dans R commencera par la cration dun vecteur dabscisses, en gnral
rgulirement espaces, auxquelles on applique la fonction pour crer le vecteur
des ordonnes. La commande hold on permet de superposer des tracs successifs
sur une mme figure.

1.6 Entres et sorties


La commande input permet de demander lutilisateur de saisir des valeurs
de variables. La commande pause permet de stopper lexcution de Matlab pen-
dant un temps dtermin, cf. help pause. La forme spciale pause off dsactive
les pauses tandis que pause on les ractive. La commande save permet de sauve-
garder le contenu des variables en cours ainsi que leur nom dans un fichier, dont
CHAPITRE 1. INTRODUCTION MATLAB 8

mean(Y) Moyenne arithmtique


median(Y) Mdiane
std(Y) cart type normalis en N 1
plot(Y) Trac du vecteur Y. Abscisses ? Ordonnes ?
plot(Y,r-) Autre trac avec couleur et type de ligne
plot (X,Y,r-) Vous comprenez
hist(Y) Histogramme (10 classes par dfaut, cf. help hist)
[Eff,Cl]=hist(Y,50) Histogramme 50 classes de Matlab
figure Cration dune nouvelle fentre graphique
title (Nom) Titre de la figure
xlabel(Nom) Titre des abscisses
ylabel(Nom) Titre des ordonnes
imagesc(A); Trace la matrice, couleurs = valeurs relatives
hold off On ne va pas utiliser la mme fentre graphique
contour(A) Trace les lignes de niveau

Figure 1.6 Fonctions graphiques.

le nom est par dfaut matlab.mat. Ce fichier peut tre lu par la commande load,
qui restaure donc toutes les variables.

1.7 Oprations logiques, boucles et excutions condi-


tionnelles
Pour Matlab, tout nombre peut tre considr comme une valeur logique, en
identifiant les nombres non nuls vrai (not 1) et le nombre zro faux (not
0). La commande boolean permet dobtenir le boolen associ un nombre vu
comme une valeur logique. Les principales oprations sur les valeurs logiques sont :
la ngation logique ~ ,
le "ou" logique | ,
le "et" logique &.
On peut galement utiliser respectivement les fonctions or, not et and. Il y en
a dautres, faites donc un help ops. On peut crer des valeurs logiques partir
de nombres avec les oprations de comparaisons, qui activent automatiquement
la nature logique de leurs arguments :
"a gal b" scrit a == b
"a diffrent de b" scrit a ~= b
"a suprieur strictement b" scrit a > b
"a suprieur ou gal b" scrit a >= b
"a infrieur strictement b" scrit a < b
"a infrieur ou gal b" scrit : a <= b
CHAPITRE 1. INTRODUCTION MATLAB 9

On peut galement utiliser respectivement les fonctions eq, ne, gt, ge, lt et leq.
Le code Matlab R=randn(5,5);M=(R>=2.1) cre une matrice M de mme taille
que R qui contient des 0 l o R est infrieure 2.1 et des 1 l o R est suprieure
ou gale 2.1. Cest donc une matrice "boolenne". La commande any(V) renvoie
1 si au moins lun des lments du vecteur V est non nul, et 0 sinon. La fonction
all(V) renvoie 1 si tous les lments du vecteur V sont non nuls, et 0 sinon. Enfin
la fonction find(V) renvoie les indices correspondants aux lments non nul du
vecteur V. Ainsi, V(find(V>2)) renvoie les valeurs suprieures 2 du vecteur V.
Les commandes Matlab isreal, ischar, issparse, isnan, isinf, isfinite
permettent de tester la nature des variables. Ainsi, isreal(a) renverra 1 si la
variable a est un rel et 0 sinon.
Le langage Matlab comprend les boucles du type for et while ainsi que les
structures dexcutions conditionnelles du type if. Largument dun if et dun
while est de type logique, ce qui nest pas le cas de celui dun for, qui est de
type matriciel. La commande break permet de sortir de la boucle while ou for
la plus interne.

1.8 Fonctions et fichiers .m


Les commandes Matlab peuvent toutes tre considres comme des fonctions,
cest--dire des entites nommes, qui prennent des paramtres ventuels (argu-
ments) et qui renvoient des rsultats (valeurs de retour). Beaucoup de fonctions
Matlab, comme mean par exemple, sont en ralit crites en Matlab, et le code
Matlab correspondant est stock dans un fichier dont le nom se termine par .m.
Pour mean, il sagit de mean.m. Pour ajouter de nouvelles fonctions Matlab, il
nous suffit dcrire de nouveaux fichiers de ce type. Vous aurez compris quun
fichier .m ne contient quune seule fonction, qui a le mme nom que le fichier, au
suffixe .m prs.
Voici un code qui dfinit une fonction stat, qui prend comme paramtre un
vecteur x et qui renvoie sa moyenne et son cart type. Ce code devra tre stock
dans le fichier nomm stat.m pour que Matlab fasse le lien avec la fonction
stat. Le commentaire de la deuxime ligne constitue laide qui est affiche lorsque
lutilisateur tape help stat.
function [moyenne,ecartype]=stat(x)
%STAT Renvoie la moyenne et l\{e}cart type
du vecteur pass\{e} en argument."
n=length(x);
moyenne=sum(x)/n;
ecartype=sqrt(sum((x-moyenne)/n);
return % En fait, inutile en fin de fonction
Le fichier stat.m devra tre plac dans un rpertoire que Matlab scrutera.
En gnral, Matlab cherche automatiquement dans le rpertoire en cours. Pour
afficher le rpertoire en cours, utilisez la fonction pwd, pour lister son contenu,
CHAPITRE 1. INTRODUCTION MATLAB 10

utilisez la fonction ls et pour changer de rpertoire courant, utilisez la fonction


cd.
La commande Matlab type permet de lister le contenu du fichier .m dune
fonction. Ainsi, type mean va vous montrer le code source Matlab de la fonction
mean. Un certain nombre de fonctions Matlab ne correspondent aucun fichier
.m, elles sont "internes" Matlab pour une plus grande efficacit et lon parle
de fonctions "built-in". Cest par exemple le cas de la fonction type elle-mme !
Cette sparation entre fonctions internes et externes se retrouve dans la plupart
des interprteurs de langages. La commande exist permet de connatre le type
dune commande ou dune variable, cf. help exist.
Sur la plupart des systmes informatiques, les fichiers sont organiss en une
structure arborescente de rpertoires qui contiennent des fichiers et des sous-
rpertoires. La commande Matlab which donne le chemin du fichier .m associ
une fonction Matlab, lorsquil existe. Par exemple, which mean -ALL affichera
tous les fichiers mean.m avec leurs chemins. Seul le premier sera utilis par Matlab !
La commande what liste les fichiers .m du rpertoire en cours. Faites help what
et help which pour plus dinformation.
Matlab a besoin de savoir o chercher les fichiers .m dans larborescence des
fichiers du systme. Il recherchera automatiquement dans une liste de rperoires
appele "PATH". La commande path vous liste les rpertoires du "PATH". Les
commandes addpath et rmpath permettent dajouter et denlever des rpertoires
de la liste "PATH". Ces modifications ne sont pas permanentes et sont perdues
lorsque vous quittez Matlab.
Par dfaut, la liste "PATH" contient les rpertoires de Matlab, qui contiennent
eux-mme les fichiers .m qui constituent Matlab. Afin dacclrer la lecture des
fichiers .m, Matlab maintient en permanence une base de donnes des fichiers .m
avec le rpertoire associ qui les contient. La commande rehash permet de mettre
jour cette base de donnes en relisant la liste "PATH".
Il faut enfin savoir que Matlab cherche dabord les fichiers .m des fonctions
dans le rpertoire courant ("working directory"). Rptons-le, la commande pwd
affiche le rpertoire courant ("print working directory"), la commande cd change
de rpertoire courant ("change directory"), et les commande ls ou dir listent le
contenu du rpertoire courant.
En gnral, vous naurez pas modifier la liste "PATH". Sa modificaton per-
manente dpend du systme utilis (Unix, MS-Windows,... ).

1.9 Rcursivit
Le langage Matlab autorise la rcursivit, comme le montre lexemple archi-
classique suivant :

function fn=fact(n);
% fact cacule de fa\c{c}on r\{e}cursive (et particuli\{e}rement inefficace)
CHAPITRE 1. INTRODUCTION MATLAB 11

% la factorielle de n.
if (n<=0), fn=1; else fn=n*fact(n-1); end

Exercice 1.5 En utilisant la fonction prod, crire une fontion calculant n! de


faon non rcursive (et beaucoup plus efficace).

1.10 Fonctions en ligne


Pour des fonctions trs lgres, on peut procder autrement que par la cration
dun fichier .m : la directive inline permet de crer des fonction nouvelles la
vole. Voici un exemple :
On dfinit une nouvelle fonction trisin qui prend 3 paramtres a, b et c
trisin=inline(sin(a)*sin(b)*sin(c));
On teste notre nouvelle fonction :
trisin(pi/2,pi/4,pi/2)
Matlab dtermine automatiquement le nombre de paramtres de la fonction.
Bien entendu, une fois que vous quitterez Matlab, cette fonction sera perdue car
elle nest pas sauvegarde dans un fichier.

Exercice 1.6 Apprenez utiliser la fonction fplot pour tracer les graphes de
fonctions dfinies avec inline.
Chapitre 2

Statistique descriptive

Exercice 2.1 On se donne les sries statistiques suivantes. crire un programme


donnant pour chacune dentre elles une reprsentation graphique des donnes (dia-
gramme en baton ou histogramme selon les cas), tracant la fonction de rpartition,
et indiquant les caractristiques de positions (mode, mdiane, moyenne, quartiles)
et de dispertion (tendue, variance, cart-type).

Mnages Effectifs Frquences


1 personne 5 845 140 0,2713
2 personnes 6 366 948 0,2957
3 personnes 3 821 700 0,1774
4 personnes 3 371 484 0,1565
5 personnes 1 439 144 0,0668
6 personnes ou plus 695 736 0,0323
Somme 21 542 152 1,0000

Figure 2.1 Mnages suivant le nombre de personnes du mnage en 1990, en


France.

Exercice 2.2 [Sries statistiques deux variables] On se donne la srie statistique


double suivante.
crire un programme donnant une reprsentation graphique des donnes (nuage
de points), traant la droite de rgression (en utilisant la mthode des moindres
carrs) et indiquant le coefficient de corrlation entre les deux variables.

12
CHAPITRE 2. STATISTIQUE DESCRIPTIVE 13

Classes dge Effectifs Classes dge Effectifs Classes dge Effectifs


[15,17[ 800 [29,31[ 51200 [41,43[ 800
[17,19[ 7 000 [31,33[ 32 000 [43,45[ 200
[19,21[ 14 350 [33,35[ 23 200 [45,47[ 80
[21,23[ 28 000 [35,37[ 16 000 [47,49[ 40
[23,25[ 44 000 [37,391 8 000
[25,271 54 800 [39,41[ 2 400
[27,29[ 56000

Figure 2.2 Naissances en France en 1994 en fonction de lge de la mre (en


millier).

Firmes CA Firmes CA Firmes CA


General Motors 860 Nestl 231 PSA 166
Ford Motor 713 FIAT 226 BASF 159
Exxon 563 Sony 216 ABB 158
Royal Dutch Shell 526 Honda Motor 215 Pepsico 158
Toyota Motor 441 Elf Aquitaine 208 PEMEX 156
Hitachi 412 NEC 205 Nippon Steel 156
Matsushita 377 Daewoo 197 Mitsubishi Heavy I. 155
General Electric 359 Du Pont de Nemours 194 Amoco 150
Daimler Benz 356 RWE 191 Bayer 148
IBM 355 Japan Tobacco 190 Nippon Oil 144
Mobil 331 Philips 186 BMW 144
Nissan Motor 317 Mitsubishi Motors 185 Hewlett-Packard 139
Philip Morris 298 Texaco 185 Kansai Electric P. 138
Chrysler 290 EDF 183 Total 137
Siemens 289 Renault 179 Conagra 131
British Petroleum 281 Fujitsu 177 Motorola 123
IR 279 Mitsubishi Electric 176 Petroleos de Venezuela 123
Volskwagen 273 ENI 174 Bat industries 122
Tokyo Electric P. 271 Chevron 172 Boeing 122
Toshiba 260 Hoeschst 170 Mazda Motor 120
Unilever 251 Procter & Gamble 168 Thyssen 119
VEBA 243 Alcatel Alsthom 168

Figure 2.3 Chiffres daffaires (en milliards de francs), en 1994, des principaux
groupes industriels mondiaux.

Xi 29 4 69 65 98 55 40 19 62 73 37 0 41 75 79
Yi 26 4 65 66 90 56 43 26 66 76 35 2 45 68 86
Chapitre 3

Simulation de variables alatoires

Considrons une suite de chiffres x1 , x2 , ..., xn de lintervalle [0, 1] ou dentiers


entre 0 et 9. Quand peut-on dire quelle est constitue de ralisations indpen-
dantes dune loi uniforme sur [0, 1] (resp. sur {0, ..., 9}) ? Et bien dans tout les
cas bien sr. Cependant, lintuition nous indique que ce sont les proprits "sta-
tistiques" des suites qui sont importantes, et pas celles dune suite donne... Pour
certains, une suite qui peut tre gnre par un algorithme nest pas alatoire. De
ce point de vue, une suite finie nest jamais alatoire !
Pour nous, simuler une loi de probabilit L consistera crire un programme
informatique pouvant gnrer des suites finies dont on considrera que ce sont
des ralisations indpendantes de loi L. Bien entendu, comme nous ferons appel
le plus souvent des algorithmes dterministes, les suites gnres ne seront pas
du tout alatoires et encore moins indpendantes. On parlera de suites pseudo-
alatoires. Cependant, elles se montrent suffisantes dans la pratique et lon pourra
vrifier exprimentalement quelles ont de "bonnes" proprits en utilisant les tests
statistiques.
La loi uniforme est la premire loi que lon simule. Diverses mthodes per-
mettent ensuite de simuler partir de la loi uniforme, un grand nombre de lois,
plus ou moins quelconques. Dans la pratique, on met en uvre des algorithmes
rapides de gnration de suites pseudo-alatoires.
Matlab permet de simuler une loi uniforme (resp. normale) via la fonction
rand (resp. randn).

rand renvoie un nombre selon la loi uniforme entre 0 et 1


randn renvoie un nombre selon la loi normale
rand(4,4) Une matrice 4x4 dont les entres sont
des ralisations de loi uniforme sur [0,1]
randn(4,4) Idem mais avec la loi normale
rand(1000,1) 1000 ralisations pseudo-uniformes et pseudo-indpendantes

Figure 3.1 Uilisation de rand et randn

14
CHAPITRE 3. SIMULATION DE VARIABLES ALATOIRES 15

3.1 Loi uniforme et simulation


Les gnrateurs de nombres alatoires sont trs importants dans les applica-
tions. Ils permettent dune part de simuler des phnomnes dont la modlisation
fait appel des lois de probabilits et dautre part de scuriser les changes de
donnes, dans les rseaux tlinformatiques par exemple. Dans la pratique, les g-
nrateurs alatoires sont bass sur des algorithmes dterministes ou encore sur une
source d"entropie" extrieure difficilement prdictible lie au fonctionnement de
la machinerie informatique (par exemple le temps sparant deux interruptions du
processeur), ces deux approches pouvant tre combines dans un mme processus.
Simuler la loi uniforme consiste produire une suite de nombres qui peuvent
tre considrs comme autant de ralisations indpendantes de variables alatoires
uniformes sur [0, 1]. Bien entendu, un algorithme est toujours dterministe lors-
quon le connat, et il vaut donc mieux parler de gnrateur pseudo-alatoire de
la loi uniforme. Mathmatiquement, les n sorties successives dun tel gnrateur
seront considres comme la donne de U1 (), ..., Un () pour un o les Ui
sont des v.a.r. i.i.d. Ui : (, F, P ) [0, 1] de loi uniforme.
La mmoire des ordinateurs tant finie, il est impossible de stocker des suites
infinies. En consquence, les nombres rels sont toujours approxims, avec une
certaine prcision. Soit donc p N? qui va jouer le rle de prcision. Un rel
xn dans [0,1] scrira yn /p o yn est un entier dans {0, ..., p}. Un algorithme trs
usit pour gnrer les yn consiste utiliser la relation de rcurrence xn yn /p o
yn+1 ayn [m], a et m sont des entiers et m est assez grand.
En gnral, la priode de (yn )n est plus petite que m. Plus prcisment, si a et
m sont premiers entre eux, et si 0 < y0 < m, alors yn nest jamais nul et la priode
de (yn )n nest rien dautre que lordre de a dans Zm . On rappelle que daprs le
(petit) thorme de Fermat-Euler, lordre de a divise lindicateur dEuler de a (qui
vaut m 1 quand m est premier).
Matlab 4 utilise un algorithme de ce type pour implmenter la fonction rand
mais les versions plus rcentes de Matlab utilisent un algorithme diffrent et plus
performant. Dans certaines bibliothques de calcul scientifique, on utilise (a, m) =
(1313 , 259 ) ou encore (a, m) = (75 , 231 1).

3.2 Simulation de lois discrtes


Soit p1 , ..., pn des nombres dans [0, 1] tels que p1 + +pn = 1. En partitionnant
lintervalle [0, 1] en morceaux adjacents de longueurs p1 , ..., pn , il vient :
Thorme 3.1 (Simulation dune loi discrte support fini) Soit U une
v.a.r. de loi uniforme sur [0, 1] et P := p1 x1 + + pn xn une loi discrte o
les xi sont tous diffrents. Alors la v.a.r.
x1 I{U <p1 } + x2 I{p1 6U 6p1 +p2 } + + xn I{p1 +pn1 6U 61}
suit la loi P.
CHAPITRE 3. SIMULATION DE VARIABLES ALATOIRES 16

Exercice 3.2
(1) crire une fonction implmentant le rsultat du Thorme 3.1.
(2) Simuler, sans utiliser dinstruction conditionnelle, la loi uniforme discrte sur
{1, ..., 10}.
(3) Idem pour la loi binomiale B(n, p).
(4) Montrer que la mthode issue du Thorme 3.1 stend sans difficult aux lois
discrtes support dnombrable. Donnez un programme dillustration.
(5) Simuler la loi de Poisson.
(6) Illustrer graphiquement la convergence de la loi binomiale B(n, p) vers la loi
de Poisson P() lorsque np .
(7) Illustrer graphiquement la convergence de la loi binomiale B(n, p) vers la loi
normale N (np, p(1 p)) (thorme de Movre-Laplace).

3.3 Simulation de lois par la mthode du rejet


On attribue parfois cette mthode J. von Neumann. Soit une loi L de densit
f sur R, que lon dsire simuler. Supposons que f est continue et support com-
pact [a, b]. Le graphe de f est donc contenu dans un rectangle [a, b] [0, M ]. On
considre alors des vecteurs alatoires indpendants ((Xn , Yn ))n de loi uniforme
sur [a, b] [0, M ]. On dfinit ensuite T comme le plus petit n tel que f (Xn ) 6 Yn .
Alors on montre que T est fini presque srement et que XT a pour loi L.

Exercice 3.3 Simuler la loi uniforme sur le disque unit dans R2 par la mthode
du rejet.

3.4 Simulation des lois gaussiennes


3.4.1 Mthode de Box-Mller
On utilise le rsultat suivant

Proposition 3.4 Soient U1 et U2 deux v.a.r. indpendantes de loi uniforme U([0, 1]).
Posons  p
X1 = p2 ln(U1 ) cos(2U2 ),
X2 = 2 ln(U1 ) sin(2U2 ).
Alors X1 et X2 sont deux v.a.r. indpendantes de loi normale centre rduite
N (0, 1).

Exercice 3.5
(1) En utilisant la Proposition 3.4, crire une fonction de paramtre n simulant
n ralisations de la loi normale centre rduite N (0, 1).
CHAPITRE 3. SIMULATION DE VARIABLES ALATOIRES 17

(2) crire une fonction de paramtres n, m et simulant n ralisations dune loi


normale N (m, ).
(3) Sachant quune v.a. suivant une loi du 2 degrs de libert peut tre vu
comme la somme de v.a. iid de loi normale N (0, 1), simuler n ralisations
dune v.a. de loi 2 (). Faire varier . Quobtient-on pour grand ( > 30).

3.4.2 Mthode polaire


Proposition 3.6 Soient (U1 , U2 ) un couple de loi uniforme sur le disque unit.
Posons s
2 ln(U12 + U22 )
X = U ,

1 1
U12 + U22


s

2 ln(U12 + U22 )
X 2 = U 2 .
U12 + U22

Alors X1 et X2 sont deux v.a.r. indpendantes de loi normale centre rduite


N (0, 1).

Exercice 3.7 En utilisant la Proposition 3.6, crire une fonction de paramtre


n simulant n ralisations de la loi normale centre rduite N (0, 1) (Indication :
simuler dabord la loi uniforme sur le disque unit par la mthode du rejet).

3.4.3 Quelques prcisions


Ces mthodes sont la fois trs classiques et... trs lentes, si bien que dans
la pratique, on utilise les mthodes du type "Marsaglia", qui semblent tre de
loin les plus performantes. Il est prfrable dutiliser la fonction Matlab randn
qui est dj toute programme et qui fait appel une mthode plus efficace. En
effet, la mthode de simulation de Box-Mller est coteuse en temps de calcul car
elle ncessite lvaluation des fonctions log, et cos. On peut se passer du cos
en faisant appel la mthode polaire, qui est celle utilise dans Matlab 4 pour
implmenter la fonction randn. Elle demeure cependant assezlente, en raison
la fois des 21% de rejet et de lvaluation des fonctions log et .
Les versions 5 et 6 de Matlab utilisent plutt une mthode due Marsaglia,
appele "algorithme du Ziggurat". Elle consiste utiliser la mthode du rejet
conjointement des tables donnant une approximation de la densit gaussienne
par des rectangles. Ces tables tant prcalcules, la gnration de nombres ala-
toires gaussiens est trs rapide, quasiment aussi rapide que celle des nombres
alatoires uniformes.
CHAPITRE 3. SIMULATION DE VARIABLES ALATOIRES 18

3.5 Simulation de lois par leur fonction de rpar-


tition
Soit L une loi sur R de fonction de rpartition F . Si G dsigne linverse continue
gauche de F, dfinie pour tout y dans [0, 1] par

G(p) := inf{x : F (x) > p},

alors, pour toute v.a. uniforme U sur [0, 1], la v.a. G(U ) est de loi L. Par exemple,
pour la loi de Cauchy, de densit ((1+x2 ))1 sur R, on a F (x) = arctan(x)/+1/2
et G(p) = tan((p 1/2)).

Exercice 3.8 [Simulation de la loi exponentielle] En utilisant le rsultat suivant,


simuler 100 ralisations de la loi exponentielle.
Proposition 3.9 Soit U une v.a.r. de loi uniforme sur [0, 1] et > 0 un rel.
Alors la v.a.r. 1 log(U ) suit la loi exponentielle de paramtre .

Cette mthode sapplique bien entendu aux lois de Weibull, dont les lois ex-
ponentielles ne constituent quun cas trs particulier.

Solution 1
lambda=0.5;clf;hold on; title(Simulation dune loi
exponentielle) ylabel(Densit\{e});xlabel(Valeurs);
[E,C]=histo(-log(rand(100,1))/lambda,100,0,1)
plot(C,lambda*exp(-lambda*C),k-*)
legend(Empirique,Th\{e}orique)

3.6 tude de la planche de Galton


La planche de Galton est une planche verticale sur laquelle sont plantes n
lignes de clous disposs en pyramide : 1 clou sur la premire ligne, 2 clous sur la
deuxime ligne,..., n clous sur la n-ime ligne. Des billes sont lches lune aprs
lautre partir du sommet. A chaque clou rencontr, la bille a
une probabilit p = 1/2 de passer droite (succs),
une probabilit 1 p = 1/2 de passer gauche (chec).
Sous la planche, les billes tombent dans n + 1 compartiments, numrots de 0
n de gauche droite, dans lesquels elles sempilent.
Soit X la variable alatoire qui chaque bille associe le numro du compar-
timent atteint. Ainsi, lvnement (X = k) est ralis quand la bille passe k fois
droite des clous (k succs). Il est vident que la v.a. X suit la loi binomiale
B(n, p).

Exercice 3.10
CHAPITRE 3. SIMULATION DE VARIABLES ALATOIRES 19

Figure 3.2 Planche de Galton 7 lignes

1. crire un programme de simulation de la planche de Galton. Ce programme


consiste
(a) visualiser lvolution des effectifs exprimentaux de billes tombes dans
chaque compartiment (lors de la chute des billes lune aprs lautre),
(b) donner les effectifs thoriques des billes tombes dans chaque compar-
timent,
(c) comparer graphiquement les piles de billes tombes dans les comparti-
ments avec les piles de billes calcules thoriquement.
2. Expliquer thoriquement la symtrie de la rpartition des effectifs dans les
compartiments.
3. Changer la valeur de p et expliquer les rsultats.
Pour visualiser un joli programme dillustration de la planche de Galton, vous
pouvez consulter le site suivant.
http ://www-sop.inria.fr/mefisto/java/tutorial1/node11.html

Remarque 3.11 Il existe dautres mthodes pour simuler de faon "concrte"


la loi binomiale, notamment la machine de Bittering. On peut galement raliser
dautres expriences pratiques o les probabilits permettent de mesurer certaines
grandeurs (aiguille de Buffon, cercle rptiteur,...)
Chapitre 4

Statistique infrentielle

4.1 Estimations et intervalles de confiance


Soit X une variable alatoire sur une population dont on ne peut faire une
tude complte. On suppose que la variable alatoire X est de moyenne et de
variance finie, et on note
E[X] = ; V [X] = 2 .
Notons que ces paramtres sont inconnues a priori. On se propose dune part, de
donner une estimation ponctuelle de ces paramtres ; dautre part, de donner un
intervalle de confiance de au niveau de confiance 1 . Pour cela, nous nous
appuyerons sur les deux rsultats thoriques suivants.
Thorme 4.1 (Loi faible des grands nombres) Soit (Xn )nN une suite de
variables alatoires indpendantes de mme loi et desprance finie. Alors
X1 + + Xn
en probabilit lorsque n +.
n
Remarque 4.2 On dit quune suite (Sn )n de v.a. converge en probabilit vers
lorsque
> 0 lim P(|Sn | > ) = 0.
n+

Thorme 4.3 (Thorme central-limite) Soit (Xn )nN une suite de variables
alatoires indpendantes de mme loi, desprance et de variance 2 finies. Po-
sons

? X1 + + Xn n
n N X n := et Zn := (X n ).
n
Alors la suite (Zn )n converge en loi vers la loi normale N (0, 1).
Remarque 4.4 On dit quune suite (Zn )n de v.a. converge en loi vers la loi
normale lorsque
Z b
1 2
a, b R tel que a < b, on a lim P (a < Zn < b) = ex /2 dx.
n+ 2 a

20
CHAPITRE 4. STATISTIQUE INFRENTIELLE 21

4.1.1 Estimations ponctuelle


Le problme qui se pose est de donner, partir dun n-chantillon (x1 , ..., xn ),
une estimation des valeurs caractristiques dune v.a. dfinie sur une population.
Le tableau suivant donne une premire approche du problme.

valeur thorique valeur empirique


n
1X
Moyenne me = xi
n i=1
n
1X
Variance 2 2
e = (xi me )2
n i=1

Figure 4.1 Deux estimateurs

Mais ces estimateurs ne sont pas tous les "meilleurs" (en certain sens que
nous ne chercherons pas prciser). Le tableau suivant donne les "meilleurs"
estimateurs des paramtres prcdents.

valeur thorique "meilleur" estimateur


Moyenne rme
n
Variance 2 e2
n1
Figure 4.2 "Meilleurs" estimateurs

4.1.2 Intervalles de confiance


tout n-chantillon (x1 , ..., xn ) de moyenne empirique me on associe linter-
valle de confiance au niveau de confiance 1 de la moyenne suivant :
 

In := me t , me + t ,
n n

o t est le rel dfini par (t ) = 1 2 , avec la fonction de rpartition de la


2
loi normale N (0, 1). Noter quer si la variance est inconnue on la remplace par
n
son "meilleur" estimateur e2 . Remarquons que lingalit de Bienaym-
n1
Tchebychev permet galement de trouver des intervalles de confiance, mais de
faon bien moins prcise que le thorme central-limite.

Remarque 4.5 Le rel t sobtient par le code Matlab sqrt(2)*erf(inv(1-a)).


CHAPITRE 4. STATISTIQUE INFRENTIELLE 22

4.1.3 Simulations
Les objectifs de cette simulation sont
1. montrer exprimentalement le caractre relatif des intervalles de confiances ;
2. comprendre la notion de confiance quon peut leur attacher.

Exercice 4.6 [Comparaison du pourcentage dintervalles de confiance contenant


effectivement avec le seuil de confiance.]
1. Simuler m chantillons de tailles n dune variable alatoire suivant une loi
de votre choix.
2. Pour un niveau de confiance 1 fix, dterminer m intervalles de confiance
de partir des m chantillons.
3. Calculer le pourcentage dintervalles contenant rellement .
4. Donner une illustration graphique de ces rsultats.

4.2 Test du 2
4.2.1 Ajustement par la loi binomiale
Exercice 4.7 Un prlvement de 100 chantillons de mme effectif 40 pices a
montr lexistence dun certain nombre de pices dfectueuses. Les rsultats ob-
tenus sont :

Nb de pices dfectueuses Effectifs observs


0 28
1 40
2 21
3 7
4 ou plus 4

1. Tracer lhistogramme de la rpartition de lchantillon.


2. Quel type de loi cela inspire-t-il pour ajuster le phnomne ?
3. Dterminer les paramtres de la loi suppose et tester lajustement.

4.2.2 Ajustement par la loi de Poisson


Exercice 4.8 On observe les nombres de vols dobjets dans un immeuble de 4
tages. Les donnes sont les suivantes.
1. Est-il raisonnable de supposer que les vols suivent une loi de Poisson ?
CHAPITRE 4. STATISTIQUE INFRENTIELLE 23

tage de limmeuble Nombre dobjets vols


0 545
1 325
2 110
3 15
4 5

2. Peut-on supposer que le nombre dobjets vols suit une loi de Poisson de
paramtre = 1 ?
3. Si la rponse est oui pour la question 1., donner une estimation exprimentale
du paramtre ?

4.2.3 Ajustement par la loi normale


Exercice 4.9 A lcole X, il est connu que grce aux diffrentes notes (dont on
fait une moyenne pondre) on dtermine pour chaque tudiant sa note finale. Sur
lensemble de la promotion, la moyenne est de 10 sur 20 (prcisment) ; mais cela
cache bien des disparits :

Note finale Nombre dtudiants


Moins de 5 2
De 5 moins de 7.5 21
De 7.5 moins de 9.75 36
De 9.75 moins de 10.25 30
De 10.25 moins de 12.5 37
De 12.5 moins de 15 23
15 et plus 1

1. Tracer lhistogramme de rpartition des tudiants. Quel type de loi cela


inspire-t-il pour ajuster le phnomne ?
2. Droite de Henry : Le principe de la droite de Henry repose sur lhypothse,
suppose vrifie, de normalit dun phnomne. Sil est acquis que la v.a.
X suit une loi normale N (m, ), la v.a. T = (X m)/ suit la loi N (0, 1).
Ceci sapparente une quation de droite de pente 1/ et dordonne
lorigine m/. Lorsquon nest pas sr de la normalit du phnomne, il
faut reprsenter graphiquement les points (xi , ti ) et constater sils sont ou
non aligns. Les valeurs de ti sont obtenues partir des valeurs de (ti )
assimiles aux valeurs de frquences cumules croissantes.
(a) Complter le tableau suivant. Pour dterminer les ti partir de pi =
(ti ) on utilise la fonction inverse quon a dj vu ti = 2erfinf(2pi 1)
CHAPITRE 4. STATISTIQUE INFRENTIELLE 24

Note Nb tudiants Effectifs cumuls Frquences cumules ti


Moins de 5 2
De 5 7.5 21
De 7.5 9.75 36
De 9.75 10.25 30
De 10.25 12.5 37
De 12.5 15 23
15 et plus 1

(b) Tracer le nuage de points (xi , ti ) : (5, t1 ), (6.25, t2 ), ..., (15, t6 ) (on prend
les milieux des classes sauf pour les extrmits).
(c) Dterminer la droite de Henry qui nest autre que la droite de rgression
de la srie (xi , tj ) (Pour cela, on peut utiliser la commande Matlab
polyfit ; voir help). En dduire les caractristiques de la loi normale
suppose : m = E(X) et = (X) (graphiquement ou (et) par calcul).
3. Tester laide du 2 la validit de cette hypothse (loi normale) en utilisant
la moyenne et lcart type obtenus ci-dessus. Noublier pas de dterminer
le degr de libert de la loi 2 et de regrouper les classes de faible effectif
(moins de 5).