Як використовувати експоненціальний розподіл у python


Експоненціальний розподіл — це розподіл ймовірностей, який використовується для моделювання часу, який ми маємо чекати, поки не станеться певна подія.

Якщо випадкова величина X має експоненціальний розподіл, то кумулятивну функцію розподілу X можна записати:

F (x; λ) = 1 – e -λx

золото:

  • λ: параметр швидкості (розраховується як λ = 1/μ)
  • e: константа, яка приблизно дорівнює 2,718

Цей посібник пояснює, як використовувати експоненціальний розподіл у Python.

Як створити експоненціальний розподіл

Ви можете використовувати функцію expon.rvs(scale, size) з бібліотеки SciPy в Python, щоб генерувати випадкові значення з експоненціального розподілу з певним параметром швидкості та розміром вибірки:

 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])

Примітка . Ви можете знайти повну документацію бібліотеки SciPy тут .

Як обчислити ймовірності за допомогою експоненціального розподілу

Припустимо, що середня кількість хвилин між виверженнями певного гейзера становить 40 хвилин. Наскільки ймовірно, що виверження доведеться чекати менше 50 хвилин?

Щоб вирішити цю задачу, нам спочатку потрібно обчислити параметр швидкості:

  • λ = 1/мк
  • λ = 1/40
  • λ = 0,025

Ми можемо підставити λ = 0,025 і x = 50 у формулу CDF:

  • P(X ≤ x) = 1 – e -λx
  • P(X ≤ 50) = 1 – e -0,025(50)
  • P(X ≤ 50) = 0,7135

Імовірність того, що наступного виверження доведеться чекати менше 50 хвилин, становить 0,7135 .

Ми можемо використати функцію expon.cdf() SciPy, щоб вирішити цю проблему в Python:

 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

Імовірність того, що наступного виверження доведеться чекати менше 50 хвилин, становить 0,7135 .

Це відповідає значенню, яке ми розрахували вручну.

Як побудувати графік експоненціального розподілу

Ви можете використовувати такий синтаксис, щоб побудувати експоненціальний розподіл із заданим параметром швидкості:

 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 ')

Додаткові ресурси

У наступних посібниках пояснюється, як використовувати інші поширені дистрибутиви в Python:

Як використовувати розподіл Пуассона в Python
Як використовувати розподіл t у Python
Як використовувати рівномірний розподіл у Python

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *