0% ont trouvé ce document utile (0 vote)
75 vues4 pages

Python pour Probabilités et Statistiques

Transféré par

22073 22073
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
75 vues4 pages

Python pour Probabilités et Statistiques

Transféré par

22073 22073
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Polytech Tours 4A

DEE Probabilités et statistique

TP 1 : Probabilités et Statistique

1 Syntaxe Python pour les probabilités et statistique


1.1 Rappels : Bibliothèque matplotlib
La bibliothèque matplotlib doit être importée au début de votre script :

import numpy as np
import matplotlib.pyplot as plt

De nombreuses ressources sont disponibles dans l’aide et sur internet concernant la représentation
graphique avec Python. Nous allons rappeler quelques commandes de base pour le tracé et la person-
nalisation des graphiques.

• Affichage d’une courbe


L’instruction plot() permet de tracer des courbes en reliant les points dont les abscisses x et les
ordonnées y sont des listes ou des tableaux (type array()) donnés en argument :
# Exemple 1
x=[1,2,3,4] # liste des abscisses
y =[1,4,9,16] # liste des ordonnées

plt.figure() # ouvre une fenêtre graphique


plt.plot(x,y) # relie les points d'abscisses x et d'ordonnées y
plt.show() # affiche la figure à l'écran
Remarques :
— Par défaut, les points sont reliés par des segments.
— Pour tracer une droite horizontale, on peut utiliser la commande plt.axhline(a) (droite hori-
zontale d’équation y = a).

• Tracé d’une fonction et ajout de légendes


Pour tracer une fonction f : on fournit la liste (ou le tableau) des abscisses x (définissant le domaine
sur lequel on veut tracer f ) puis on calcule les ordonnées y en appliquant la fonction f directement
sur le vecteur x (on parle d’opérations vectorisées). On obtient alors une liste (ou un tableau) x pour
les abscisses et un tableau y = f (x) pour les ordonnées.
# Exemple 2
x=np.linspace(0,2*np.pi,100) # np.linspace(début, fin (inclus), nb de points)
# ou
x=np.arange(0, 2*np.pi,0.1) # np.arange(début, fin (non inclus), pas)
y=np.cos(x) # opération vectorisée

plt.figure()
plt.plot(x,y, label="cos(x)")
plt.legend() # affiche le label (la légende) de la courbe

plt.xlabel("abscisses") # ajout d'une légende (le label) sur l'axe des abscisses
plt.ylabel("ordonnées") # ajout d'une légende (le label) sur l'axe des ordonnées

plt.grid(True) # Ajout d'une grille

1
plt.title("Fonction cosinus") # Ajout d'un titre au graphique
plt.show()
Remarque : si l’on veut écrire des expression mathématiques dans les légendes ou les titres, il suffit
de mettre l’expression sous la forme plt.title(r". . .").

• Affichage de plusieurs courbes


Pour afficher plusieurs courbes sur un même repère, il suffit de mettre les commandes plot() les
unes à la suite des autres.
# Exemple 3
x=np.linspace(0,2*np.pi,30)
y1=np.cos(x)
y2=np.sin(x)

plt.figure()
plt.plot(x,y1, label="cos(x)") # première courbe
plt.plot(x,y2, label="sin(x)") # deuxième courbe
plt.legend()

plt.title("Fonctions trigonométriques")
plt.show()

• Modifier la couleur des courbes


Il est possible de préciser la couleur d’une courbe dans la commande plot().
# Exemple 4:
plt.figure()

plt.plot(x,y1,"r", label="cos(x)") # couleur de la courbe en rouge


plt.plot(x,y2,"b", label="sin(x)") # couleur de la courbe en bleu
plt.legend()

plt.show()
Remarque : les caractères pour personnaliser les couleurs sont b (bleu), g (vert), r (rouge), y (jaune),
k (noir), ...

2
1.2 Aléatoire en Python
1.2.1 Fonctions de base
Pour obtenir les outils probabilistes en Python, on importe le module stats de la bibliothèque Scipy :

import scipy.stats as stats

Cette bibliothèque contient les fonctions suivantes :


• rvs(parametre,size) : simulation de variables aléatoires indépendantes et de même loi où size est
la taille de l’échantillon (c’est-à-dire le nombre de tirages souhaité) ;
• pdf(x, parametre) : probability density function i.e. fonction densité fX (x) évaluée en x ;
• pmf(k, parametre) : probability mass function i.e. loi discrète P(X = k) en k ;
• cdf(x,parametre) : cumulative density function i.e. fonction de répartition FX (x) évaluée en x d’une
variable aléatoire à densité ;
• cdf(k,parametre) : cumulative density function i.e. fonction de répartition FX (k) évaluée en k d’une
variable aléatoire discrète ;
où parametre correspond aux paramètres de la loi (indiqués dans le tableau ci-dessous).

