Python'da üstel dağılım nasıl kullanılır?
Üstel dağılım, belirli bir olay gerçekleşene kadar beklememiz gereken süreyi modellemek için kullanılan bir olasılık dağılımıdır.
Eğer bir X rastgele değişkeni üstel bir dağılım izliyorsa, X’in kümülatif dağılım fonksiyonu şu şekilde yazılabilir:
F (x; λ) = 1 – e -λx
Altın:
- λ: oran parametresi (λ = 1/μ olarak hesaplanır)
- e: Yaklaşık olarak 2,718’e eşit bir sabit
Bu eğitimde Python’da üstel dağılımın nasıl kullanılacağı açıklanmaktadır.
Üstel dağılım nasıl oluşturulur?
Belirli bir oran parametresi ve örnek boyutu ile üstel bir dağılımdan rastgele değerler oluşturmak için Python’daki SciPy kütüphanesindeki expon.rvs(scale, size) işlevini kullanabilirsiniz:
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])
Not : SciPy kitaplığı belgelerinin tamamını burada bulabilirsiniz.
Üstel Dağılım Kullanılarak Olasılıklar Nasıl Hesaplanır?
Belirli bir gayzerin patlamaları arasındaki ortalama dakika sayısının 40 dakika olduğunu varsayalım. Bir patlama için 50 dakikadan daha az beklemek zorunda kalmamız ne kadar muhtemeldir?
Bu sorunu çözmek için öncelikle oran parametresini hesaplamamız gerekir:
- λ = 1/μ
- λ = 1/40
- λ = 0,025
λ = 0,025 ve x = 50’yi CDF formülüne koyabiliriz:
- P(X ≤ x) = 1 – e -λx
- P(X ≤ 50) = 1 – e -0,025(50)
- P(X ≤ 50) = 0,7135
Bir sonraki patlama için 50 dakikadan az beklemek zorunda kalma olasılığımız 0,7135’tir .
Python’da bu sorunu çözmek için SciPy’nin expon.cdf() fonksiyonunu kullanabiliriz:
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
Bir sonraki patlama için 50 dakikadan az beklemek zorunda kalma olasılığımız 0,7135’tir .
Bu bizim manuel olarak hesapladığımız değere karşılık geliyor.
Üstel dağılım nasıl çizilir
Belirli bir oran parametresiyle üstel bir dağılım çizmek için aşağıdaki sözdizimini kullanabilirsiniz:
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 ')
Ek kaynaklar
Aşağıdaki eğitimlerde Python’da diğer yaygın dağıtımların nasıl kullanılacağı açıklanmaktadır:
Python’da Poisson dağılımı nasıl kullanılır?
Python’da t dağıtımı nasıl kullanılır?
Python’da Düzgün Dağıtım Nasıl Kullanılır