Poisson dağılımı, sabit bir ortalama oranın ve olay bağımsızlığının varsayıldığı sabit bir zaman dilimi veya alanda belirli sayıda olayın olasılığını temsil eden, sayım verilerini modellemek için değerli bir araçtır. Bununla birlikte, gerçek dünya veri kümeleri genellikle bu ideal koşullardan sapmaktadır. Bu makale, aşırı dağılım gibi zorlukları ele alarak, Python’da çeşitli veri kümelerine Poisson dağılımlarının uygulanmasını inceliyor.
İçindekiler
- Python’da Temel Poisson Dağılımı Uydurma
- Kategorilendirilmiş En Küçük Kareler Yöntemi
- Negatif Binom Dağılımı ile Aşırı Dağılımın Ele Alınması
- Sonuç
Python’da Temel Poisson Dağılımı Uydurma
scipy.stats
kütüphanesini kullanarak bir Poisson dağılımının uygulanmasının temel süreciyle başlayalım. Temel fonksiyon, ortalama olay oranını temsil eden λ (lambda)’yı tahmin eden poisson.fit()
‘tir.
import numpy as np
from scipy.stats import poisson
import matplotlib.pyplot as plt
# Örnek veri: Dakikada bir noktadan geçen araba sayısı (100 dakika)
data = np.random.poisson(lam=5, size=100)
# Poisson dağılımını uygulayın
lambda_fit, = poisson.fit(data)
# Uygulanan lambda'yı gösterin
print(f"Uygulanan lambda: {lambda_fit}")
# Çizim için hazırlayın
x = np.arange(0, max(data) + 1)
# Histogram ve uygulanan dağılımı çizin
plt.hist(data, bins=range(max(data) + 2), density=True, alpha=0.6, label='Veri')
plt.plot(x, poisson.pmf(x, lambda_fit), 'r-', label=f'Uygulanan Poisson (λ={lambda_fit:.2f})')
plt.xlabel('Araba Sayısı')
plt.ylabel('Olasılık')
plt.legend()
plt.title('Poisson Dağılımı Uydurma')
plt.show()
Bu basit yaklaşım, veriler Poisson dağılımına yakın bir şekilde uyduğunda iyi çalışır. Ancak, gerçek dünya verileri genellikle sapar.
Kategorilendirilmiş En Küçük Kareler Yöntemi
poisson.fit()
kullanışlı olsa da, Kategorilendirilmiş En Küçük Kareler yöntemi, özellikle sınırlı veri veya Poisson varsayımlarından önemli sapmalar olduğunda daha sağlam bir alternatif sunar. Bu yöntem, verilerin kategorilendirilmesini ve gözlemlenen ve beklenen frekanslar arasındaki kare farkların minimize edilmesini içerir. Uygulama, yinelemeli optimizasyon gerektirir (örneğin, scipy.optimize.minimize
kullanarak) ve bu özlü örneğin kapsamının ötesindedir, ancak özel istatistiksel paketlerde kolayca bulunabilir.
Negatif Binom Dağılımı ile Aşırı Dağılımın Ele Alınması
Aşırı dağılım, veri varyansı ortalamasını aştığında ve bir temel Poisson varsayımını (varyans eşittir ortalama) ihlal ettiğinde ortaya çıkar. Aşırı dağılımı barındıran negatif binom dağılımı, bu gibi durumlarda üstün bir uyum sağlar.
from scipy.stats import nbinom
# Aşırı dağılmış verilerin örneği
overdispersed_data = np.random.negative_binomial(n=2, p=0.5, size=100)
# Negatif Binom dağılımını uygulayın
n_fit, p_fit = nbinom.fit(overdispersed_data)
# Uygulanan parametreleri gösterin
print(f"Uygulanan n: {n_fit}")
print(f"Uygulanan p: {p_fit}")
# Çizim için hazırlayın
x = np.arange(0, max(overdispersed_data) + 1)
# Histogram ve uygulanan dağılımı çizin
plt.hist(overdispersed_data, bins=range(max(overdispersed_data) + 2), density=True, alpha=0.6, label='Veri')
plt.plot(x, nbinom.pmf(x, n_fit, p_fit), 'r-', label=f'Uygulanan Negatif Binom (n={n_fit:.2f}, p={p_fit:.2f})')
plt.xlabel('Olay Sayısı')
plt.ylabel('Olasılık')
plt.legend()
plt.title('Aşırı Dağılmış Veriler için Negatif Binom Uydurma')
plt.show()
Bu, negatif binom dağılımının aşırı dağılmış verilerin özelliklerini etkili bir şekilde nasıl yakaladığını ve Poisson uyumunu zorlamaktan daha doğru bir model sunduğunu göstermektedir.
Sonuç
Etkin Poisson dağılımı uygulanması dikkatli veri analizi gerektirir. poisson.fit()
basit bir başlangıç noktası sağlarken, negatif binom dağılımını kullanarak aşırı dağılımı tanımak ve ele almak, doğru sayım veri modellemesi için çok önemlidir. Dağılım seçimi, veri kümesinin belirli özelliklerine bağlıdır. Grafikleri kullanarak uyumun görsel olarak incelenmesi, seçilen dağılımın verileri doğru bir şekilde temsil ettiğinden emin olmayı sağlar.