Jak korzystać z rozkładu wykładniczego w pythonie
Rozkład wykładniczy to rozkład prawdopodobieństwa używany do modelowania czasu, jaki musimy poczekać, aż nastąpi określone zdarzenie.
Jeśli zmienna losowa X ma rozkład wykładniczy, wówczas można zapisać dystrybuantę X :
F (x; λ) = 1 – e -λx
Złoto:
- λ: parametr szybkości (obliczany jako λ = 1/μ)
- e: Stała w przybliżeniu równa 2,718
W tym samouczku wyjaśniono, jak używać rozkładu wykładniczego w języku Python.
Jak wygenerować rozkład wykładniczy
Możesz użyć funkcji expon.rvs(scale, size) z biblioteki SciPy w Pythonie, aby wygenerować losowe wartości z rozkładu wykładniczego z określonym parametrem szybkości i wielkością próbki:
from scipy. stats import expo #generate random values from exponential distribution with rate=40 and sample size=10 expon. rvs (scale= 40 , size= 10 ) array([116.5368323 , 67.23514699, 12.00399043, 40.74580584, 34.60922432, 2.68266663, 22.70459831, 97.66661811, 6.64272914, 46.15547298])
Uwaga : Pełną dokumentację biblioteki SciPy można znaleźć tutaj .
Jak obliczyć prawdopodobieństwa za pomocą rozkładu wykładniczego
Załóżmy, że średnia liczba minut pomiędzy erupcjami pewnego gejzeru wynosi 40 minut. Jakie jest prawdopodobieństwo, że na erupcję będziemy musieli poczekać mniej niż 50 minut?
Aby rozwiązać ten problem, musimy najpierw obliczyć parametr szybkości:
- λ = 1/µ
- λ = 1/40
- λ = 0,025
Możemy podstawić λ = 0,025 i x = 50 do wzoru CDF:
- P(X ≤ x) = 1 – e -λx
- P(X ≤ 50) = 1 – e -0,025(50)
- P(X ≤ 50) = 0,7135
Prawdopodobieństwo, że na kolejną erupcję będziemy musieli poczekać mniej niż 50 minut, wynosi 0,7135 .
Możemy użyć funkcji expon.cdf() SciPy, aby rozwiązać ten problem w Pythonie:
from scipy. stats import expo #calculate probability that x is less than 50 when mean rate is 40 expon. cdf (x=50, scale=40) 0.7134952031398099
Prawdopodobieństwo, że na kolejną erupcję będziemy musieli poczekać mniej niż 50 minut, wynosi 0,7135 .
Odpowiada to wartości, którą obliczyliśmy ręcznie.
Jak wykreślić rozkład wykładniczy
Aby wykreślić rozkład wykładniczy z danym parametrem szybkości, można użyć następującej składni:
from scipy. stats import expo import matplotlib. pyplot as plt #generate exponential distribution with sample size 10000 x = expon. rvs (scale= 40 ,size= 10000 ) #create plot of exponential distribution plt. hist (x, density= True , edgecolor=' black ')

Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak używać innych popularnych dystrybucji w Pythonie:
Jak korzystać z rozkładu Poissona w Pythonie
Jak korzystać z dystrybucji t w Pythonie
Jak korzystać z jednolitej dystrybucji w Pythonie