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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *