Вы находитесь на странице: 1из 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
1.1 Remarques prliminaires concernant lapprentissage de Matlab
1.2 Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Calculs matriciels lmentaires . . . . . . . . . . . . . . . . . .
1.4 Calculs matriciels plus labors . . . . . . . . . . . . . . . . .
1.5 Graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6 Entres et sorties . . . . . . . . . . . . . . . . . . . . . . . . .
1.7 Oprations logiques, boucles et excutions conditionnelles . . .
1.8 Fonctions et fichiers .m . . . . . . . . . . . . . . . . . . . . . .
1.9 Rcursivit . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10 Fonctions en ligne . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

2
2
3
5
7
7
7
8
9
10
11

2 Statistique descriptive

12

3 Simulation de variables alatoires


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

.
.
.
.
.
.
.
.
.

14
15
15
16
16
16
17
17
18
18

.
.
.
.
.
.
.
.

20
20
21
21
22
22
22
22
23

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

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

Chapitre 1
Introduction Matlab
1.1

Remarques prliminaires concernant lapprentissage 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 socit MathWorks. Son nom est la contraction de "Matrix Laboratory". Il consiste
essentiellement en un interprteur de commandes, crites dans un langage de programmation 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.

CHAPITRE 1. INTRODUCTION MATLAB

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.
a
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

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
-1/0
0/0
0*Inf
1/Inf
pi
help
i
help

pi
i

%
%
%
%
%
%
%
%
%

Infini positif Inf


Infini n\{e}gatif -Inf
Not a Number (NaN)
Not a Number (NaN)
Donne bien z\{e}ro
Donne bien le nombre pi
Donne sa d\{e}finition pour Matlab
Racine carr\{e}e (complexe) de -1.
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

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 pointvirgule.
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 paramtres) entre parenthses constituent des fonctions. Nous verrons plus loin comment en crer de nouvelles.

1.3

Calculs matriciels lmentaires

Les tableaux suivants indiquent diffrents calculs possibles sur les matrices.
Commande
A=[3,4;1,0]
B=(A>0)
V=[5;5]
length (V)
size(A)

Sens
Matrice 2 2
B = matrice tq Bij =1 si Aij >0 et 0 sinon
Vecteur colonne de dimension 2, scrit aussi [5,5]
Renvoie la longueur du vecteur V
La fonction size renvoie la taille de A
Figure 1.1 Quelques exemples.

A
A*B
A+B
A^99
expm(A)
inv(A)
sqrtm(A)
logm(A)
A*V
V*A
A\V
help slash

transpose de A
Multiplication matricielle de A et B
Addition matricielle de A et B
Puissance matricielle
Exponentielle matricielle
Matrice inverse
Racine carre matricielle (cf. help sqrtm)
Logarithme matriciel (cf. help logm)
Image du vecteur colonne V par la matrice carre A
Devinez...
Solution du systme linaire AX=V (par pivot, et pas par inv(A))
Aide explicative sur la division matricielle prcdente
Figure 1.2 Oprations matricielles classiques.

CHAPITRE 1. INTRODUCTION MATLAB

A=ones(n,n)
B=zeros(n,n)
C=eye(n,n)
[A,B,C]
[A;B;C]
N=0*J
sparse

Matrice de taille n n dont tous les lments valent 1


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

C=A.*B
C=A./B
C=A.3
C=3+A
C=3*A
C=A./3
C=cos(A)
C=log(A)
G=sqrt (A)
C=exp(A)
C=abs(A)

