Bir çok analiz yönteminin temelini olasılık dağılımları oluşturmaktadır. İşin esasında olasılıkları dağılımları tam anlaşılmadan analiz yöntemleri ile istenilen sonuçların elde edilmesi tek başına bazıları için yeterli olsa da işin felsefesini anlamak açısından kesinlikle yetersizdir. Bu nedenle bu çalışmada öncelikle kesikli (disrete) ve sürekli (continous) dağılımlar başlıklar halinde verildikten sonra kesikli dağılım türlerinden biri olan Binom (iki terimli) dağılımı uygulama örnekleriyle ele alınarak somutlaştırılacaktır. Uygulama örnekleri R programlama dili kullanılarak adım adım yapılacaktır.
Rastlantı ya da kesin olmayan olaylarla ilgilenen olasılık teorisi, rastlantı olaylarını belirli kurallara göre matematik disiplininde inceleyen bir bilim dalıdır. Burada, rastlantı olayından kasıt gerçekleşmesi şansa bağlı olan önceden bilinmeyen olaylardır.
İstatistikte ve makine öğrenmede, diğer bir deyişle veri biliminde sıklıkla kullanılan örneklem uzayına bağlı olarak olasılık fonksiyon türleri kesikli ve sürekli olmak üzere iki ana başlıkta ele alınmaktadır.
- Kesikli Olasılık Fonksiyonu: Olasılık fonksiyonlarından ilki olan kesikli olasılık fonksiyonu örneklem uzayından elde edilen sonlu veya sayılabilir sonsuz sayıda ayrık sonuçları içermektedir.
- Sürekli Olasılık Fonksiyonu: Olasılık fonksiyonlarından diğeri sürekli olasılık fonksiyonu ise örneklem uzayından elde edilen sayılamayacak sonsuz sayıda ve ayrık olmayan sonuçları içermektedir.
Kesikli olasılık fonksiyonu ile sürekli olasılık fonksiyonu arasındaki temel farkı şöyle ifade edilebilir: Kesikli olasılık fonksiyonunda kesikli örneklem uzayı noktaları baz alırken, sürekli olasılık fonksiyonunda sürekli örneklem uzayı aralıklarla ilgilenmektedir.
Bahsedilen kesikli ve sürekli olasılık fonksiyonlarına göre dağılımlar iki ana başlık altında verilmektedir.
A) Kesikli Dağılımlar (Discrete Distributions)
- Bernoulli Dağılımı
- Kesikli Uniform Dağılımı
- Binom Dağılımı
- Poisson Dağılımı
- Negatif Binom Dağılımı
- Geometrik Dağılım
- Hipergeometrik Dağılımı
B) Sürekli Dağılımlar (Continuous Distributions)
- Normal Dağılım
- Tekbiçimli Uniform Dağılım
- Cauchy Dağılımı
- t Dağılımı
- F Dağılımı
- Ki-kare Dağılımı
- Üstel Dağılım
- Weibull Dağılımı
- Lognormal Dağılımı
- Birnbaum-Saunders
- Gamma Dağılımı
- Çift Üstel Dağılımı
- Güç Normal Dağılımı
- Güç Lognormal Dağılımı
- Tukey-Lambda Dağılımı
- Uç Değer Tip I Dağılımı
- Beta Dağılımı
Binom Dağılımı
Olasılık teorisinde adını İsviçreli matematikçi Jacob Bernoulli’den alan Bernoulli dağılımı, bir denemenin iki sonucu (başarılı- başarısız, evet-hayır) olması durumunda kullanılan kesikli bir olasılık dağılımıdır. Binom dağılımı ise n kez tekrarlanan Bernoulli deneylerinden oluşmaktadır. Bernoulli dağılımında deney bir kez yapılarak başarılı olma/olmama durumu ile ilgilenirken binom dağılımı rastgele deney aynı koşullar altında n kez tekrarlanır. Diğer bir ifadeyle, eğer deney birden fazla ve bağımsız olarak tekrarlanılıp ve başarılı olma durumu ile ilgilenilirse o zaman Bernoulli dağılımının özel bir durumu olan Binom dağılımının kullanılması gerekmektedir. Eğer binom dağılımında denemelerin sayısı sonsuzsa Poisson dağılımına evrilir. Binom dağılımında kullanılan parametreler Tablo 1’de verilmiştir. Binom dağılımında n denemelerin sayısı göstermek üzere n>1’den büyük iken Bernoulli dağılımında n=1’dir.
Tablo 1: Binom Dağılım Parametreleri
Binom Olasılık Kütle Fonksiyonu (PMF)
Tablo 1’deki parametreler kullanılarak oluşturulan Binom olasılık kitle fonksiyonu (pmf) aşağıdaki eşitlikte verilmiştir.
Örnek Uygulamalar
Örnek uygulamalara geçilmeden önce R’da yüklenmesi gereken kütüphaneleri aşağıda verelim. Daha önce aşağıdaki kütüphaneler kurulmamışsa lütfen kurunuz. R studio’yu sıklıkla kullandığım için gerek arayüzünün kullanım kolaylığı gerekse verimli olması açısından R konsol yerine R Studio arayüzünün kullanılması önerilmektedir. Eğer R yüklü değilse yapılan bu işlemleri bulutta yer alan R programlama yazılımını da kullanarak yapabilir ve R Studio arayüzünden bu platform üzerinden yararlanabilirsiniz. Sıklıkla bulut üzerindeki R Studio’yu da şahsen kullanmaktayım. Aşağıda linkten buluta giriş sağlayabilirsiniz. Sıklıkla
RStudio Cloud: https://login.rstudio.cloud/
gereklikütüphaneler<-sapply(c("dplyr","tibble","tidyr","ggplot2","formattable","ggthemes","readr","readxl","xlsx","ggpubr","formattable", "ggstance"), require, character.only = TRUE)
gereklikütüphaneler
Örnek 1: Ortalama, Varyans, Basıklık ve Çarpıklık Değerlerinin Hesaplanması
İlk olarak Bernoulli dağılımında başarı olasılığı verilen bir deneyin ortalama, varyans, basıklık ve çarpıklık değerlerine bakalım. Başarı olasılığımız (p) 0,6 olsun. Denemelerin sayısı (n) 8, örneklem uzayımız ise {0,…, n}’dir. Aşağıda yazılan R kod bloğunda Binom dağılımına ait ortalama, varyans, basıklık ve çarpıklık değerlerini hesaplayalım.
n<-8#denemelerin sayısı
x<-0:n#örneklem uzayı (8 kez)
p<-0.6#başarı olasılığı
ortalama=n*p
varyans=n*p*(1-p)
carpiklik=(1-2*p)/sqrt(varyans)
basiklik= (1/varyans)-6/n
formattable(cbind(ortalama, varyans,carpiklik, basiklik) %>% as_tibble() %>% mutate_if(is.numeric, round,3))
Yukarıdaki R kod bloğunun çalıştırılmasından sonra Bernoulli dağılımına ait elde edilen ortalama, varyans, çarpıklık ve basıklık değerleri aşağıdaki tabloda verilmiştir.
Örnek 2: Kütle Olasılık Fonksiyonu (PMF)’nun Hesaplanması
Bu kısımda varsayımsal ve orjinal bir örnekle Binom dağılımının kütle olasılık fonksiyonunu hesaplayalım. Bir süper lig futbol spor kulübünün son iki yılda yaptığı müsabakalarda 50 maçtan 30’unu kazanmıştır. Yapılacak tarafsız ve bağımsız 34 müsabakada başarılı olma olasılığını hesaplayarak, kütle olasılık fonksiyon grafiğini çizelim.
Bilinenler:
n=34 (denemelerin sayısı: müsabakaların sayısı)
Örneklem uzayı (x) ={0,1,2,3,….., n}
Kazanılan müsabaka sayısı = 30
Müsabaka sayısı = 50
Başarılı olma olasılığı (p) = 30/50 = 0,6
Şimdi verilenleri aşağıda yazdığım R kod bloğunda yerine koyalım.
n=34 #denemelerin sayısı (müsabaka sayısı)
x<-0:n #Örneklem uzayı
p<-30/50 #kazanma olasılığı
#binom olasılıkları hesaplamak için
okf<-dbinom(x,size = n,prob = p)
okf
#alternatif formül
choose(n, x) * p^x * (1-p)^(n-x)
#grafiği çizmek için
sonuc<-okf %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>% mutate(Orneklem_Uzayı=seq(1,n+1, 1), Olasilik=as.numeric(value))
grafik<-sonuc[,-1] %>% ggplot(aes(x=Orneklem_Uzayı,y=Olasilik)) + geom_line(color="red", size=1.5) +
guides(fill=FALSE) +
ggtitle(paste("Binom Olasılık Kütle Fonksiyonu (PMF)","(p=",round(p,2),",","n=",n,")")) +
ylab("Olasılık")+
xlab("Örneklem Uzayı")+
theme_igray()+
theme(plot.title = element_text(hjust = 0.5))
grafik
Yukarıdaki R kod bloğu çalıştırıldıktan sonra elde edilen Binom olasılık değerleri aşağıda verilmiştir.
[1] 2.951479e-14 1.505254e-12 3.725504e-11 5.960807e-10 6.929438e-09
[6] 6.236494e-08 4.521458e-07 2.712875e-06 1.373393e-05 5.951370e-05
[11] 2.231764e-04 7.303954e-04 2.099887e-03 5.330482e-03 1.199358e-02
[16] 2.398717e-02 4.272714e-02 6.786075e-02 9.613607e-02 1.214350e-01
[21] 1.366144e-01 1.366144e-01 1.210900e-01 9.476612e-02 6.515171e-02
[26] 3.909103e-02 2.029726e-02 9.021006e-03 3.382877e-03 1.049858e-03
[31] 2.624646e-04 5.079960e-05 7.143694e-06 6.494267e-07 2.865118e-08
Binom olasılık değerlerinin grafiğe yansıtılmış hali ise aşağıda verilmiştir.
Binom Kümülatif Dağılım Fonksiyonu (CDF)
Binom olasılık dağılımda kümülatif dağılım fonksiyonu aşağıdaki eşitlik yardımıyla hesaplanmaktadır.
Örnek 3: Kümülatif Dağılım Fonksiyonu (CDF)’nunun Hesaplanması
Aşağıda yazılan R kod bloğunda ise yukarıdaki müsabaka örneğinden hareketle kümülatif dağılım fonksiyonu hesaplanmıştır.
n=34#denemelerin sayısı (müsabaka sayısı)
x<-0:n# Örneklem uzayı
p<-30/50# başarı olasılığı
#kümülatif dağılım fonkiyonunu hesaplamak için
kdf<-pbinom(x,size = n,prob = p)
#grafiği çizmek için
sonuc<-kdf %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>% mutate(Orneklem_Uzayı=seq(1,n+1, 1), Olasilik=as.numeric(value))
grafik<-sonuc[,-1] %>% ggplot(aes(x=Orneklem_Uzayı,y=Olasilik)) + geom_line(color="red", size=1.5) +
guides(fill=FALSE) +
ggtitle(paste("Binom Kümülatif Dağılım Fonksiyonu (CDF)","(p=",round(p,2),",","n=",n,")")) +
ylab("Olasılık")+
xlab("Örneklem Uzayı")+
theme_igray()+
theme(plot.title = element_text(hjust = 0.5))
grafik
Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen kümülatif olasılık değerleri aşağıda verilmiştir. Kümülatif olasılık değerlerini hesapladığımız için aşağıda da görüleceği üzere her halükarda son olasılık değeri 1’e eşittir.
[1] 2.951479e-14 1.534769e-12 3.878981e-11 6.348705e-10 7.564309e-09
[6] 6.992925e-08 5.220751e-07 3.234950e-06 1.696888e-05 7.648258e-05
[11] 2.996589e-04 1.030054e-03 3.129941e-03 8.460423e-03 2.045401e-02
[16] 4.444117e-02 8.716832e-02 1.550291e-01 2.511651e-01 3.726002e-01
[21] 5.092146e-01 6.458290e-01 7.669190e-01 8.616852e-01 9.268369e-01
[26] 9.659279e-01 9.862252e-01 9.952462e-01 9.986291e-01 9.996789e-01
[31] 9.999414e-01 9.999922e-01 9.999993e-01 1.000000e+00 1.000000e+00
Şimdi de hesaplanan bu kümülatif olasılık değerlerine göre kümülatif olasılık fonksiyonu (CDF:Cumulative Distribution Function)’nun grafiğini çizelim.
Binom Dağılımına Göre Örneklem Seçimi
Binom dağılımına uygun olarak yukarıdaki müsabaka örneğinden hareketle tekrarlı basit tesadüfi örneklem yöntemini kullanarak ve hesaplanan olasılık değerleri dikkate alınarak deneme sayısı (n)’nın 34, örneklem büyüklüğünün ise 1000 olduğu örneklem üretelim. Ardından üretilen bu örneklem hem yoğunluk grafiğini hem de histogramı çizelim.
p<-30/50# başarı olasılığı
n<-1000#örneklem büyüklüğü
#Binom dağılıma uygun örneklem seçimi
set.seed(1)#değerleri sabitlemek için
nbd<-tibble(Sayi=rbinom(n,size = 34,prob = p))
ggplot(nbd, aes(x=Sayi)) +
geom_histogram(aes(y=..density..),bins=100,binwidth=.3, fill="red")+
geom_density(alpha=.3, fill="blue")+
xlab("Örneklem Uzayı")+
ylab("Yoğunluk")+
ggtitle(paste("Binom Örneklem Yoğunluk ve Sıklık Grafiği","(p=",round(p,2),",","n=",n,")"))+
theme(plot.title = element_text(hjust = 0.5))
#Alternatif olarak sadece yoğunluk grafiği verecek olursak
ggdensity(rbinom(n,size = 34,prob = p), xlab="",ylab="Yoğunluk",col="red")+
theme_economist()+
ggtitle(paste("Binom Örneklem Yoğunluk Grafiği","(p=",round(p,2),",","n=",n,")"))+
theme(plot.title = element_text(hjust = 0.5))
#sadece histogramı verecek olursak
set.seed(1)#değerleri sabitlemek için
nbd<-tibble(Sayi=rbinom(n,size = 34,prob = p))
ggplot(nbd, aes(x=Sayi)) +
geom_histogram(bins=50,binwidth=.4,fill = "blue", alpha = 0.7)+
xlab("Örneklem Uzayı")+
ylab("Sıklık")+
ggtitle(paste("Binom Örneklem Histogramı","(p=",round(p,2),",","n=",n,")"))+
theme(plot.title = element_text(hjust = 0.5))+
theme_hc()
Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen Binom dağılımına uygun üretilen örneklemin histogram ve yoğunluk grafiği aşağıdaki verilmiştir.
Alternatif olarak daha net görebilmek adına sadece yoğunluk grafiği verecek olursak R kod bloğundaki ilgili alan çalıştırıldığında aşağıdaki grafik elde edilmiş olacaktır. Burada amaç biraz da grafiği farklı bir temayla sunmak :).
Alternatif olarak daha net görebilmek adına sadece histogramı verecek olursak R kod bloğundaki ilgili alan çalıştırıldığında aşağıdaki grafik elde edilmiş olacaktır.
İlave örnekler
Bir ralli pilotunun bir yarışı kazanma olasılığı 4/7’dir. X kazanma sayını göstermek üzere ve yarışların bağımsız olduğu varsayımına göre 10 kez yarış düzenlendiğinde,
- Yarışı 4 kez kazanma,
- Yarışı en az 4, en çok 9 defa kazanma,
- Yarışı 5 defadan fazla kazanma olasılıklarını
Binom dağılımına göre hesaplayalım.
# Bilinenler
n=10 #deneme sayısı
p=4/7 #yarışı kazanma olasılığı
#Yarışı 4 kez kazanma olasılığı
dbinom(4,size = n,prob = p)#sonuç:0.1387415
#Yarışı en az 4, en çok 9 defa kazanma
sum(dbinom(4:9,size = n,prob = p))#sonuç: 0.9171077
#Yarışı 5 defadan fazla kazanma olasılığı
sum(dbinom(6:10,size = n,prob = p))#sonuç:0.5600919
Yukarıdaki R kod bloğu çalıştırıldıktan sonra hesaplanan olasılıklar sırasıyla;
- Yarışı 4 kez kazanma olasılığı yaklaşık 0,140 (0,1387415)‘dır.
- Yarışı en az 4, en çok 9 defa kazanma olasılığı yaklaşık 0,92 (0.9171077)’dir.
- Yarışı 5 defadan fazla kazanma olasılığı yaklaşık 0,57 (0.5600919)’dir.
Yapılan bu çalışma ile özellikle veri bilimi (data science) ile ilgilenen akademi ve saha çalışanlarına bir katkı sunulması amaçlanmıştır.
Faydalı olması ve farkındalık oluşturması dileğiyle.
Bilimle ve teknolojiyle kalınız.
Saygılarımla.
Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
Note: It can not be cited or copied without referencing.
Yararlanılan Kaynaklar
- http://www.hcs.harvard.edu/cs50-probability/binomial.php
- http://people.stern.nyu.edu/adamodar/New_Home_Page/StatFile/statdistns.htm
- https://statisticsglobe.com/bernoulli-distribution-in-r-dbern-pbern-qbern-rbern
- https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Distributions.html
- https://my.ilstu.edu/~wjschne/442/SimulatingRandomData.html#bernoulli-distribution
- https://www.itl.nist.gov/div898/handbook/eda/section3/eda366.htm
- RStudio Cloud: https://login.rstudio.cloud/
- Matematiksel İstatistik, İsmail Erdem, Gözden Geçirilmiş ve Genişletilmiş 3. Baskı.
- The R Project for Statistical Computing. https://www.r-project.org/