Ana içeriğe geç

Giriş13 dk

Bernoulli ve Binom

Önkoşul:Olasılık dağılım fonksiyonları

Kanca

20 kişilik bir e-posta listesine kampanya gönderiyorsun, geçmiş verilerine göre her e-postanın açılma olasılığı %30. Bu kampanyada kaç kişi açar? 6 kişi mi, tam olarak? Hayır — ama “6 civarı, ve bunun ne kadar civarı olduğunu da hesaplayabiliriz” diyebiliriz.

Sezgi

Tek bir e-postanın açılıp açılmaması bir yazı-tura gibidir: sadece iki sonuç var, açıldı (1) ya da açılmadı (0). Buna Bernoulli denemesi denir — tek bir p (başarı olasılığı) parametresiyle tanımlanır.

Şimdi bu denemeyi 20 kez, birbirinden bağımsız olarak tekrarla (20 farklı kişiye e-posta gönder) ve kaç tanesinin “başarı” (açılma) olduğunu say. Bağımsız Bernoulli denemelerinin toplam başarı sayısı Binom dağılımına uyar — ortalaması n×p’dir ama her seferinde tam o sayı çıkmaz, etrafında dağılır. 20×0.30 = 6 kişi “beklenen” sayıdır, ama bazı kampanyalarda 3, bazılarında 10 kişi açabilir.

0510152000.050.100.150.20değeryoğunluk / olasılık
  • PMF — olasılık kütlesi
  • CDF — birikimli olasılık

Eşiğin (6) üzerinde kalma olasılığı: %58.4

n ve p’yi değiştir, dağılımın şeklinin nasıl kaydığını izle. p arttıkça dağılım sağa kayar; n arttıkça çan eğrisine benzemeye başlar.

Mekanizma

Somut sayılarla ilerleyelim. Önce tek bir Bernoulli denemesi:

Tek deneme (Bernoulli)

# Bir e-posta kampanyası: her e-postanın açılma olasılığı p = 0.30.
# Tek bir e-posta göndermek = tek bir Bernoulli denemesi (açıldı: 1, açılmadı: 0).
p = 0.30
tek_deneme = rng.random(10) < p  # 10 e-posta, her biri bağımsız bir Bernoulli denemesi
print("10 e-postanın açılma durumu:", tek_deneme.astype(int))
print(f"Bu 10 e-postada açılma oranı: {tek_deneme.mean():.2f}  (teorik p = {p})")
10 e-postanın açılma durumu: [0 0 0 0 1 0 0 0 1 0]
Bu 10 e-postada açılma oranı: 0.20  (teorik p = 0.3)

10 e-postada 2 tanesi açıldı — oran 0.20, teorik p=0.30’a tam eşit değil, çünkü sadece 10 deneme var (küçük örneklem). Şimdi 20 e-postalık kampanyayı 10.000 kez simüle edip her seferinde kaç e-postanın açıldığını sayıyoruz:

10.000 kampanya simülasyonu

# Şimdi 20 e-postalık BİR kampanyayı 10.000 kez tekrarla — her seferinde kaç tanesi açılıyor?
n = 20
tekrar = 10_000
acilan_sayisi = rng.binomial(n, p, size=tekrar)  # her eleman: bir kampanyada açılan e-posta sayısı

for k in [0, 4, 6, 8, 12]:
    deneysel = np.mean(acilan_sayisi == k)
    teorik = stats.binom.pmf(k, n, p)
    print(f"k={k:>2}  deneysel P(X=k)={deneysel:.4f}   teorik P(X=k)={teorik:.4f}")
k= 0  deneysel P(X=k)=0.0006   teorik P(X=k)=0.0008
k= 4  deneysel P(X=k)=0.1353   teorik P(X=k)=0.1304
k= 6  deneysel P(X=k)=0.1937   teorik P(X=k)=0.1916
k= 8  deneysel P(X=k)=0.1138   teorik P(X=k)=0.1144
k=12  deneysel P(X=k)=0.0036   teorik P(X=k)=0.0039

Deneysel ve teorik olasılıklar (örneğin k=6 için %19.37 ve %19.16) neredeyse birebir örtüşüyor. Bu bize Binom dağılımının formülünün gerçekten işe yaradığını gösteriyor — elle 10.000 kampanya simüle etmeye gerek yok, formül aynı sonucu veriyor.

Çoğu kişi “ortalama 6 kişi açar, demek her kampanyada 6 kişi açılır” sanır. Değil, çünkü ortalama sadece uzun vadede beklenen değerdir — tek bir kampanyada 4 de, 9 da açılabilir; Binom dağılımı bu değişkenliği tam olarak nicelendirir.

Matematik

Binom dağılımının formülü
P(X=k)=(nk)pk(1p)nkP(X = k) = \binom{n}{k} p^k (1-p)^{n-k}E[X]=npE[X] = npVar(X)=np(1p)\mathrm{Var}(X) = np(1-p)
SembolAnlamı
nnDeneme sayısı (gönderilen e-posta sayısı)
ppTek bir denemede başarı olasılığı (açılma olasılığı)
kkAradığımız başarı sayısı (kaç e-posta açıldı)
(nk)\binom{n}{k}nn denemeden kk‘sının başarı olacağı kaç farklı sırada olabileceği (kombinasyon)

