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.
- 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.0039Deneysel 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ü
| Sembol | Anlamı |
|---|---|
| Deneme sayısı (gönderilen e-posta sayısı) | |
| Tek bir denemede başarı olasılığı (açılma olasılığı) | |
| Aradığımız başarı sayısı (kaç e-posta açıldı) | |
| denemeden ‘sının başarı olacağı kaç farklı sırada olabileceği (kombinasyon) |
Formülün mantığı üç parçadan oluşuyor: , tanesinin başarılı olma olasılığı; , geri kalanının başarısız olma olasılığı; ise bu başarının 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ı 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.0480Nerede 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:
- 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).
- n büyükken ‘yı elle hesaplamaya çalışıp taşma (overflow) hatası almak —
scipy.stats.binombunu güvenli hesaplar. - 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?
- Binom
- Bernoulli (doğru cevap)
- Poisson
- 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?
- 0.3
- 6 (doğru cevap)
- 20
- 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?
- Başarı olasılığının karesini
- k başarının n deneme içinde hangi sırada olabileceğinin sayısını (doğru cevap)
- Ortalamayı
- 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.