Como usar distribuição exponencial em python
A distribuição exponencial é uma distribuição de probabilidade usada para modelar o tempo que temos que esperar até que um determinado evento ocorra.
Se uma variável aleatória X segue uma distribuição exponencial, então a função de distribuição cumulativa de X pode ser escrita:
F (x; λ) = 1 – e -λx
Ouro:
- λ: o parâmetro de taxa (calculado como λ = 1/μ)
- e: Uma constante aproximadamente igual a 2,718
Este tutorial explica como usar a distribuição exponencial em Python.
Como gerar uma distribuição exponencial
Você pode usar a função expon.rvs(scale, size) da biblioteca SciPy em Python para gerar valores aleatórios de uma distribuição exponencial com um parâmetro de taxa e tamanho de amostra específicos:
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])
Nota : Você pode encontrar a documentação completa da biblioteca SciPy aqui .
Como calcular probabilidades usando uma distribuição exponencial
Suponha que o número médio de minutos entre as erupções de um determinado gêiser seja de 40 minutos. Qual é a probabilidade de termos de esperar menos de 50 minutos por uma erupção?
Para resolver este problema, primeiro precisamos calcular o parâmetro de taxa:
- λ = 1/µ
- λ = 1/40
- λ = 0,025
Podemos inserir λ = 0,025 e x = 50 na fórmula CDF:
- P(X ≤ x) = 1 – e -λx
- P(X ≤ 50) = 1 – e -0,025(50)
- P(X ≤ 50) = 0,7135
A probabilidade de termos que esperar menos de 50 minutos pela próxima erupção é de 0,7135 .
Podemos usar a função expon.cdf() do SciPy para resolver este problema em 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
A probabilidade de termos que esperar menos de 50 minutos pela próxima erupção é de 0,7135 .
Isso corresponde ao valor que calculamos manualmente.
Como traçar uma distribuição exponencial
Você pode usar a seguinte sintaxe para traçar uma distribuição exponencial com um determinado parâmetro de taxa:
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 ')
Recursos adicionais
Os tutoriais a seguir explicam como usar outras distribuições comuns em Python:
Como usar a distribuição Poisson em Python
Como usar a distribuição t em Python
Como usar distribuição uniforme em Python