Formülün mantığı üç parçadan oluşuyor: pkp^k, kk tanesinin başarılı olma olasılığı; (1p)nk(1-p)^{n-k}, geri kalanının başarısız olma olasılığı; (nk)\binom{n}{k} ise bu kk başarının nn deneme içinde hangi sırada olabileceğinin sayısı — çünkü “ilk 6 kişi açtı” ile “son 6 kişi açtı” aynı k=6k=6 sonucunu verir ama farklı sıralardır, hepsini saymamız gerekir.

Kod

Formülün verdiği ortalama ve varyansın simülasyonla ne kadar örtüştüğünü, ve “en az 10 kişi açar mı” gibi pratik bir soruyu kontrol edelim:

Ortalama, varyans ve eşik sorusu

deneysel_ortalama = acilan_sayisi.mean()
deneysel_varyans = acilan_sayisi.var()
teorik_ortalama = n * p
teorik_varyans = n * p * (1 - p)

print(f"Deneysel ortalama: {deneysel_ortalama:.2f}   Teorik n*p = {teorik_ortalama:.2f}")
print(f"Deneysel varyans:  {deneysel_varyans:.2f}   Teorik n*p*(1-p) = {teorik_varyans:.2f}")

# En az 10 kişinin açması ne kadar olası?
p_en_az_10 = np.mean(acilan_sayisi >= 10)
p_en_az_10_teorik = 1 - stats.binom.cdf(9, n, p)
print(f"\nP(en az 10 açılma) deneysel = {p_en_az_10:.4f}   teorik = {p_en_az_10_teorik:.4f}")
Deneysel ortalama: 5.98   Teorik n*p = 6.00
Deneysel varyans:  4.19   Teorik n*p*(1-p) = 4.20

P(en az 10 açılma) deneysel = 0.0483   teorik = 0.0480
Solda Binom(n=20, p=0.3) dağılımının teorik PMF çubukları, ortalama 6'da işaretli; sağda 10.000 simülasyonun deneysel dağılımı teorik PMF eğrisiyle üst üste.
10.000 kampanya simülasyonunun sonucu, formülün verdiği teorik PMF'i noktası noktasına izliyor.

Nerede işe yarar

Binom dağılımı “n bağımsız evet/hayır denemesinde kaç tane evet” sorusunun cevabıdır — bu soru her yerde karşına çıkar:

  • Pazarlama ve ürün. E-posta açılma oranı, reklam tıklama oranı, A/B testinde dönüşüm sayısı.
  • Kalite kontrol. 100 parçalık bir üretim partisinde kaç tanesinin hatalı çıkacağı.
  • Anketler. 500 kişilik bir örneklemde “evet” diyenlerin sayısı — ileride güven aralığı ve hipotez testi derslerinde bu tam olarak Binom dağılımına dayanacak.

Bu 3 hatayı yaparsın:

  1. Denemelerin bağımsız olduğunu kontrol etmeden Binom uygulamak — örneğin aynı kişiye art arda gönderilen e-postalar bağımsız olmayabilir (biri açmazsa ikincisini de açmayabilir).
  2. n büyükken (nk)\binom{n}{k}‘yı elle hesaplamaya çalışıp taşma (overflow) hatası almak — scipy.stats.binom bunu güvenli hesaplar.
  3. p’nin her denemede sabit kaldığını varsaymak — gerçekte açılma olasılığı gün içindeki saate göre değişebilir, bu da modelin varsayımını bozar.

Kendini test et

1. Bir e-postanın açılıp açılmaması (tek bir deneme) hangi dağılıma örnektir?
  1. Binom
  2. Bernoulli (doğru cevap)
  3. Poisson
  4. Normal

Neden: Bernoulli, tek bir denemede sadece iki sonucu (başarı/başarısızlık) olan en temel kesikli dağılımdır. Binom, birden çok bağımsız Bernoulli denemesinin toplamıdır.

2. n=20, p=0.3 olan bir Binom dağılımının beklenen değeri (ortalaması) nedir?
  1. 0.3
  2. 6 (doğru cevap)
  3. 20
  4. 14

Neden: E[X] = np = 20 × 0.3 = 6. Bu "uzun vadede beklenen" değerdir, her kampanyada tam 6 çıkması gerekmez.

3. Binom formülündeki kombinasyon terimi $\binom{n}{k}$ neyi sayar?
  1. Başarı olasılığının karesini
  2. k başarının n deneme içinde hangi sırada olabileceğinin sayısını (doğru cevap)
  3. Ortalamayı
  4. Varyansı

Neden: k tane başarı, n deneme içinde farklı sıralarda gerçekleşebilir (ilk k tanesi, son k tanesi, karışık...); kombinasyon terimi bu farklı sıraların sayısını verir.

Özet

Özet

  • Bernoulli, tek bir denemede iki sonuçlu (başarı/başarısızlık) en temel kesikli dağılımdır — tek parametresi p.
  • Binom, n bağımsız Bernoulli denemesindeki toplam başarı sayısının dağılımıdır.
  • Beklenen değer E[X] = np, varyans Var(X) = np(1-p) — formülle doğrudan hesaplanır, simülasyona gerek yok.
  • Binom uygulamak için iki şart var: denemeler bağımsız olmalı, başarı olasılığı (p) her denemede sabit olmalı.
  • n büyüdükçe Binom dağılımının şekli Normal dağılıma benzemeye başlar — bu benzerlik ileride merkezi limit teoreminde işimize yarayacak.
Sonraki adım: Poisson →