On les utilisera avec la syntaxe suivante : stats.loi.fonction(...), où :


— loi désigne la loi de probabilité choisie (voir tableau ci-dessous) ;
— fonction(...) désigne l’une des fonctions du sous-module stats citées ci-dessus.

loi(parametre) Loi de probabilité correspondante


norm(loc=, scale=) Loi normale N (loc, scale2 ).
gamma(a=) Loi gamma γ(a, 1).
beta(a=, b=) Loi béta β(a, b).
t(df=n) Loi Student de n degrés de liberté.
cauchy() Loi de Cauchy.
expon(scale=1/lambda) Loi exponentielle E(λ).
uniform(loc=, scale=) Loi uniforme U(]loc, loc + scale[).
randint(low, high) Loi uniforme U({low, low + 1, · · · , high − 1}).
binom(n=, p=) Loi binomiale B(n, p).
geom(p=) Loi géométrique G(p).
poisson(mu=) Loi de Poisson P(µ).

1.2.2 Histogramme
L’histogramme d’un échantillon est un diagramme constitué de barres verticales juxtaposées, chacune
de ces barres représentant le nombre de termes de l’échantillon appartenant à une classe donnée.
Pour tracer un histogramme d’un échantillon d’une loi réelle, on commence donc par répartir les valeurs
de l’échantillon dans des classes qui sont des intervalles de R. On représente ensuite ces classes par des
rectangles verticaux dont l’aire est proportionnelle à l’effectif de chaque classe. On normalise souvent
les aires de chaque classe de sorte que l’aire totale soit égale à 1.
Pour la syntaxe, il suffit d’utiliser hist à la place de plot. La commande plt.hist(X,bins=n) répartit
alors les données de l’échantillon X dans n sous intervalles de [min(X), max(X)].
Pour superposer l’histogramme avec une densité, il faut d’abord normaliser l’histogramme avec l’option
density=True de hist avant de tracer la densité.

3
2 Prise en main
1. Simuler 10 lancers de Pile ou Face indépendants.
2. Tracer la fonction densité d’une loi exponentielle de paramètre 5 sur [0,3].
3. Soit X une variable aléatoire discrète suivant la loi de Poisson de paramètre 2.
(a) Calculer P(X = 2).
(b) Calculer P(X 6 3).
4. Soit Y une variable aléatoire suivant la loi normale N (0, 1). Calculer P(Y > 0, 25).
5. Le fichier tp_etudiant.py disponible sur Célène contient un code Python pour cette question.
(a) Commenter chaque portion de code indiquée par ”À COMPLÉTER”.
(b) Expliquer les arguments de la fonction plt.hist(X,bins=30, density=True).

6. On veut illustrer la Loi des Grands Nombres sur un échantillon X = (X1 , . . . , X1000 ) de n = 1000
variables aléatoires indépendantes de loi géométrique de paramètre p = 0.25.
(a) Énoncer la Loi des Grands Nombres appliquée à des variables aléatoires indépendantes sui-
vant la loi géométrique de paramètre p = 0.25.
Pour illustrer numériquement la Loi des Grands Nombres, on va montrer que la suite de
terme général Un = n1 ni=1 Xi ”converge” vers E[X1 ].
P

(b) Simuler un échantillon X.


(c) Expliquer ce que renvoie la commande Xc=np.cumsum(X). On pourra regarder les premières
valeurs de X et de Xc.
(d) Expliquer ce que renvoie la commande Xemp = Xc/np.arange(1,n+1).
(e) Le fichier tp_etudiant.py disponible sur Célène contient un code Python pour cette question.
Commenter chaque portion de ce code indiquée par ”À COMPLÉTER”.

7. On veut illustrer le Théorème Central Limite sur un échantillon X = (X1 , . . . , X1000 ) de n = 1000
variables aléatoires indépendantes de loi de Poisson de paramètre µ = 10.
(a) Énoncer le Théorème Central Limite appliqué à des variables aléatoires indépendantes sui-
vant la loi de Poisson de paramètre µ = 10.
Pour illustrer numériquement le Théorème Central Limite (ou l’approximation gaussienne),
on va montrer que la loi de la variable aléatoire
√ n
!
n 1X
Yn = p Xi − E[X1 ]
Var(X1 ) n i=1

peut être approchée par une loi normale N (0, 1) (si n est suffisamment grand).
(b) Simuler un échantillon X.
(c) À partir de cet échantillon, donner la valeur prise par Yn .
(d) Simuler N = 5000 valeurs indépendantes de Yn que l’on stockera dans une liste nommée val.
(e) Tracer l’histogramme associé à ces N tirages indépendants de Yn .
(f) Superposer à cet histogramme la densité de la loi normale N (0, 1).
(g) Relancer vos codes pour n = 10 et n = 100 pour illustrer la convergence en loi. Commenter.

Vous aimerez peut-être aussi