[Actualité] Loi géométrique et loi exponentielle : fiabilité/défaillance d'un système
par
, 26/09/2022 à 08h27 (10070 Affichages)
I. Introduction
On souhaite obtenir la probabilité de défaillance d’un système avant un temps t en utilisant la loi géométrique et la loi exponentielle.
L’objectif est en fait de mieux comprendre le lien entre ces deux lois à partir d’un exemple concret d’évaluation de la fiabilité d’un téléviseur.
On montrera en particulier comment passer progressivement d’une variable aléatoire discrète, à une variable aléatoire continue, pour finalement obtenir la fonction de répartition F(t) de la loi exponentielle donnant la probabilité de défaillance du système sur un intervalle de temps [0,t].
Enfin, on proposera une implémentation de ces deux lois en Python avec une représentation graphique de leur fonction de répartition.
Note importante : on admet par la suite que tous les mois, comme toutes les années, ont la même durée. L’unité de temps employée dans les exemples est l’année, mais libre à chacun d’en choisir une autre selon les cas.
Le taux de défaillance λ d’un système est supposé constant.
II. Loi géométrique : probabilité d’avoir une défaillance au cours des k premières années
D’après une étude statistique, la durée de vie moyenne d’un certain type de téléviseur est d’environ 10 ans.
µ=10 représente le temps moyen de fonctionnement avant une panne (MTTF), et le taux de défaillance du téléviseur est égal à l’inverse de µ, soit λ = 1/µ = 0.1.
On souhaite maintenant déterminer la fonction de répartition donnant la probabilité d’avoir une défaillance durant les k premières années.
II-A. Fonction de répartition de la loi géométrique
Le taux moyen de défaillance λ peut être vu comme la probabilité de défaillance par unité de temps, c’est-à-dire dans notre cas par année.
En effet, la probabilité conditionnelle d’avoir une panne au cours de l’année de rang k+1 sachant que le système a déjà fonctionné durant k années, sera la même que la probabilité d’avoir une défaillance au cours de l’année d’indice k sachant qu’il a déjà fonctionné durant k-1 années. Il s’agit d’un processus sans mémoire.
On peut donc dire que la probabilité de défaillance par année est :
p = λ = 0.1
La probabilité par année de ne pas avoir de panne vaut alors :
q = 1 - p = 1 - λ
Soit X la variable aléatoire donnant le rang de l’année de la première panne, avec X = 1, 2, ...
On souhaite déterminer la probabilité P(X=k) d’avoir une première défaillance durant l’année d’indice k.
La variable X suit en fait une loi géométrique où X représente le nombre d’épreuves de Bernoulli indépendantes de probabilité de panne p ∈ ]0,1[ (ou q = 1 – p) nécessaire pour obtenir la première défaillance.
La probabilité d’avoir une première panne durant la kième année est donc :
P(X=k) = (1 - p)k-1p
Ou encore avec λ=p :
P(X=k) = (1 - λ)k-1λ
On en déduit que la probabilité d’avoir une défaillance au cours des k premières années est donnée par la formule :
P(X ≤ k) = P(X=1) + P(X=2) + ... + P(X=K)
C’est à dire :
P(X ≤ k) = λ + (1 - λ)λ + ... + (1 - λ)k-1λ
Après factorisation par λ, on obtient :
P(X ≤ k) = λ(1 + (1 - λ) + ... + (1 - λ)k-1)
On reconnait dans cette expression la somme des k premiers termes d’une suite géométrique de raison (1 - λ) et de premier terme 1, ce qui donne donc :
P(X ≤ k) = λ(1 - (1 - λ)k)/(1 - (1 - λ))
Finalement, la formule générale est :
P(X ≤ k) = 1 - (1 - λ)k
Représentation graphique de la fonction de répartition de la loi géométrique :
Note importante : on peut aussi considérer la probabilité complémentaire que l’appareil n’ait aucune défaillance au cours des k premières années :
P(X > k) = 1 - P(X ≤ k)
La probabilité de n’avoir aucune panne au cours des k premières années est donc donnée par la formule :
P(X > k) = (1 - λ)k
II-B. Application numérique
Quelle est la probabilité d’avoir une panne durant les 7 premières années avec un taux moyen de défaillance λ égal à 0.1 ?
Réponse :
P(X ≤ 7) = 1 - (1 - 0.1)7
P(X ≤ 7) ≈ 0.5217030999999999
Quelle est la probabilité de n’avoir aucune panne au cours des 7 premières années ?
Réponse :
P(X > 7) = 1 - P(X ≤ 7) = (1 - 0.1)7
P(X > 7) ≈ 0.47829690000000014
III. Loi exponentielle : probabilité d’avoir une défaillance sur l’intervalle de temps [0,t]
III-A. Passage d’une loi géométrique à une loi exponentielle
Reprenons notre exemple de téléviseurs qui tombent en panne en moyenne tous les 10 ans.
µ=10 représentant donc la durée de vie moyenne du téléviseur exprimée en années, et λ = 1/µ son taux de défaillance moyen.
Si on souhaite maintenant connaître la probabilité de défaillance de l’appareil en fonction des mois, avec 1 année égale à 12 mois, le taux de défaillance par mois vaut approximativement λ/12.
Par conséquent, la probabilité d’avoir une défaillance durant les k premiers mois s’écrit :
P(X ≤ k) ≈ 1 - (1 - λ/12)k
Plus généralement, si on divise une année en n intervalles de temps réguliers, le taux moyen de défaillance du système λn est alors proche de λ/n.
Dans ce cas, la formule générale pour les k premières unités de temps devient :
P(X ≤ k) ≈ 1 - (1 - λ/n)k
Note importante : pour être exact, le taux de défaillance λn est en réalité égal à 1 - (1 - λ)1/n
On peut alors passer d’une variable X représentant un nombre entier d’unités de temps (unité = 1/n année), à une variable réelle T=X/n exprimant une durée en années.
A la limite, en faisant tendre n vers l’infini, la variable T égale à X/n, peut alors prendre une infinité de valeurs réelles entre 0 et +∞.
On dit que la variable T est continue sur l’intervalle [0,+∞[.
La formule générale pour une variable discrète X suivant une loi géométrique :
P(X ≤ k) = 1 - (1 - λ)k
Devient donc, pour une variable continue T suivant une loi exponentielle :
P(T ≤ t) ≈ 1 - e-λt
Représentation graphique de la fonction de répartition F(t) :
Notes importantes : La loi exponentielle a comme fonction de répartition F(x) = 1 - e-λx et comme fonction de densité f(x) = λe-λx.
La probabilité d’avoir une défaillance sur l’intervalle [0,t] est alors égale à la surface située sous la courbe de la fonction f(x) entre 0 et t.
Une propriété importante de la distribution exponentielle est la perte de mémoire ou absence de mémoire.
Imaginons que µ représente la durée de vie d’une ampoule à LED avant qu’elle ne tombe en panne : la probabilité qu’elle dure au moins s + t heures sachant qu’elle a déjà duré t heures sera la même que la probabilité de durer s heures à partir de sa mise en fonction initiale.
En d’autres termes, le fait qu’elle ne soit pas tombée en panne pendant t heures ne change rien à son espérance de vie à partir du temps t
III-B. Application numérique
Quelle est la probabilité d’avoir une panne sur l’intervalle de temps [0, 7.5] avec un taux moyen de défaillance λ égal à 0.1 ?
Réponse :
P(T ≤ 7.5) ≈ 1 - exp(-0.1*7.5)
P(T ≤ 7.5) ≈ 0.5276334472589853
Quelle est la probabilité que l’appareil n’ait pas de défaillance sur l’intervalle [0, 7.5] ?
Réponse :
P(T > 7.5) = 1 - P(T ≤ 7.5) ≈ exp(-0.1*7.5)
P(T > 7.5) ≈ 0.4723665527410147
IV. Implémentation en Python
IV-A. Fonction de répartition de la loi géométrique
La fonction proba_defaillance_v1 prend en arguments :
- k : nombre entier d’unités de temps (heures, jours, mois, années, etc..) ;
- λ : taux moyen de défaillance (si µ désigne la durée de vie moyenne, alors λ=1/µ).
Elle renvoie la probabilité de défaillance du système au cours des k premières unités de temps (heures, jours, mois, années, etc..).
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def proba_defaillance_v1(k,λ): # fonction de répartition de loi géométrique - variable discrète # retourne la probabilité de défaillance du système au cours des k premières unités de temps pour un taux de panne λ return 1 - (1 - λ)**k
IV-B. Fonction de répartition de la loi exponentielle
La fonction proba_defaillance_v2 prend en arguments :
- t : nombre réel d’unités de temps considéré pour le calcul de la probabilité d'avoir une défaillance ;
- λ : taux moyen de défaillance (si µ désigne la durée de vie moyenne, alors λ=1/µ).
Elle renvoie la probabilité de défaillance du système sur l'intervalle [0,t].
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def proba_defaillance_v2(t,λ): # fonction de répartition de la loi exponentielle - variable continue # retourne la probabilité de défaillance du système sur l'intervalle [0,t] pour un taux de panne λ return 1 - math.exp(-λ*t)
IV-C. Test des fonctions
Module complet :
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 import math # module permettant de disposer de la fonction exp(x) import matplotlib.pyplot as plt # module permettant de générer le graphique def proba_defaillance_v1(k,λ): # fonction de répartition de loi géométrique - variable discrète # retourne la probabilité de défaillance du système au cours des k premières unités de temps pour un taux de panne λ return 1 - (1 - λ)**k def proba_defaillance_v2(t,λ): # fonction de répartition de la loi exponentielle - variable continue # retourne la probabilité de défaillance du système sur un intervalle [0,t] pour un taux de panne λ return 1 - math.exp(-λ*t) λ = 0.1 k = 7 t = 7 # calcul de la probabilité de défaillance au cours des k premières années suivant la formule P(X ≤ k) = 1 - (1 - λ)^k p1 = proba_defaillance_v1(k,λ) # appel de la fonction proba_defaillance_v1 # calcul de la probabilité de défaillance sur un intervalle [0,t] suivant la formule P(T ≤ t) = 1 - exp(-λ*t) p2 = proba_defaillance_v2(t,λ) # appel de la fonction proba_defaillance_v2 print("Fonction de répartition de la loi géométrique - variable discrète") print("Proba. de défaillance durant les " + str(k) + " premières années :") print("P(X ≤ k)= " + str(p1)) print("Proba. de n'avoir aucune panne durant les " + str(k) + " premières années :") print("P(X > k)= " + str(1-p1)) print("") print("Fonction de répartition de la loi exponentielle - variable continue") print("Proba. de défaillance sur l'intervalle [0, " + str(t) + "] :") print("P(T ≤ t) = " + str(p2)) print("Proba. de n'avoir aucune panne sur l'intervalle [0, " + str(t) + "] :") print("P(T > t) = " + str(1 - p2)) print("") print("Différence entre P(X ≤ k) et P(T ≤ t) :") e = abs(p2-p1) print("Erreur en valeur absolue = " + str(e)) x=[]; y1=[]; y2=[] # parcours des xi [0, 1, ..., 20] for xi in range(21): yi = proba_defaillance_v1(xi,λ) # évaluation de l'ordonnée yi avec la formule P(T ≤ xi) = 1 - (1 - λ)^xi x = x + [xi]; y1 = y1 + [yi] # ajout des valeurs xi et yi aux listes x et y1 yi = proba_defaillance_v2(xi,λ) # évaluation de l'ordonnée yi avec la formule F(xi) = 1 - exp(-λ*xi) y2 = y2 + [yi] # ajout de la valeur de yi à la liste y2 # trace les points dont les abscisses x et les ordonnées y1 sont fournies en arguments. Formule utilisée P(X ≤ xi) = 1 - (1 - λ)^xi. plt.scatter(x[1:], y1[1:], color='blue') # trace la courbe qui relie les points dont les abscisses x et les ordonnées y2 sont fournies en arguments. Fonction utilisée F(xi) = 1 - exp(-λ*xi). plt.plot(x, y2, color='red') # copie du titre du graphique plt.title("P(X ≤ t) = 1 - (1 - λ)^t , F(t) = 1 - exp(-λt)") plt.show() # affiche la figure à l'écran
Résultat obtenu :
Fonction de répartition de la loi géométrique - variable discrète
Proba. de défaillance durant les 7 premières années :
P(X ≤ k)= 0.5217030999999999
Proba. de n'avoir aucune panne durant les 7 premières années :
P(X > k)= 0.47829690000000014
Fonction de répartition de la loi exponentielle - variable continue
Proba. de défaillance sur l'intervalle [0, 7] :
P(T ≤ t) = 0.5034146962085906
Proba. de n'avoir aucune panne sur l'intervalle [0, 7] :
P(T > t) = 0.4965853037914094
Différence entre P(X ≤ k) et P(T ≤ t) :
Erreur en valeur absolue = 0.01828840379140928
On constate que la différence entre les résultats des 2 fonctions est minime.
Affichage à l'écran du graphique représentant les fonctions de répartition :
En bleu, la série de points représentant la fonction de répartition de la loi géométrique, et en rouge la courbe de la fonction de répartition de la loi exponentielle.
V. Conclusion
Après avoir défini la loi géométrique, nous avons pu obtenir la formule générale donnant la probabilité de défaillance d'un système au cours des k premières années.
Puis, à l'aide d'un changement de variable et d'un passage à la limite, nous avons retrouvé la fonction de répartition F(t) de la loi exponentielle donnant la probabilité de défaillance sur un intervalle [0,t].
Enfin, nous avons proposé une implémentation de ces deux lois en Python.
Sources :
https://fr.wikipedia.org/wiki/Loi_de_fiabilit%C3%A9
https://fr.wikipedia.org/wiki/Loi_g%C3%A9om%C3%A9trique
https://en.wikipedia.org/wiki/Geometric_distribution
https://fr.wikipedia.org/wiki/Loi_exponentielle
https://fr.wikipedia.org/wiki/Perte_...abilit%C3%A9s)
https://fr.wikipedia.org/wiki/Variab...re_r%C3%A9elle