C(i,j)=A(i,j)*B(i,j)
C(i,j)=A(i,j)/B(i,j)
C(i,j)=A(i,j)*3
C(i,j)=3+A(i,j)
C(i,j)=3*A(i,j)
C(i,j)=A(i,j)/3
C(i,j)=cos(A(i,j))
C(i,j)=log(A(i,j)). Ne pas confondre avec logm(A) !
C(i,j)=sqrt(A(i,j)). Ne pas confondre avec sqrtm(A) !
C(i,j)=exp(A(i,j)). Ne pas confondre avec expm(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 dentiers 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

1.4

Calculs matriciels plus labors

Le tableau 1.4 prsente des oprations matricielle plus labores que les prcdentes. Remarquons que les oprateurs de type sum servent trs souvent lorsquil
sagit dviter les boucles.
det(M)
rank(M)
trace(M)
D=eig(M)
[P,D]=eig(M)
sum(V)
sum(M)
sum(M,2)
sum(sum(M)
cumsum(V)
cumsum(M)
cumprod(V)
cumprod(M)
max(M)
max(max(M))

Dterminant
Rang
Trace
Renvoie le vecteur colonne des valeurs propres de M
Diagonalise M=P*D*P1 avec D diagonale
Somme des lments du vecteur V
Somme des colonnes de la matrice M (renvoie un vecteur ligne)
Somme les lments de la matrice M selon la dimension 2
Somme totale des lments de la matrice M
Sommes cumulatives des entres du vecteur V
Matrice des sommes cumulatives des colonnes de M
Produits cumulatifs des entres du vecteur V
Matrice des produits cumulatifs des colonnes de M
Renvoie un vect. ligne = au max sur chaque col . de 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 pendant 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 sauvegarder le contenu des variables en cours ainsi que leur nom dans un fichier, dont

CHAPITRE 1. INTRODUCTION MATLAB


mean(Y)
median(Y)
std(Y)
plot(Y)
plot(Y,r-)
plot (X,Y,r-)
hist(Y)
[Eff,Cl]=hist(Y,50)
figure
title (Nom)
xlabel(Nom)
ylabel(Nom)
imagesc(A);
hold off
contour(A)

Moyenne arithmtique
Mdiane
cart type normalis en N 1
Trac du vecteur Y. Abscisses ? Ordonnes ?
Autre trac avec couleur et type de ligne
Vous comprenez
Histogramme (10 classes par dfaut, cf. help hist)
Histogramme 50 classes de Matlab
Cration dune nouvelle fentre graphique
Titre de la figure
Titre des abscisses
Titre des ordonnes
Trace la matrice, couleurs = valeurs relatives
On ne va pas utiliser la mme fentre graphique
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 conditionnelles

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

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 (arguments) 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 sousrpertoires. 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 permanente dpend du systme utilis (Unix, MS-Windows,... ).

1.9

Rcursivit

Le langage Matlab autorise la rcursivit, comme le montre lexemple archiclassique 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 (diagramme 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
1 personne
2 personnes
3 personnes
4 personnes
5 personnes
6 personnes ou plus
Somme

Effectifs
5 845 140
6 366 948
3 821 700
3 371 484
1 439 144
695 736
21 542 152

Frquences
0,2713
0,2957
0,1774
0,1565
0,0668
0,0323
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

Classes dge
[15,17[
[17,19[
[19,21[
[21,23[
[23,25[
[25,271
[27,29[

Effectifs
800
7 000
14 350
28 000
44 000
54 800
56000

Classes dge
[29,31[
[31,33[
[33,35[
[35,37[
[37,391
[39,41[

13

Effectifs
51200
32 000
23 200
16 000
8 000
2 400

Classes dge
[41,43[
[43,45[
[45,47[
[47,49[

Effectifs
800
200
80
40

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


millier).
Firmes
General Motors
Ford Motor
Exxon
Royal Dutch Shell
Toyota Motor
Hitachi
Matsushita
General Electric
Daimler Benz
IBM
Mobil
Nissan Motor
Philip Morris
Chrysler
Siemens
British Petroleum
IR
Volskwagen
Tokyo Electric P.
Toshiba
Unilever
VEBA

CA
860
713
563
526
441
412
377
359
356
355
331
317
298
290
289
281
279
273
271
260
251
243

Firmes
Nestl
FIAT
Sony
Honda Motor
Elf Aquitaine
NEC
Daewoo
Du Pont de Nemours
RWE
Japan Tobacco
Philips
Mitsubishi Motors
Texaco
EDF
Renault
Fujitsu
Mitsubishi Electric
ENI
Chevron
Hoeschst
Procter & Gamble
Alcatel Alsthom

CA
231
226
216
215
208
205
197
194
191
190
186
185
185
183
179
177
176
174
172
170
168
168

Firmes
PSA
BASF
ABB
Pepsico
PEMEX
Nippon Steel
Mitsubishi Heavy I.
Amoco
Bayer
Nippon Oil
BMW
Hewlett-Packard
Kansai Electric P.
Total
Conagra
Motorola
Petroleos de Venezuela
Bat industries
Boeing
Mazda Motor
Thyssen

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

29
26

4
4

69
65

65
66

98
90

55
56

40
43

19
26

62
66

73
76

37
35

0
2

41
45

75
68

79
86

CA
166
159
158
158
156
156
155
150
148
144
144
139
138
137
131
123
123
122
122
120
119

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 indpendantes 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 "statistiques" 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 pseudoalatoires. 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 permettent 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
randn
rand(4,4)
randn(4,4)
rand(1000,1)

renvoie un nombre selon la loi uniforme entre 0 et 1


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

CHAPITRE 3. SIMULATION DE VARIABLES ALATOIRES

3.1

15

Loi uniforme et simulation

Les gnrateurs de nombres alatoires sont trs importants dans les applications. 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 gnrateurs 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 lorsquon 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 compact [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
3.4.1

Simulation des lois gaussiennes


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

2 ln(U12 + U22 )

,
X
=
U
1
1

U12 + U22
s

2 ln(U12 + U22 )

X
=
U
.
2
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 alatoires gaussiens est trs rapide, quasiment aussi rapide que celle des nombres
alatoires uniformes.

CHAPITRE 3. SIMULATION DE VARIABLES ALATOIRES

3.5

18

Simulation de lois par leur fonction de rpartition

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 exponentielles 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 compartiment 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 compartiment,
(c) comparer graphiquement les piles de billes tombes dans les compartiments 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
V [X] = 2 .

E[X] = ;

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. Posons

X1 + + Xn
n
?
X n :=
et
Zn :=
(X n ).
n 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

4.1.1

21

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
Moyenne

Variance

valeur empirique
n
1X
xi
me =
n i=1
n
1X
2
(xi me )2
e =
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.

Moyenne

valeur thorique

Variance

"meilleur" estimateur
rme
n
e2
n1

Figure 4.2 "Meilleurs" estimateurs

4.1.2

Intervalles de confiance

tout n-chantillon (x1 , ..., xn ) de moyenne empirique me on associe lintervalle 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 que
r si la variance est inconnue on la remplace par
n
son "meilleur" estimateur e2
. Remarquons que lingalit de Bienaymn1
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

4.1.3

22

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
4.2.1

Test du 2
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 obtenus sont :
Nb de pices dfectueuses
0
1
2
3
4 ou plus

Effectifs observs
28
40
21
7
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


tage de limmeuble
0
1
2
3
4

23

Nombre dobjets vols


545
325
110
15
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
Moins de 5
De 5 moins de 7.5
De 7.5 moins de 9.75
De 9.75 moins de 10.25
De 10.25 moins de 12.5
De 12.5 moins de 15
15 et plus

Nombre dtudiants
2
21
36
30
37
23
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


Note
Moins de 5
De 5 7.5
De 7.5 9.75
De 9.75 10.25
De 10.25 12.5
De 12.5 15
15 et plus

Nb tudiants
2
21
36
30
37
23
1

Effectifs cumuls

24
Frquences cumules

ti

(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).

Вам также может понравиться