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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *