Як використовувати експоненціальний розподіл у 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