Öne çıkan

Şans Oyunları Perspektifinden Olasılık III: Probability from Perspective of the Chance Games III

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. Burada olabildiğince yalın bir şekilde uygulamalı örneklerin şans oyunları üzerinden verilmesinin nedeni olasılık konusuna dikkat çekmek ve olasılık konusuyla ilgileneceklere katkıda bulunmaktır. Yoksa amaç bu oyunları oynamaya özendirmek veya teşvik emek değildir. Bunu burada özellikle ifade etmek gerekir.

Çalışma kapsamında R programlama dili ve Microsoft Office Excel kullanılarak şans oyunlarından biri olan 10 Numara kombinasyonları ve olasılıkları hesaplanarak kazanma olasılıkları karşılaştırmalı olarak verilmiştir.

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.

10 Numara kazanma olasılıklarının hesaplanmasında kesikli olasılık dağılımlarından biri ola Hipergeometrik Olasılık Dağılımı (Hypergeometric Probability Distribution) kullanılmıştır.

Hypergeometrik Dağılım

Hipergeometrik dağılım basit tekrarsız tesadüfi örneklem (iadesiz örneklem) seçiminin yapıldığı denemedir. Hipergeometik dağılımın varsayımları şöyledir:

  • Her deneyin olası iki sonucu vardır.
  • Deneyin tekrarlanma sayısı (n) sabittir.
  • Deneyler birbirinden bağımsızdır.

Hipergeometrik dağılımında kullanılan parametreler Tablo 1’de verilmiştir. Eşitliklerde bir deneyde istenen sonucun ortaya çıkma olasılığı, diğer bir ifadeyle başarı olasılığı p, istenen sonucun ortaya çıkmama olasılığı ise q=1-p‘dir. Tekrarsız örnekleme söz konusu olduğu için başarı olasılığı (p) deneyden deneye farklılık göstermektedir.

Tablo 1: Hipergeometrik Dağılım Parametreleri

Hipergeometrik Olasılık Kütle Fonksiyonu (PMF)

Tablo 1’deki parametreler kullanılarak oluşturulan Hipergeometrik olasılık kütle fonksiyonu (PMF) aşağıdaki eşitlikte verilmiştir. Parantez içindeki eşitlikler tekrarsız kombinasyonları ifade etmektedir.

Eşitlikte N anakütle eleman sayısını, m popülasyondaki başarı sayısını, x örneklemdeki başarı sayısını, n örneklem hacmini göstermektedir.

Ö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","vcd"), require, character.only = TRUE)
gereklikütüphaneler

Örnek: 10 Numara şans oyununda haznede 80 top bulunmaktadır. İçerisinden iadesiz seçilen 22 toptan sırasıyla hiç bilmeyene (0 bilen), 6, 7, 8, 9 ve 10 bilene ikramiye verilmektedir.

İstenenler

  1. 10 Numara şans oyunu olasılık fonksiyonunu bulunuz.
  2. 10 Numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıklarını sırasıyla hesaplayınız.

Bilinenler

  • N= 80 (Anakütledeki eleman sayısı)
  • x=0 ve 6’dan 10’a kadar (dahil) (Örneklemdeki başarı sayısı)
  • m=10 (Popülasyondaki başarı sayısı)
  • n= 22 (Örneklem hacmi)

Çözüm

  1. Bilinenleri Hipergeometrik kütle olasılık fonksiyonunda yerine koyarsak 10 Numara şans oyunu olasılık fonksiyonu aşağıdaki gibi olacaktır. Parantez içindeki eşitlikler tekrarsız kombinasyonları göstermektedir.

2. 10 numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıkları aşağıda yazılan R kod bloğunda hesaplanmıştır.

#bilinenler
N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=c(0, 6:10)#Örneklemdeki başarı sayısı (x) 0 ve 6'dan 10'a kadar (dahil). Burada kazanma olasılıklarının vektör içerisinde tanımlanmasının nedeni aşağıda for döngüsü işlevi görmesinin sağlanarak birden fazla olasılık fonksiyonu yazılmamak istenmemesidir. Böylece işlem süresi kısaltılmış ve işlem yükü de azaltılmıştır.
m=10#Popülasyondaki başarı sayısı (m) 10'dur.
n=22#Örneklem hacmi (n) 22'dir.

#Tablo oluşturma
tablo<-tibble(Kategori=c("Sıfır", "Altı", "Yedi", "Sekiz", "Dokuz", "On"),Kazanma_Olasılığı=as.numeric(choose(m,x)*choose(N-m,n-x)/choose(N,n))) %>% mutate(Tersine_Olasılık=1/Kazanma_Olasılığı) %>% mutate_if(is.numeric, round, 10) 
tablo
#formatlanmış tablo
formattable(tablo,
            align =rep("r",3), 
            list(formatter(
              "span", style = ~ style(color = "grey",font.weight = "bold")),
`Kazanma_Olasılığı` = color_bar("#FA614B"),
`Tersine_Olasılık` = color_bar("#B0C4DE")
))

Yukarıdaki R kod bloğunun çalıştırılmasından sonra 10 Numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıkları aşağıdaki tabloda verilmiştir. Aynı zamanda daha kolay anlayabilmeniz için hesaplanan olasılıkların çarpmaya göre tersi (1/Olasılık) alınmış ve tabloya yansıtılmıştır. Ortaya konulan bulgulara göre 10 numara şans oyununda

  • Hiç bilmediğinizde kazanma olasılığınız yaklaşık 31,55’te 1’dir.
  • 6 bildiğinizde kazanma olasılığınız yaklaşık 52,01’de 1’dir.
  • 7 bildiğinizde kazanma olasılığınız yaklaşık 312,88’de 1’dir.
  • 8 bildiğinizde kazanma olasılığınız yaklaşık 3.114,94’te 1’dir.
  • 9 bildiğinizde kazanma olasılığınız yaklaşık 57.070,07’de 1’dir.
  • 10 bildiğinizde kazanma olasılığınız yaklaşık 2.546.203,19’da 1’dir.

Yukarıda R’da hesapladığım 10 Numara kazanma olasılıklarını aynı zamanda aşağıda R’da yazdığım for döngüsü kullanarak da yapabiliriz.

N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=c(0, 6:10)#Örneklemdeki başarı sayısı (x) 0 ve 6'dan 10'a kadar (dahil)
m=10#Popülasyondaki başarı sayısı (m) 10'dur.
n=22#Örneklem hacmi (n) 22'dir.

for (i in seq_along(x)) {
  x[i] <-choose(m,x[i])*choose(N-m,n-x[i])/choose(N,n)
  x[i]<-1/x[i]
}
print(paste(c(0, 6:10),"kazanma olasılığı:", round(x,5),"'de 1'dir."))

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen 10 Numara kazanma olasılıkları kazanma kategorilerine göre aşağıda verilmiştir.

[1] "0 kazanma olasılığı: 31.5544 'de 1'dir."       
[2] "6 kazanma olasılığı: 52.01191 'de 1'dir."      
[3] "7 kazanma olasılığı: 312.88416 'de 1'dir."     
[4] "8 kazanma olasılığı: 3114.93568 'de 1'dir."    
[5] "9 kazanma olasılığı: 57070.07157 'de 1'dir."   
[6] "10 kazanma olasılığı: 2546203.19328 'de 1'dir."

Yukarıda hesaplanan 10 numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıkları R bilmeyenler için ayrıca Microsoft Office Excel ortamında da hesaplanmıştır. Excel ortamında ilk olarak bilinenler tablosunu aşağıda verelim.

Yukarıdaki bilinenler tablosuna göre excel ortamında hesaplanan 10 Numara şans oyunu kazanma olasılıkları kategorilere göre aşağıda verilmiştir.

Şimdi yapılan bu işlemleri excel ortamında kullanılan fonksiyonları da görebilmeniz adına aşağıda xlsx formatında paylaşıyorum.

Özetle R’da ve Microsoft Excel’de yapılan bu çalışmayla olasılık teorisinde yer alan Hipergeometrik olasılık dağılımı kullanılarak şans oyunları özelinde olasılık teorisine dikkat çekilmeye çalışılmıştır.

Daha önce Şans oyunları özelinde örnek uygulama yaptığım çalışmaların linklerini de aşağıda paylaşıyorum ilgilenenler için.

Şans Oyunları Perspektifinden Olasılık

Şans Oyunları Perspektifinden Olasılık II

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

Öne çıkan

Hipergeometrik Olasılık Dağılımı Üzerine Bir Vaka Çalışması: A Case Study on Hypergeometric Probability Distribution

Birçok analiz yönteminin temelini olasılık dağılımları oluşturmaktadır. İşin esasında olasılık 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 (discrete) ve sürekli (continuous) dağılımlar başlıklar halinde verildikten sonra kesikli dağılım türlerinden biri olan Hipergeometrik dağılımı özgün uygulama örnekleriyle ele alınarak somutlaştırılacaktır. Uygulama örnekleri ağırlıklı olarak 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.

  1. 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.
  2. 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ı, sürekli olasılık fonksiyonunda sürekli örneklem uzayı ise aralıkları baz almaktadır.

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)

  1. Bernoulli Dağılımı
  2. Kesikli Uniform Dağılımı
  3. Binom Dağılımı
  4. Poisson Dağılımı
  5. Negatif Binom Dağılımı
  6. Geometrik Dağılım
  7. Hipergeometrik Dağılım

B) Sürekli Dağılımlar (Continuous Distributions)

  1. Normal Dağılım
  2. Tekbiçimli Uniform Dağılım
  3. Cauchy Dağılımı
  4. t Dağılımı
  5. F Dağılımı
  6. Ki-kare Dağılımı
  7. Üstel Dağılım
  8. Weibull Dağılımı
  9. Lognormal Dağılımı
  10. Birnbaum-Saunders
  11. Gamma Dağılımı
  12. Çift Üstel Dağılımı
  13. Güç Normal Dağılımı
  14. Güç Lognormal Dağılımı
  15. Tukey-Lambda Dağılımı
  16. Uç Değer Tip I Dağılımı
  17. Beta Dağılımı

Hypergeometrik Dağılım

Hipergeometrik dağılım basit tekrarsız tesadüfi örneklem (iadesiz örneklem) seçiminin yapıldığı denemedir. Binom dağılımında ise her örneklem seçiminde başarı olasılığı sabit ve deneyler birbirinden bağımsızdır. Ayrıca Binom dağılımında Hipergeometrik dağılımın aksine basit tekrarlı tesadüfi örneklem (iadeli örneklem) seçiminin yapıldığı denemelerden oluşur. Ancak Hipergeometrik dağılımın ortalaması ile Binom dağılımın ortalaması aynı iken varyansları farklılık göstermektedir. Hipergeometik dağılımın varsayımları şöyledir:

  • Her deneyin olası iki sonucu vardır.
  • Deneyin tekrarlanma sayısı (n) sabittir.
  • Deneyler birbirinden bağımsızdır.

Hipergeometrik dağılımında kullanılan merkezi dağılım ve yayılım ölçüleri Tablo 1’de verilmiştir. Eşitliklerde bir deneyde istenen sonucun ortaya çıkma olasılığı, diğer bir ifadeyle başarı olasılığı p, istenen sonucun ortaya çıkmama olasılığı ise q=1-p‘dir. Tekrarsız örnekleme söz konusu olduğu için başarı olasılığı (p) deneyden deneye farklılık göstermektedir.

Tablo 1: Hipergeometrik Dağılım Merkezi Dağılım ve Yayılım Ölçüleri

Hipergeometrik Olasılık Kütle Fonksiyonu (PMF)

Tablo 1’deki parametreler kullanılarak oluşturulan Hipergeometrik olasılık kütle fonksiyonu (PMF) aşağıdaki eşitlikte verilmiştir. Parantez içindeki eşitlikler tekrarsız kombinasyonları ifade etmektedir.

Eşitlikte N anakütle eleman sayısını, m popülasyondaki başarı sayısını, x örneklemdeki başarı sayısını, n örneklem hacmini göstermektedir.

Ö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","vcd"), require, character.only = TRUE)
gereklikütüphaneler

Örnek: Ortalama, Varyans, Basıklık ve Çarpıklık Değerlerinin Hesaplanması

İlk olarak Poisson dağılımında ortalama, varyans, basıklık ve çarpıklık değerlerine bakalım. R’da rhyper(nn, m, n, k) fonksiyonu kullanılarak Hipergeometrik dağılımına uygun gözlemler üretilmiştir. rhyper(nn, m, n, k) fonksiyonunda;

  • m torbadaki siyah misketlerin sayısını,
  • n torbadaki beyaz misketlerin sayısını,
  • k veya x torbadan çekilen misketlerin sayısını (eşitlikte x),
  • nn üretilecek gözlem sayısını (eşitlikte N)

göstermektedir.

İçerisinde beyaz ve siyah misketlerin olduğu torba için üretilecek gözlem sayısı (nn) 1000, torbadaki siyah misketlerin sayısı (m) 300, torbadaki beyaz misketlerin sayısı (n) 700, torbadan çekilen misketlerin sayısının ise 820 olduğu bir deneyde Hipergeometrik dağılıma uygun gözlemler üretelim. Ardından aşağıda yazılan R kod bloğunda Hipergeometrik dağılımına ait ortalama, standart sapma, varyans, basıklık ve çarpıklık değerlerini hesaplayalım. Ardından gözlemlerin histogramını çizelim..

set.seed(61)#her defasında aynı sonuçları almak için
nn=1000#üretilecek gözlem sayısı (eşitlikte N)
n=700#torbadaki beyaz misketlerin sayısı
m=300#torbadaki siyah misketlerin sayısı
k=820#torbadan çekilen misketlerin sayısı (eşitlikte x)
hgeoorneklem<-rhyper(nn, m, n, k)#Hipergeometrik Dağılıma uygun tesadüfi üretilen 1000 gözlem

#Hipergeometrik Dağılım Merkezi Dağılım ve Yayılım Ölçüleri
#Bilinenler:
N=1000#üretilecek gözlem sayısı (eşitlikte N)
n=700#torbadaki beyaz misketlerin sayısı
m=300#torbadaki siyah misketlerin sayısı
x=820#torbadan çekilen misketlerin sayısı
#hesaplama adımları
options(scipen=999)#bilimsel notasyondan sonuçları kurtarmak için
p=m/N#başarı olasılığı
q=(N-m)/N#başarısızlık olasılığı. Alternatif hesaplama: 1-p=q
ortalama=1/p
varyans= n*p*q*(N-n) / (N-1)
ssapma= sqrt(varyans)
carpiklik= (N-2*m)*(N-1)^1/2*(N-2*n) / ((n*m*(N-m)*(N-n))^1/2*(N-2))
basiklik= (N^2*(N-1) / n*(N-2)*(N-3)*(N-n))*((N*(N+1)-6*N*(N-n))/m*(N-m) + 3*n*(N-n)*(N+6) /N^2-6)
#sonuçlar tablosu
formattable(cbind(ortalama, ssapma, varyans,carpiklik, basiklik) %>% as_tibble() %>% mutate_if(is.numeric, round,6))

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Hipergeometrik dağılımına ait elde edilen ortalama, varyans, çarpıklık ve basıklık değerleri aşağıdaki tabloda verilmiştir.

Yukarıdaki R kod bloğunda ilgili alan çalıştırıldığında elde edilen veri setine ait histogram aşağıda verilmiştir.

Şimdi de farklı anakütle (popülasyon) eleman sayısı (N veya nn), popülasyondaki başarı sayı (m), örneklem hacmi (n) ve örneklemdeki başarı sayısı (x veya k)’na sahip Geometrik dağılımlara grafik üzerinde bakalım. Aşağıda yazılan R kod bloğu ile;

  • nn=1000, m=700, n=300, k=870
  • nn=800, m=550, n=250, k=350
  • nn=600, m=450, n=150, k=200
  • nn=400, m=180, n=220, k=230
  • nn=300, m=180, n=120, k=150
  • nn=100, m=55, n=45, k=7

parametre değerleri olan Geometrik dağılım eğrileri verilmiştir.

set.seed(6)
l1<-ggdensity(rhyper(nn=1000, m=700, n=300, k=870),main="N=1000,m=700", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l2<-ggdensity(rhyper(nn=800, m=550, n=250, k=350),main="N=800,m=550", col="orange", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l3<-ggdensity(rhyper(nn=600, m=450, n=150, k=200),main="N=600,m=450", col="grey",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l4<-ggdensity(rhyper(nn=400, m=180, n=220, k=230),main="N=400, m=180", col="brown",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l5<-ggdensity(rhyper(nn=300, m=180, n=120, k=150),main="N=300,m=180", col="green",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l6<-ggdensity(rhyper(nn=100, m=55, n=45, k=70),main="N=100,m=55", col="red",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(l1,l2,l3,l4,l5,l6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafikler aşağıda verilmiştir. Örneklem büyüklüğü artıkça Hipergeometrik dağılım Binom dağılıma evrilir.

Örnek: Kütle Olasılık Fonksiyonu (PMF)’nun Hesaplanması

Daha önce bahsedildiği üzere Hipergeometrik dağılımına ait kütle olasılık fonksiyonunun aşağıdaki eşitlik yardımıyla hesaplandığını belirtmiştik..

Bu görselin boş bir alt özelliği var; dosya ismi: image-173.png

Şimdi özgün bir örnek üzerinde kütle olasılık fonsiyonu (pmf) oluşturarak olasılık değerlerini hesaplayalım.

Örnek 1: İçerisinde bordo ve mavi misketlerin olduğu torbada bordo misketlerin sayısı (m) 30, mavi misketlerin sayısı (n) ise 50’dir. Yerine konulmaksızın 20 misket seçiliyor.

  1. Problemin olasılık fonksiyonunu bulunuz.
  2. Problemin merkezi dağılım ve yayılım ölçülerini hesaplayınız.
  3. Torbadan 9 bordo misket çekme olasılığını hesaplayınız.
  4. Torbadan 1’den 9’a kadar (dahil) bordo misket çekme olasılıklarını hesaplayınız.

Bilinenler

  • Anakütledeki eleman sayısı (N) 80’dir.
  • Örneklemdeki başarı sayısı (x) 9’dur.
  • Popülasyondaki başarı sayısı (m) 30’dur.
  • Örneklem hacmi (n) 20’dir.

Çözüm

  1. Bilinenleri Hipergeometrik kütle olasılık fonksiyonunda yerine koyarsak olasılık fonksiyonu aşağıdaki gibi olacaktır. Parantez içindeki eşitlikler tekrarsız kombinasyonları göstermektedir.

2. Problemin merkezi dağılım ve yayılım ölçüleri aşağıda yazılan R kod bloğunda adım adım hesaplanmıştır.

#Bilinenler
N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=9#Örneklemdeki başarı sayısı (x) 9'dur.
m=30#Popülasyondaki başarı sayısı (m) 30'dur.
n=20#Örneklem hacmi (n) 20'dir.

options(scipen=999)
p=m/N#başarı olasılığı
q=(N-m)/N#başarısızlık olasılığı. Alternatif hesaplama: 1-p=q

ortalama=1/p
varyans= n*p*q*(N-n) / (N-1)
ssapma= sqrt(varyans)
carpiklik= (N-2*m)*(N-1)^1/2*(N-2*n) / ((n*m*(N-m)*(N-n))^1/2*(N-2))
basiklik= (N^2*(N-1) / n*(N-2)*(N-3)*(N-n))*((N*(N+1)-6*N*(N-n))/m*(N-m) + 3*n*(N-n)*(N+6) /N^2-6)

#merkezi dağılım ve yayılım ölçüleri tablosu
formattable(cbind(ortalama, ssapma, varyans,carpiklik, basiklik) %>% as_tibble() %>% mutate_if(is.numeric, round,6))

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen merkezi dağılım ve yayılım ölçüleri tablosu aşağıda verilmiştir.

3. Torbadan 9 tane bordo misket çekme olasılığı hesaplanmış ve aşağıda verilmiştir. Buna göre torbadan 9 tane bordo misket çekme olasılığı yaklaşık 0,15117’dir.

Yukarıda yapılan işlem aşağıda yazılan R kod bloğunda da adım adım hesaplanmıştır. R’da tekrarsız kombinasyonların hesaplanmasından choose() fonksiyonu kullanılmaktadır. R kod bloğunun çalıştırılmasıyla elde edilen sonuç yukarıda elde edilen sonuç ile aynı olup, torbadan 9 tane bordo misket çekme olasılığı 0.1511677’dir.

#Bilinenler
N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=9#Örneklemdeki başarı sayısı (x) 9'dur.
m=30#Popülasyondaki başarı sayısı (m) 30'dur.
n=20#Örneklem hacmi (n) 20'dir.

#torbadan 9 tane bordo misket çekme olasılığı
olasilik<-choose(m,x)*choose(N-m,n-x)/choose(N,n)
olasilik#sonuç:0.1511677

Yukarıdaki aynı işlemi R’da dhyper(x, m, n, k) fonksiyonu da kullanarak yapabilir ve bu sayede yukarıdaki işlemi de kontrol etmiş oluruz.

Bilinenler
N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=9#Örneklemdeki başarı sayısı (x) 9'dur.
m=30#Popülasyondaki başarı sayısı (m) 30'dur.
n=20#Örneklem hacmi (n) 20'dir.
dhyper(x,m,N-m, n)#yani dhyper(9,30,50, 20)
#sonuç:0.1511677

Şimdide aynı işlemi Microsoft Office Excel ortamında da yaparak R bilmeyenlere de kolaylık sağlayalım. İlk olarak istenilen olasılık değerini hesaplamaya esas parametre değerlerini aşağıdaki olumsallık tablosunda verelim.

Şimdi ise torbadan 9 tane bordo misket çekme olasılığını aşağıdaki excel tablosunda verelim. Elde edilen sonuç yukarıda elde edilen sonuçlarla ile aynı olup, torbadan 9 tane bordo misket çekme olasılığı yaklaşık 0.15117’dir.

Microsoft Office Excel ortamında yapılan işlemleri kullanılan fonksiyonları da görebilmeniz adına xlsx uzantılı olarak aşağıda paylaşıyorum. Buradan bu dökümanı indirebilirsiniz.

4. Torbadan 1’den 9’a kadar (dahil) bordo misket çekme olasılıkları aşağıda yazılan R kod bloğunda hesaplanmıştır. Burada olasılıkları hesaplamada sizlere iki alternatif fonksiyon sundum. Dilediğinizi çalıştırarak aynı sonuçlara ulaşabilirsiniz.

N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=1:9#Örneklemdeki başarı sayısı (x) 1'den 9'a kadar (dahil)
m=30#Popülasyondaki başarı sayısı (m) 30'dur.
n=20#Örneklem hacmi (n) 20'dir.

fonksiyon<-dhyper(x,m,N-m, n) %>% as_tibble() %>% rename(Olasilik=value) %>% mutate_if(is.numeric, round,6) %>% add_column("Sıra"=1:9, .before="Olasilik") %>% formattable()
fonksiyon
#yada
olasilik<-choose(m,x)*choose(N-m,n-x)/choose(N,n)
olasilik<-olasilik  %>% as_tibble() %>% rename(Olasilik=value) %>% mutate_if(is.numeric, round,6) %>% add_column("Sıra"=1:9, .before="Olasilik") %>% formattable()
olasilik

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen torbadan 1’den 9’a kadar (dahil) bordo misket çekme olasılıkları sırasıyla aşağıdaki tabloda verilmiştir.

Örnek 2: 10 Numara şans oyununda haznede 80 top bulunmaktadır. İçerisinden iadesiz seçilen 22 toptan sırasıyla hiç bilmeyene (0 bilen), 6, 7, 8, 9 ve 10 bilene ikramiye verilmektedir.

İstenenler

  1. 10 Numara şans oyunu olasılık fonksiyonunu bulunuz.
  2. 10 Numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıklarını sırasıyla hesaplayınız.

Bilinenler

  • N= 80 (Anakütledeki eleman sayısı)
  • x=0 ve 6’dan 10’a kadar (dahil) (Örneklemdeki başarı sayısı)
  • m=10 (Popülasyondaki başarı sayısı)
  • n= 22 (Örneklem hacmi)

Çözüm

  1. Bilinenleri Hipergeometrik kütle olasılık fonksiyonunda yerine koyarsak 10 Numara şans oyunu olasılık fonksiyonu aşağıdaki gibi olacaktır. Parantez içindeki eşitlikler tekrarsız kombinasyonları göstermektedir.

2. 10 numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıkları aşağıda yazılan R kod bloğunda hesaplanmıştır.

#bilinenler
N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=c(0, 6:10)#Örneklemdeki başarı sayısı (x) 0 ve 6'dan 10'a kadar (dahil). Burada kazanma olasılıklarının vektör içerisinde tanımlanmasının nedeni aşağıda for döngüsü işlevi görmesinin sağlanarak birden fazla olasılık fonksiyonu yazılmamak istenmemesidir. Böylece işlem süresi kısaltılmış ve işlem yükü de azaltılmıştır.
m=10#Popülasyondaki başarı sayısı (m) 10'dur.
n=22#Örneklem hacmi (n) 22'dir.

#Tablo oluşturma
tablo<-tibble(Kategori=c("Sıfır", "Altı", "Yedi", "Sekiz", "Dokuz", "On"),Kazanma_Olasılığı=as.numeric(choose(m,x)*choose(N-m,n-x)/choose(N,n))) %>% mutate(Tersine_Olasılık=1/Kazanma_Olasılığı) %>% mutate_if(is.numeric, round, 10) 
tablo
#formatlanmış tablo
formattable(tablo,
            align =rep("r",3), 
            list(formatter(
              "span", style = ~ style(color = "grey",font.weight = "bold")),
`Kazanma_Olasılığı` = color_bar("#FA614B"),
`Tersine_Olasılık` = color_bar("#B0C4DE")
))

Yukarıdaki R kod bloğunun çalıştırılmasından sonra 10 Numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıkları aşağıdaki tabloda verilmiştir. Aynı zamanda daha kolay anlayabilmeniz için hesaplanan olasılıkların çarpmaya göre tersi (1/Olasılık) alınmış ve tabloya yansıtılmıştır. Ortaya konulan bulgulara göre 10 numara şans oyununda

  • Hiç bilmediğinizde kazanma olasılığınız yaklaşık 31,55’te 1’dir.
  • 6 bildiğinizde kazanma olasılığınız yaklaşık 52,01’de 1’dir.
  • 7 bildiğinizde kazanma olasılığınız yaklaşık 312,88’de 1’dir.
  • 8 bildiğinizde kazanma olasılığınız yaklaşık 3.114,94’te 1’dir.
  • 9 bildiğinizde kazanma olasılığınız yaklaşık 57.070,07’de 1’dir.
  • 10 bildiğinizde kazanma olasılığınız yaklaşık 2.546.203,19’da 1’dir.

Yukarıda R’da hesapladığım 10 Numara kazanma olasılıklarını aynı zamanda aşağıda R’da yazdığım for döngüsü kullanarak da yapabiliriz.

N=80#Anakütledeki eleman sayısı (N) 80'dir.
x=c(0, 6:10)#Örneklemdeki başarı sayısı (x) 0 ve 6'dan 10'a kadar (dahil)
m=10#Popülasyondaki başarı sayısı (m) 10'dur.
n=22#Örneklem hacmi (n) 22'dir.

for (i in seq_along(x)) {
  x[i] <-choose(m,x[i])*choose(N-m,n-x[i])/choose(N,n)
  x[i]<-1/x[i]
}
print(paste(c(0, 6:10),"kazanma olasılığı:", round(x,5),"'de 1'dir."))

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen 10 Numara kazanma olasılıkları kazanma kategorilerine göre aşağıda verilmiştir.

[1] "0 kazanma olasılığı: 31.5544 'de 1'dir."       
[2] "6 kazanma olasılığı: 52.01191 'de 1'dir."      
[3] "7 kazanma olasılığı: 312.88416 'de 1'dir."     
[4] "8 kazanma olasılığı: 3114.93568 'de 1'dir."    
[5] "9 kazanma olasılığı: 57070.07157 'de 1'dir."   
[6] "10 kazanma olasılığı: 2546203.19328 'de 1'dir."

Yukarıda hesaplanan 10 numara şans oyununda sırasıyla hiç bilmeme (0 bilme), 6, 7, 8, 9 ve 10 olasılıkları R bilmeyenler için ayrıca Microsoft Office Excel ortamında da hesaplanmıştır. Excel ortamında ilk olarak bilinenler tablosunu aşağıda verelim.

Yukarıdaki bilinenler tablosuna göre excel ortamında hesaplanan 10 Numara şans oyunu kazanma olasılıkları kategorilere göre aşağıda verilmiştir.

Şimdi yapılan bu işlemleri excel ortamında kullanılan fonksiyonları da görebilmeniz adına aşağıda xlsx formatında paylaşıyorum.

Hipergeometrik Kümülatif Dağılım Fonksiyonu (CDF)

Hipergeometrik olasılık dağılımda kümülatif dağılım fonksiyonu aşağıdaki eşitlik yardımıyla hesaplanmaktadır.

Örnek: Kümülatif Dağılım Fonksiyonu (CDF)’nunun Hesaplanması

Aşağıda yazılan R kod bloğunda ise phyper(q, m, n, k) fonksiyonu kullanılarak kümülatif dağılım fonksiyonu (cdf) hesaplanmıştır. Yukarıdaki örneğimizden hareketle kümülatif dağılım olasılıklarını hesaplayalım.

Örnek: İçerisinde bordo ve mavi misketlerin olduğu torbada bordo misketlerin sayısı (m) 30, mavi misketlerin sayısı (n) ise 50’dir. Yerine konulmaksızın 40 misket seçiliyor. Torbadan 30 bordo misket çekme olasılıklarını kümülatif olarak hesaplayarak grafiğiniz çiziniz.

  • k=40:torbadan çekilen misketlerin sayısı (eşitlikte n)
  • q=1-30:torbadan çekilen bordo misketlerin sayısı (eşitlikte x)
  • m=30:bordo misketlerin sayısı
  • n=50:mavi misketlerin sayısı

göstermektedir.

#bilinenler
k=40#torbadan çekilen misketlerin sayısı.
q=1:30#torbadan çekilen bordo misketlerin sayısı
m=30#bordo misketlerin sayısı
n=50#mavi misketlerin sayısı

#kümülatif dağılım fonksiyonu (cdf)
kdf<-phyper(q, m, n, k) 

#kümülatif dağılım fonksiyonu (cdf) grafiği
sonuc<-kdf %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>%       mutate(Orneklem_Uzayı=1:NROW(kdf), Olasilik=as.numeric(value)) 
grafik<-sonuc[,-1] %>% ggplot(aes(x=Orneklem_Uzayı,y=Olasilik)) + geom_line(color="brown", size=1.5) +
       guides(fill=FALSE) +
       scale_x_continuous(breaks=seq(1,30,2))+
       ggtitle("Hipergeometrik Kümülatif Dağılım Fonksiyonu (CDF)") +
       ylab("Olasılık")+
       xlab("Başarılı Denemelerin Sayısı")+
       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 veya yaklaşık 1’dir ve böyle olduğu da aşağıda görülmektedir.

 [1] 0.00000000001051915 0.00000000050173131 0.00000001390300665
 [4] 0.00000025297218642 0.00000323655554991 0.00003043067474839
 [7] 0.00021690463496653 0.00119977780028297 0.00524622638731670
[10] 0.01841741653811158 0.05262830004666962 0.12403056070278859
[13] 0.24438754856460831 0.40880379091155827 0.59119620908844150
[16] 0.75561245143539157 0.87596943929721127 0.94737169995333037
[19] 0.98158258346188842 0.99475377361268325 0.99880022219971698
[22] 0.99978309536503351 0.99996956932525161 0.99999676344445010
[25] 0.99999974702781358 0.99999998609699337 0.99999999949826868
[28] 0.99999999998948086 0.99999999999990452 1.00000000000000000

Ş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.

Yapılan çalışma ile özellikle veri bilimi (data science) ile ilgilenen akademi ve saha çalışanlarına bir katkı sunulması amaçlanmıştır.

Daha önce kesikli olasılıklı dağılım türleri üzerine örnek uygulama yaptığım çalışmaların linklerini de aşağıda paylaşıyorum ilgilenenler için.

Bernoulli Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Kesikli Uniform Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Poisson Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Negatif Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Geometrik Olasılık Dağılımı Üzerine Bir Vaka Çalışması

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

Öne çıkan

Geometrik Olasılık Dağılımı Üzerine Bir Vaka Çalışması: A Case Study on Geometric Probability Distribution

Birçok analiz yönteminin temelini olasılık dağılımları oluşturmaktadır. İşin esasında olasılık 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 (discrete) ve sürekli (continuous) dağılımlar başlıklar halinde verildikten sonra kesikli dağılım türlerinden biri olan Geometrik dağılımı özgün uygulama örnekleriyle ele alınarak somutlaştırılacaktır. Uygulama örnekleri ağırlıklı olarak 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.

  1. 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.
  2. 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ı, sürekli olasılık fonksiyonunda sürekli örneklem uzayı ise aralıkları baz almaktadır.

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)

  1. Bernoulli Dağılımı
  2. Kesikli Uniform Dağılımı
  3. Binom Dağılımı
  4. Poisson Dağılımı
  5. Negatif Binom Dağılımı
  6. Geometrik Dağılım
  7. Hipergeometrik Dağılımı

B) Sürekli Dağılımlar (Continuous Distributions)

  1. Normal Dağılım
  2. Tekbiçimli Uniform Dağılım
  3. Cauchy Dağılımı
  4. t Dağılımı
  5. F Dağılımı
  6. Ki-kare Dağılımı
  7. Üstel Dağılım
  8. Weibull Dağılımı
  9. Lognormal Dağılımı
  10. Birnbaum-Saunders
  11. Gamma Dağılımı
  12. Çift Üstel Dağılımı
  13. Güç Normal Dağılımı
  14. Güç Lognormal Dağılımı
  15. Tukey-Lambda Dağılımı
  16. Uç Değer Tip I Dağılımı
  17. Beta Dağılımı

Geometrik Dağılım

Negatif binom dağılımın özel bir türü olan Geometrik dağılımında deney sayısı değişken, fakat istenen sonuç (başarı sayısı) 1’dir. Örneğin bir zar atma denemesinde, 6 tarafı ilk defa gelene kadar yapılan denemelerin sayısı bir geometrik değişkendir. Benzer bir şekilde, Şans Topu oyununda alt bölüm (+)’de ilk defa bir sayının doğru bilinmesi de geometrik değişken olarak değerlendirilebilir. Bernoulli deneyinde geçerli olan tüm varsayımlar geometrik dağılımda da geçerli olup, istenen sonucun ilk defa elde edilecek olması Geometrik dağılımını Bernoulli dağılımından farklı kılmaktadır. Aşağıda eşitliği verilen negatif binom dağılımı olasılık kütle fonksiyonunda k=1 oluğunda negatif binom dağılımı geometrik dağılımına evrilir. Genel olarak Binom dağılımında deney sayısı sabit ve başarılı denemelerin sayısı ise değişkenlik göstermektedir. Diğer taraftan Geometrik dağılımda deney sayısı değişken, başarılı denemelerin sayısı ise sabittir.

Geometrik dağılım hafızasızlık özelliğine sahip olup, bu özellik ilk başarı elde edilene kadar kaç deneme yapılırsa yapılsın, bundan sonra ilk başarıyı elde etmek için yapılması gereken deneme sayısı, daha önceki deneme sayılarından bağımsız olduğunu göstermektedir.

Geometrik dağılımında kullanılan merkezi dağılım ve yayılım ölçüleri Tablo 1’de verilmiştir. Bu dağılımda örneklem uzayı doğal sayılar kümesi (N)’nden oluşmaktadır. Eşitliklerde bir deneyde istenen sonucun ortaya çıkma olasılığı, diğer bir ifadeyle başarı olasılığı p, istenen sonucun ortaya çıkmama olasılığı ise q=1-p‘dir.

Tablo 1: Geometrik Dağılım Merkezi Dağılım ve Yayılım Ölçüleri

Geometrik Olasılık Kütle Fonksiyonu (PMF)

Tablo 1’deki parametreler kullanılarak oluşturulan Geometrik olasılık kütle fonksiyonu (PMF) aşağıdaki eşitlikte verilmiştir.

Eşitlikte x deney sayısını, p başarı olasılığını göstermektedir.

Ö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","vcd"), require, character.only = TRUE)
gereklikütüphaneler

Örnek: Ortalama, Varyans, Basıklık ve Çarpıklık Değerlerinin Hesaplanması

İlk olarak Poisson dağılımında ortalama, varyans, basıklık ve çarpıklık değerlerine bakalım. R’da rgeom(n, prob) fonksiyonunu kullanarak Geometrik dağılımına uygun popülasyon büyüklüğü (n) 1000 ve her bir denemedeki başarı olasılığı (p) 0,6 olan sentetik gözlem değerleri ürettikten sonra aşağıda yazılan R kod bloğunda Geometrik dağılımına ait ortalama, standart sapma, varyans, basıklık ve çarpıklık değerlerini hesaplayalım. Ardından gözlemlerin histogramını çizelim.

#Geometrik dağılıma uygun popülasyon büyüklüğü (n) 1000 ve her bir denemedeki başarı olasılığı 0,6 olan sentetik gözlemler üretme 
set.seed(61)#örneklem uzayının elemanlarını sabitlemek için
n<-1000#popülasyon büyüklüğü
p<-0.5
q<-1-p
geoorneklem<-rgeom(n=n, prob=p)#örneklem uzayı

ortalama=1/p
ssapma= sqrt(q)/p
varyans= q/p^2
carpiklik= (2-p)/sqrt(q)
basiklik= (p^2-9*p+9)/q
formattable(cbind(ortalama, ssapma, varyans,carpiklik, basiklik) %>% as_tibble() %>% mutate_if(is.numeric, round,3))

#Veri setinin histogramı
ggplot(as_tibble(geoorneklem), aes(x=value))+geom_bar(bins=100,binwidth=.5,fill="red")+
xlab("Örneklem Uzayı")+
scale_x_continuous(breaks=seq(0, max(unique(geoorneklem)), 1))+
ylab("Frekans")+
ggtitle("Geometrik Dağılıma Uygun Veri Setinin Histogramı")+
theme(plot.title = element_text(hjust = 0.5))
theme_replace()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Geometrik dağılımına ait elde edilen ortalama, varyans, çarpıklık ve basıklık değerleri aşağıdaki tabloda verilmiştir.

Yukarıdaki R kod bloğunda ilgili alan çalıştırıldığında elde edilen veri setine ait histogram aşağıda verilmiştir.

Şimdi de aynı popülasyon büyüklüğüne sahip ancak farklı başarı olasılık değerleri olan Geometrik dağılımlara grafik üzerinde bakalım. Aşağıda yazılan R kod bloğu ile popülasyon büyüklüğü (N) 1000, her bir denemedeki başarı olasılık (p) değerleri ise sırasıyla 0,1, 0,3, 0,5, 0,7, 0,8 ve 0,9 olan Geometrik dağılım eğrileri verilmiştir.

set.seed(6)
orneklem<-1000
l1<-ggdensity(rgeom(n, prob=0.1),main="p=0.1", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l2<-ggdensity(rgeom(n, prob=0.3),main="p=0.3", col="orange", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l3<-ggdensity(rgeom(n, prob=0.5),main="p=0.5", col="grey",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l4<-ggdensity(rgeom(n, prob=0.7),main="p=0.7", col="brown",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l5<-ggdensity(rgeom(n, prob=0.8),main="p=0.8", col="green",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l6<-ggdensity(rgeom(n, prob=0.9),main="p=0.9", col="red",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(l1,l2,l3,l4,l5,l6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafikler aşağıda verilmiştir.

Şimdi de farklı popülasyon büyüklüğü ve başarı olasılıklarına göre karşılaştırmalı olarak Geometrik dağılıma grafik üzerinde bakalım. Aşağıda yazılan R kod bloğu ile popülasyon büyüklükleri (N) 100, 300, 500, 700, 900 ve 1100 olan ve her bir denemedeki başarı olasılık (p) değerleri ise sırasıyla 0,1, 0,3, 0,5, 0,7, 0,8 ve 0,9 olan Geometrik dağılım eğrileri verilmiştir. Burada amaç, farklı popülasyon büyüklükleri ve olasılık değerlerine göre Geometrik dağılımının izlediği seyrin göstermektir.

set.seed(6)
orneklem<-1000
l1<-ggdensity(rgeom(n=100, prob=0.1),main="N=100, p=0.1", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l2<-ggdensity(rgeom(n=300, prob=0.3),main="N=300,p=0.3", col="orange", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l3<-ggdensity(rgeom(n=500, prob=0.5),main="N=500,p=0.5", col="grey",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l4<-ggdensity(rgeom(n=700, prob=0.7),main="N=700,p=0.7", col="brown",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l5<-ggdensity(rgeom(n=900, prob=0.8),main="N=900,p=0.8", col="green",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l6<-ggdensity(rgeom(n=1100, prob=0.9),main="N=1100,p=0.9", col="red",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(l1,l2,l3,l4,l5,l6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafikler aşağıda verilmiştir.

Diğer durumda olasılık değerleri (p) 0,1’de sabitleyerek farklı popülasyon büyüklüklerine göre de Geometrik dağılımdaki farklılaşmaları görebiliriz. Bu amaçla yazdığım R kod bloğu aşağıda verilmiştir.

set.seed(6)
l1<-ggdensity(rgeom(n=100, prob=0.1),main="N=100, p=0.1", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l2<-ggdensity(rgeom(n=300, prob=0.1),main="N=300,p=0.1", col="orange", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l3<-ggdensity(rgeom(n=500, prob=0.1),main="N=500,p=0.1", col="grey",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l4<-ggdensity(rgeom(n=700, prob=0.1),main="N=700,p=0.1", col="brown",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l5<-ggdensity(rgeom(n=900, prob=0.1),main="N=900,p=0.1", col="green",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l6<-ggdensity(rgeom(n=1100, prob=0.1),main="N=1100,p=0.1", col="red",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(l1,l2,l3,l4,l5,l6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen Geometrik dağılım grafikleri aşağıda verilmiştir. Elde edilen bulgular, başarı olasılığı sabit tutulduğunda Geometrik dağılımın Negatif Binom dağılımına evrildiği ve sağa çarpık (right skewness) bir görüntü sergilediği görülmektedir.

Örnek: Kütle Olasılık Fonksiyonu (PMF)’nun Hesaplanması

Daha önce bahsedildiği üzere Geometrik dağılımına ait kütle olasılık fonksiyonunun aşağıdaki eşitlik yardımıyla hesaplandığını belirtmiştik.

Şimdi özgün bir örnek üzerinde kütle olasılık fonsiyonu (pmf) oluşturarak olasılık değerlerini hesaplayalım.

Bir kart oyununda kartlar arasından 7 numaralı kart gelinceye kadar X kez çekilişe devam edilecektir.

Bilinenler

  • Kart oyunu üzerinde 1’den 14’e kadar numaralandırılmış kartlardan oluşmaktadır.

İstenenler

  1. X’in olasılık fonksiyonunu hesaplayınız.
  2. X’in merkezi dağılım ve yayılım ölçülerini hesaplayınız.
  3. 7 numaralı kartın ilk defa 1. çekilişte gelme olasılığını hesaplayınız. Bu işlemi R’da fonksiyon oluşturarak da hesaplayınız.
  4. 7 numaralı kartın ilk defa 6. çekilişte gelme olasılığını hesaplayınız.Bu işlemi R’da fonksiyon oluşturarak da hesaplayınız.
  5. 7 numaralı kartın ilk defa 1’den 14’e kadar (dahil) olan çekilişlerde gelme olasılıklarını sırasıyla hesaplayınız.
  6. Çekilişle seçilen 7 numaralı kartın ilk 14 çekilişte olma olasılığını hesaplayınız.
  7. Çekilişle seçilen 7 numaralı kartın ilk 5 çekilişten önce gelme olasılığını hesaplayınız.
  8. Çekilişle seçilen 7 numaralı kartın ilk kez en az 6 çekilişte gelme olasılığını hesaplayınız.

Çözümler

  1. X’in olasılık fonksiyonunu hesaplanmış ve aşağıda verilmiştir.

2. X’in merkezi dağılım ve yayılım ölçüleri aşağıda yazılan R kod bloğunda adım adım hesaplanmıştır.

n<-14#popülasyon büyüklüğü
p<-1/n
q<-1-p
ortalama=1/p #(beklenen değer)
ssapma= sqrt(q)/p
varyans= q/p^2
carpiklik= (2-p)/sqrt(q)
basiklik= (p^2-9*p+9)/q

#merkezi dağılım ve yayılım ölçüleri tablosu
formattable(cbind(ortalama, ssapma, varyans,carpiklik, basiklik) %>% as_tibble() %>% mutate_if(is.numeric, round,3))

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen merkezi dağılım ve yayılım ölçüleri tablosu aşağıda verilmiştir. Aynı sonuçları R’da fonksiyon oluşturarak da yapabiliriz. Fonksiyon oluşturmak parametre değerleri farklı olduğunda hesaplama hızı ve kolaylığı sağlamaktadır.

Yukarıdaki aynı sonuçları aşağıda R’da fonksiyon oluşturarak da yapabiliriz. Fonksiyon oluşturmak parametre değerleri farklı olduğunda hesaplama hızı ve kolaylığı sağlamaktadır. Oluşturulan istatistik fonksiyonu ile merkezi yayılım ve dağılım ölçülerini hesaplayabilir ve isteğinize göre revize edebilirsiniz. Aşağıdaki fonksiyonda yapmanız gereken şey

#fonksiyon oluşturma
istatistik <- function(n) {
  ort<- 1/(1/n)#ortalama
  sapma<-sqrt(1-1/n)/(1/n)#standart sapma
  varyans<-(1-1/n)/((1/n)^2)#varyans
  carpiklik<-(2-1/n)/sqrt(1-1/n)#çarpıklık
  basiklik<- ((1/n)^2-9*(1/n)+9)/(1-1/n)#basıklık
  tablo<-tibble(ort,sapma,varyans,carpiklik,basiklik) %>% mutate_if(is.numeric, round,5) %>% formattable()
  return(tablo)
}
#oluşturulan fonksiyonu girilen parametre değerleriyle çağırma
istatistik(n=14)#n=14 yerine dilediğiniz parametre değeri girerek Geometrik merkezi yayılım ve dağılım ölçülerini hesaplayabilirsiniz.

Yukarıdaki R kod bloğunda oluşturduğum istatistik fonksiyonunu çalıştırdığımızda elde edilen sonuçlar aşağıdaki tabloda verilmiştir.Görüleceği üzere elde edilen sonuçlar yukarıdaki sonuçlarla aynıdır.

3. 7 numaralı kartın ilk defa 1. çekilişte gelme olasılığı aşağıda yazılan R kod bloğunda hesaplanmıştır.

n<-14
p<-1/n
q<-1-p
x<-1
p*q^(x-1)#sonuç: 0.07142857

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen 7 numaralı kartın ilk defa 1. çekilişte gelme olasılığı yaklaşık 0.07143’tür. Bu işlemi R’da fonksiyon oluşturarak da yapabiliriz. Böylece her defasında aynı işlemi yapmak zorunda kalmayız. Aşağıda yazdığım R kod bloğu ile aynı işlem fonksiyon oluşturarak yapılmıştır. R kod bloğunun çalıştırılması ile elde edilen sonuç yukarıda hesaplanan sonuç ile aynıdır.

#Fonksiyon oluşturma
olasılık_kitle_fonksiyonu <- function(n, x) {
  olasilik<- (1/n)*(1-1/n)^(x-1)#olasılık kitle fonksiyonu formülü
  return(olasilik)
}
#Fonksiyonu istenen parametre değerleri ile çağırma
olasılık_kitle_fonksiyonu(n=14, x=1)
#sonuç: 0.07142857

4. 7 numaralı kartın ilk defa 6. çekilişte gelme olasılığı aşağıda yazılan R kod bloğunda hesaplanmıştır.

n<-14#popülasyon büyüklüğü
p<-1/n
q<-1-p
x<-6
p*q^(x-1)#sonuc:0.04931154

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen 7 numaralı kartın ilk defa 6. çekilişte gelme olasılığı yaklaşık 0.04931’dir. 3. soru çözümünde oluşturduğum fonksiyon ile de bu soruyu çözebiliriz. Aşağıda yapılan tek şey oluşturduğum fonksiyondaki parametre değerlerini değiştirmektir.

#Fonksiyon oluşturma
olasılık_kitle_fonksiyonu <- function(n, x) {
  olasilik<- (1/n)*(1-1/n)^(x-1)#olasılık kitle fonksiyonu formülü
  return(olasilik)
}
#Fonksiyonu istenen parametre değerleri ile çağırma
olasılık_kitle_fonksiyonu(n=14, x=6)
#sonuç: 0.04931154

5. 7 numaralı kartın ilk defa 1’den 14’e kadar (dahil) olan çekilişlerde gelme olasılıkları sırasıyla aşağıda yazılan R kod bloğunda hesaplanmıştır. Hesaplamada özellikle anlaşılması kolay bir for döngüsü yazdım. Böylece hem zamandan kazanılmasını hem de problem özelinde nasıl kullanıldığını göstermek istedim.

n<-14#popülasyon büyüklüğü
p<-1/n
q<-1-p
x<-1:14
for (i in x) {
  x[i] <-p*q^(x[i]-1)
}
print(paste("7 numaralı kartın ilk defa",1:(length(x)),". çekilişte gelme olasılığı", round(x,5)))

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen 7 numaralı kartın ilk defa 1’den 14’e kadar (dahil) olan çekilişlerde gelme olasılıkları sırasıyla aşağıda verilmiştir.

6. Çekilişle seçilen 7 numaralı kartın ilk 14 çekilişte olma olasılığı aşağıda yazılan R kod bloğunda hesaplanmıştır.

n<-14#popülasyon büyüklüğü
p<-1/n
q<-1-p
x<-20
1-q^(x)#sonuc:0.7728534

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen çekilişle seçilen 7 numaralı kartın ilk 14 çekilişte olma olasılığı yaklaşık 0.77285’tir.

7. Çekilişle seçilen 7 numaralı kartın ilk 5 çekilişten önce gelme olasılığı aşağıda yazılan R kod bloğunda hesaplanmıştır. Burada da hem zamandan kazanılması hem de problem özelinde nasıl kullanıldığını göstermek açısından for döngüsünü kullandım.

n<-14#popülasyon büyüklüğü
p<-1/n
q<-1-p
x<-1:4
for (i in x) {
  x[i] <-p*q^(x[i]-1)
}
print(paste("Çekilişle seçilen 7 numaralı kartın ilk 5 çekilişten önce gelme olasılığı:", sum(round(x,5))))

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen çekilişle seçilen 7 numaralı kartın ilk 5 çekilişten önce gelme olasılığı yaklaşık 0.25654 olup, sonuç aşağıda verilmiştir.

[1] "Çekilişle seçilen 7 numaralı kartın ilk 5 çekilişten önce gelme olasılığı: 0.25654"

8. Çekilişle seçilen 7 numaralı kartın ilk kez en az 6 çekilişte gelme olasılığı aşağıda yazılan R kod bloğunda hesaplanmıştır. Burada da hem zamandan kazanılması hem de problem özelinde nasıl kullanıldığını göstermek açısından for döngüsünü kullandım.

n<-14#popülasyon büyüklüğü
p<-1/n
q<-1-p
x<-1:5
for (i in x) {
  x[i] <-p*q^(x[i]-1)
}
print(paste("Çekilişle seçilen 7 numaralı kartın ilk kez en az 6 çekilişte gelme olasılığı:", 1-sum(round(x,5))))

Yukarıdaki R kod bloğu çalıştırılmasından sonra elde edilen çekilişle seçilen 7 numaralı kartın ilk kez en az 6 çekilişte gelme olasılığı yaklaşık 0.69036 olup, sonuç aşağıda verilmiştir.

[1] "Çekilişle seçilen 7 numaralı kartın ilk kez en az 6 çekilişte gelme olasılığı: 0.69036"

Geometrik Kümülatif Dağılım Fonksiyonu (CDF)

Geometrik olasılık dağılımda kümülatif dağılım fonksiyonu aşağıdaki eşitlik yardımıyla hesaplanmaktadır.

Örnek: Kümülatif Dağılım Fonksiyonu (CDF)’nunun Hesaplanması

Aşağıda yazılan R kod bloğunda ise pgeom(q=1:50, prob=0.3) fonksiyonu kullanılarak kümülatif dağılım fonksiyonu (cdf) hesaplanmıştır. Fonksiyon içerisinde yer alan q ilk başarılı denemeden önceki başarısız denemelerin sayısını, prob ise her bir denemedeki başarı olasılığını göstermektedir.

#kümülatif dağılım fonksiyonu (cdf)
p<-0.3
kdf<-pgeom(q=1:50, prob=0.3)
kdf
#kümülatif dağılım fonksiyonu (cdf) grafiği
kdf %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>%       mutate(Orneklem_Uzayı=1:NROW(kdf), Olasilik=as.numeric(value)) 
grafik<-sonuc[,-1] %>% ggplot(aes(x=Orneklem_Uzayı,y=Olasilik)) + geom_line(color="red", size=1.5) +
       guides(fill=FALSE) +
       scale_x_continuous(breaks=seq(1,51,5))+
       ggtitle(paste("Geometrik Kümülatif Dağılım Fonksiyonu (CDF)","(","p=",p,",",  "q=",NROW(kdf), ")")) +
       ylab("Olasılık")+
       xlab("Başarısız Denemelerin Sayısı")+
       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 veya yaklaşık 1’dir ve böyle olduğu da aşağıda görülmektedir.

  [1] 0.5100000 0.6570000 0.7599000 0.8319300 0.8823510 0.9176457 0.9423520
 [8] 0.9596464 0.9717525 0.9802267 0.9861587 0.9903111 0.9932178 0.9952524
[15] 0.9966767 0.9976737 0.9983716 0.9988601 0.9992021 0.9994415 0.9996090
[22] 0.9997263 0.9998084 0.9998659 0.9999061 0.9999343 0.9999540 0.9999678
[29] 0.9999775 0.9999842 0.9999890 0.9999923 0.9999946 0.9999962 0.9999973
[36] 0.9999981 0.9999987 0.9999991 0.9999994 0.9999996 0.9999997 0.9999998
[43] 0.9999998 0.9999999 0.9999999 0.9999999 1.0000000 1.0000000 1.0000000
[50] 1.0000000

Ş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.

Yapılan bu özgün çalışma ile özellikle veri bilimi (data science) ile ilgilenen akademi ve saha çalışanlarına bir katkı sunulması amaçlanmıştır.

Daha önce kesikli olasılıklı dağılım türleri üzerine örnek uygulama yaptığım çalışmaların linklerini de aşağıda paylaşıyorum ilgilenenler için.

Bernoulli Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Kesikli Uniform Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Poisson Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Negatif Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması

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

Öne çıkan

Negatif Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması: A Case Study on Negative Binomial Probability Distribution

Bir çok analiz yönteminin temelini olasılık dağılımları oluşturmaktadır. İşin esasında olasılık 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 (discrete) ve sürekli (continuous) dağılımlar başlıklar halinde verildikten sonra kesikli dağılım türlerinden biri olan Negatif binom dağılımı uygulama örnekleriyle ele alınarak somutlaştırılacaktır. Uygulama örnekleri ağırlıklı olarak 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.

  1. 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.
  2. 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ı, sürekli olasılık fonksiyonunda sürekli örneklem uzayı ise aralıkları baz almaktadır.

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)

  1. Bernoulli Dağılımı
  2. Kesikli Uniform Dağılımı
  3. Binom Dağılımı
  4. Poisson Dağılımı
  5. Negatif Binom Dağılımı
  6. Geometrik Dağılım
  7. Hipergeometrik Dağılımı

B) Sürekli Dağılımlar (Continuous Distributions)

  1. Normal Dağılım
  2. Tekbiçimli Uniform Dağılım
  3. Cauchy Dağılımı
  4. t Dağılımı
  5. F Dağılımı
  6. Ki-kare Dağılımı
  7. Üstel Dağılım
  8. Weibull Dağılımı
  9. Lognormal Dağılımı
  10. Birnbaum-Saunders Dağılımı
  11. Gamma Dağılımı
  12. Çift Üstel Dağılımı
  13. Güç Normal Dağılımı
  14. Güç Lognormal Dağılımı
  15. Tukey-Lambda Dağılımı
  16. Uç Değer Tip I Dağılımı
  17. Beta Dağılımı

Negatif Binom Dağılımı

Negatif binom dağılımı, bir olayda r’inci başarının x denemede gerçekleşme olasılığını hesaplamada kullanılan kesikli olasılık dağılımlarından biridir. Örneğin, hilesiz bir zarın 7 kez atılması durumunda 6. atışında 4. kez 5 gelme olasılığı bu olasılık dağılımına örnek verilebilir. Bernoulli dağılımı için gerekli varsayımlar bu dağılım için de geçerlidir. Bu dağılım Negative binom regresyon analizinin temelini oluşturmakta olup, bağımlı değişkenin Negatif binom dağılım gösterdiği durumlarda kullanılmaktadır. Negatif binom regresyon analizinde bağımlı değişkenin veri tipi nicel pozitif ve aynı zamanda kesiklidir. Yapılan Covid-19 testlerinin sayısı, doğum sayısı, araba sayısı, vaka sayısı, ölüm sayısı gibi veri tipi nicel ve kesikli olan değişkenler kurulacak Negatif Binom regresyon modellerinde bağımlı değişkene örnek verilebilir.

Negatif Binom dağılımında kullanılan merkezi dağılım ve yayılım ölçüleri aşağıda verilmiştir. Ayrıca örneklem uzayı doğal sayılar kümesi (N)’nden oluşmaktadır. Eşitliklerde bir deneyde istenen sonucun ortaya çıkma olasılığı, diğer bir ifadeyle başarı olasılığı p, istenen sonucun ortaya çıkmama olasılığı ise q=1-p‘dir.

Negatif Binom olasılık dağılımında ortalama;

Negatif Binom olasılık dağılımında varyans;

Teorik olarak Poisson regresyon dağılımında varyansın ve ortalamanın birbirine eşit veya yakın olması istense de uygulamada bu durum pek mümkün olmamaktadır. Genelde pratikte karşılaşılan sorunların başında varyansın ortalamanın üstünde olmasıdır. Bu durum veri setindeki ilgili değişken setindeki gözlemlerin aşırı yayılım (overdispersion) gösterdiği anlamına gelmektedir. Uygulamada az da olsa karşılaşılan diğer durumda ilgili değişken setinin eksik yayılım (underdispersion) göstermesidir. Bu durumda ise varyans ortalamanın çok altındadır. Veri setindeki aşırı ve eksik yayılım durumlarını ortaya koymak için uyum iyiliği testleri (goodness of fit) yaparız. Bu testler analize en uygun yöntemin belirlenmesi için yapılmaktadır. Eğer uyum iyiliği testleri veri setinde aşırı yayılımı gösteriyorsa Poisson regresyon yönteminden vazgeçerek Negatif Binom regresyonu seçeriz. Çünkü Poisson regresyon, diğer bir ifadeyle Poisson dağılım varsayımını ihlal etmişizdir. Benzer şekilde Negatif Binom olasılık dağılımı için de uyum iyiliği testi yaparak dağılımın Negatif Binom dağılımı gösterip göstermediğini test edebiliriz.

Negatif Binom Olasılık Kütle Fonksiyonu (PMF)

Tablo 1’deki parametreler kullanılarak oluşturulan Negatif Binom olasılık kitle fonksiyonu (PMF) aşağıdaki eşitlikte verilmiştir.

x = 0, 1, 2, …, n > 0 ve 0 < p ≤ 1.

Ö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","vcd"), require, character.only = TRUE)
gereklikütüphaneler

Örnek 1: Negatif Binom Dağılımının Test Edimesi

İlk olarak Poisson dağılımında ortalama, varyans, basıklık ve çarpıklık değerlerine bakalım. Aşağıda yazılan R kod bloğunda rnbinom(n, size, prob, mu) fonksiyonu kullanılarak Negatif binom dağılımına uygun popülasyon büyüklüğü (n) 1000 ve ortalama (mu) değeri 5 ve başarılı denemelerin sayısı (size) 20 olan sentetik gözlem değerleri üretelim. Ardından gerçekten 1000 gözlemden oluşan veri setinin Negatif Binom dağılımına uyup uymadığını uyum iyiliği testi ile test edelim. Bu durumda hipotez testlerimiz;

  • H0, yani yokluk hipotezimiz veri setinin Negatif Binom dağılımı gösterdiği
  • H1, yani alternatif hipotezimiz ise veri setinin Negatif Binom dağılımı göstermediği

şeklinde olacaktır.

#Poisson dağılımına uygun popülasyon büyüklüğü 1000 ve Lambda değeri 1 olan örneklem üretme
set.seed(61)#örneklem uzayının elemanlarını sabitlemek için
nbdorneklem<-rnbinom(n=1000, mu = 5, size = 20)#örneklem uzayı
#Veri setinin histogramı
ggplot(as_tibble(nbdorneklem), aes(x=value))+geom_bar(bins=100,binwidth=.5, fill="red")+
xlab("Örneklem Uzayı")+
ylab("Frekans")+
ggtitle("Veri Setinin Histogramı")+
theme_replace()
#Negatif Binom dağılımı uyum iyiliği testi (goodness of fit)
library(vcd)
veri<-table(nbdorneklem)#sıklıklarını almak için
uyum <- goodfit(veri, type = "nbinomial", method = "MinChisq")
summary(uyum)
plot(uyum, xlab="Örneklem Uzayı", ylab="Frekans", main="Negatif Binom Dağılım Uyum İyiliği Testi Grafiği")

Yukarıdaki R kod bloğunda ilgili alan çalıştırıldığında elde edilen veri setine ait histogram aşağıda verilmiştir. Aşağıdaki histogramda da görüleceği üzere veri seti Negatif Binom dağılımına uygun bir görünüm ortaya koymaktadır.

Yukarıdaki R kod bloğunda ilgili alan çalıştırıldığında elde edilen uyum iyiliği testi (goodness of fit) sonuçları ise aşağıda verilmiştir. Elde edilen sonuçlar istatistiksel olarak anlamlı olmadığı için veri setimiz Negatif Binom dağılımına uygundur (p>0.05). Bu durumda yukarıda belirttiğimiz H0 hipotezimi kabul ediyoruz.

	 Goodness-of-fit test for nbinomial distribution
              X^2 df  P(> X^2)
Pearson 0.1449423  1 0.7034163

Şimdi de Negatif Binom dağılımına uygun olarak aynı popülasyon büyüklüğü (N) sahip ancak farklı size (başarılı denemelerin sayısı) ve ortalama (mu) değerleriyle karşılaştırmalı olarak negatif binom dağılıma grafik üzerinde bakalım. Aşağıda yazılan R kod bloğu ile popülasyon büyüklüğü (N) 1000 olan

  1. mu = 4, size = 10
  2. mu = 8, size = 20
  3. mu = 12, size = 30
  4. mu = 16, size = 40
  5. mu = 20, size = 50
  6. mu = 24, size = 60

değerlerine sahip Negatif Binom olasılık dağılım eğrileri çizilmiştir.

set.seed(61)
orneklem<-1000
nby1<-ggdensity(rnbinom(orneklem, mu = 4, size = 10),main="m = 4, s = 10", col="orange", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby2<-ggdensity(rnbinom(orneklem, mu = 8, size = 20),main="m = 8, s = 20",col="orange", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby3<-ggdensity(rnbinom(orneklem, mu = 12, size = 30),main="m = 12, s = 30", col="grey", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby4<-ggdensity(rnbinom(orneklem, mu = 16, size = 40),main="m = 16, s = 40", col="brown", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby5<-ggdensity(rnbinom(orneklem, mu = 20, size = 50),main="m = 20, s = 50",col="green", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby6<-ggdensity(rnbinom(orneklem, mu = 24, size = 60),main="m = 24, s = 60", col="red", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(nby1,nby2,nby3,nby4,nby5,nby6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen Negatif Binom dağılım eğrilerine ilişkin grafikler ayrı ayrı aşağıda verilmiştir.

Şimdi de Negatif Binom dağılımına uygun olarak farklı popülasyon büyüklüğüne sahip ancak farklı size ve ortalama (mu) değerleriyle karşılaştırmalı olarak Negatif Binom dağılımlarına grafik üzerinde bakalım. Aşağıda yazılan R kod bloğunda rnbinom(n, size, mu) fonksiyonu ile;

  1. n=100, mu = 4, size = 10
  2. n=300, mu = 8, size = 20
  3. n=500, mu = 12, size = 30
  4. n=700, mu = 16, size = 40
  5. n=900, mu = 20, size = 50
  6. n=1100, mu = 24, size = 60

değerlerine sahip Negatif Binom olasılık dağılım eğrileri çizilmiştir.

set.seed(61)
nby1<-ggdensity(rnbinom(n=100, mu = 4, size = 10),main="N,m,s = 100,4,10", col="orange", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby2<-ggdensity(rnbinom(n=300, mu = 8, size = 20),main="N,m,s = 300,8,20",col="orange", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby3<-ggdensity(rnbinom(n=500, mu = 12, size = 30),main="N,m,s = 500,12,30", col="grey", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby4<-ggdensity(rnbinom(n=700, mu = 16, size = 40),main="N,m,s = 700,16,40", col="brown", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby5<-ggdensity(rnbinom(n=900, mu = 20, size = 50),main="N,m,s = 900,20,50",col="green", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
nby6<-ggdensity(rnbinom(n=1100, mu = 24, size = 60),main="N,m,s = 1100,24,60", col="red", ,xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(nby1,nby2,nby3,nby4,nby5,nby6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafikler aşağıda verilmiştir. Grafik başlıklarında kısaca belirtilen N, popülasyon büyüklüğünü, m ortalama (mu)’yı ve s başarı denemelerin sayısı (size)’nı göstermektedir. Elde edilen bulgular, popülasyon büyüklüğü, ortalama ve başarı denemelerin sayısı (size) artıkça Negatif Binom dağılımının normal dağılıma evrildiğini göstermektedir.

Örnek 2: Kütle Olasılık Fonksiyonu (PMF)’nun Hesaplanması

Negatif Binom kütle olasılık fonksiyon değerlerinin hesaplanmasında daha önce bahsedildiği gibi aşağıdaki eşitlikten faydalanılmıştır.

Bu görselin boş bir alt özelliği var; dosya ismi: image-102.png

x = 0, 1, 2, …n > 0 ve 0 < p ≤ 1. Eşitlikte p başarı olasılığını göstermektedir. Varsayımsal bir örnek vererek konuyu biraz somutlaştıralım.

Covid-19 hastalığına maruz kalan sigara kullanan 65 yaşındaki bireyin bu hastalığa yakalanma olasılığı 0,70 ise bu hastalığa maruz kalan aynı yaşta 20. bireyin bu hastalığa yakalanan 8. birey olma olasılığı nedir?

Burada,

  • p=0,70 (hastalığa maruz kalma olasılığı)
  • x=20 (hastalığa maruz kalan 20. birey)
  • k=8 (hastalığa yakalanan 8. birey)

Yukarıda belirtilen Negatif Binom dağılım eşitliğinde verilenleri aşağıdaki eşitlikte yerine koyarsak,

Bu görselin boş bir alt özelliği var; dosya ismi: image-92.png

Yapılan işlemi aşağıdaki R kod bloğunda da verelim kullanılan fonksiyonun görülebilmesi açısından. Aşağıdaki ve yukarıdaki sonuçtan görüleceği üzere aynı yaşta 20. bireyin bu hastalığa yakalanan 8. birey olma olasılığı yaklaşık 0.00154’tür.

options(scipen = 999)#bilimsel notasyondan sayıları kurtarmak için
round(choose(19,7)*(1-0.7)^(20-8)*(0.7)^8,5)#burada choose () fonksiyonu kombinasyon hesaplamasında kullanılmıştır.
#Sonuç:0.00154

Örnek 3: Kütle Olasılık Fonksiyonu (PMF)’nun Hesaplanması

Bu kısımda bir diğer varsayımsal örnekle Negatif Binom dağılımının kütle olasılık fonksiyonunu hesaplayalım.

Bir genel seçimde bir siyasi partinin kazanma olasılığı 0,28’dir. Bu seçimlerden rastgele 8 tanesi alınıp inceleniyor. İncelenen 8. seçimin 6. seçim olma olasılığı nedir?

Bilinenler:

  • p=0,28 (seçim kazanma olasılığı)
  • x=8 (incelenen 8. seçim)
  • k=6 (kazanılan 6. seçim)

Yapılan işlemi aşağıdaki R kod bloğunda da verelim adım adım hesaplama adımlarını görebilmek açısından. Elde edilen sonuca göre incelenen 8. seçimin 6. seçim olma olasılığı yaklaşık 0.00175’tir.

options(scipen = 999)#bilimsel notasyondan sayıları kurtarmak için
round(choose(7,6)*(1-0.28)^(8-6)*(0.28)^6,5)#burada choose () fonksiyonu kombinasyon hesaplamasında kullanılmıştır.
#Sonuç:0.00175

Negatif Binom Kümülatif Dağılım Fonksiyonu (CDF)

Poisson olasılık dağılımda kümülatif dağılım fonksiyonu aşağıdaki eşitlik yardımıyla hesaplanmaktadır. Eşitlikte lp düzeltilmiş beta fonksiyonunu göstermektedir.

F(x)=1-I_p(k+1,x-k)

Örnek 3: Kümülatif Dağılım Fonksiyonu (CDF)’nunun Hesaplanması

Aşağıda yazılan R kod bloğunda ise varsayımsal olarak kümülatif dağılım fonksiyonu hesaplanmıştır.

options(scipen = 999)
#COVID-19 Ölüm Vakaları
options(scipen = 999)
x<-seq(2, 1000, by = 2)
kdff<-pnbinom(x,size=80, prob=0.6)
kdff#CDF değerleri
sonuc<-kdff %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>%       mutate(Orneklem_Uzayı= 1:NROW(kdff), 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("Negatif Binom Kümülatif DF (CDF)","(","N, p, s=500,0.6, 80", ")")) +
       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 (CDF) 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 ve böyle olduğu da aşağıda görülmektedir.

   [1] 0.0000000000000009852962 0.0000000000000951743775
  [3] 0.0000000000038611171739 0.0000000000880213308040
  [5] 0.0000000013084356675510 0.0000000138851265693966
  [7] 0.0000001118045395017161 0.0000007136876309617969
  [9] 0.0000037326667789238904 0.0000164118779021221761
 [11] 0.0000619257479359231302 0.0002039325742484081414
 [13] 0.0005944565738528822477 0.0015522358262161693818
 [15] 0.0036682484040896070829 0.0079160212340880133780
 [17] 0.0157226087532808984915 0.0289441668014192715619
 [19] 0.0497007147720145148195 0.0800624532242474873378
 [21] 0.1216349398293410793981 0.1751403300190932654790
 [23] 0.2401127869639744505381 0.3148051925874442713571
 [25] 0.3963470874398397625349 0.4811219541307547031828
 [27] 0.5652725086793937148144 0.6452155355006015113872
 [29] 0.7180583658766382937344 0.7818482658269249041538
 [31] 0.8356364747857912833595 0.8793831364239894643475
 [33] 0.9137567509547558364247 0.9398891869929757447721
 [35] 0.9591386024593491210766 0.9728950784546261942864
 [37] 0.9824446049762557420237 0.9888913651254437331417
 [39] 0.9931283414023758249201 0.9958420765602931101768
 [41] 0.9975375551752201364053 0.9985718004790884450017
 [43] 0.9991882994848760857209 0.9995476926711720500052
 [45] 0.9997527467041465998321 0.9998673356845434456730
 [47] 0.9999300970499609420017 0.9999638103148409395970
 [49] 0.9999815823865207953247 0.9999907818172626416953
 [51] 0.9999954603979571698957 0.9999977994007636095120
 [53] 0.9999989494945618062616 0.9999995059547135412004
 [55] 0.9999997710097774383797 0.9999998953562353465330
 [57] 0.9999999528355646427613 0.9999999790263622845288
 [59] 0.9999999907946935939762 0.9999999960111253249906
 [61] 0.9999999982929450581537 0.9999999992782911961697
 [63] 0.9999999996984760830543 0.9999999998754768304465
 [65] 0.9999999999491528956952 0.9999999999794654259588
 [67] 0.9999999999917961179818 0.9999999999967568165005
 [69] 0.9999999999987310150829 0.9999999999995085042670
 [71] 0.9999999999998114841304 0.9999999999999283906149
 [73] 0.9999999999999730215805 0.9999999999999898969705
 [75] 0.9999999999999963362640 0.9999999999999986677324
 [77] 0.9999999999999995559108 0.9999999999999997779554
 [79] 0.9999999999999998889777 1.0000000000000000000000
 [81] 1.0000000000000000000000 1.0000000000000000000000
 [83] 1.0000000000000000000000 1.0000000000000000000000
 [85] 1.0000000000000000000000 1.0000000000000000000000
 [87] 1.0000000000000000000000 1.0000000000000000000000
 [89] 1.0000000000000000000000 1.0000000000000000000000
 [91] 1.0000000000000000000000 1.0000000000000000000000
 [93] 1.0000000000000000000000 1.0000000000000000000000
 [95] 1.0000000000000000000000 1.0000000000000000000000
 [97] 1.0000000000000000000000 1.0000000000000000000000
 [99] 1.0000000000000000000000 1.0000000000000000000000
[101] 1.0000000000000000000000 1.0000000000000000000000
[103] 1.0000000000000000000000 1.0000000000000000000000
[105] 1.0000000000000000000000 1.0000000000000000000000
[107] 1.0000000000000000000000 1.0000000000000000000000
[109] 1.0000000000000000000000 1.0000000000000000000000
[111] 1.0000000000000000000000 1.0000000000000000000000
[113] 1.0000000000000000000000 1.0000000000000000000000
[115] 1.0000000000000000000000 1.0000000000000000000000
[117] 1.0000000000000000000000 1.0000000000000000000000
[119] 1.0000000000000000000000 1.0000000000000000000000
[121] 1.0000000000000000000000 1.0000000000000000000000
[123] 1.0000000000000000000000 1.0000000000000000000000
[125] 1.0000000000000000000000 1.0000000000000000000000
[127] 1.0000000000000000000000 1.0000000000000000000000
[129] 1.0000000000000000000000 1.0000000000000000000000
[131] 1.0000000000000000000000 1.0000000000000000000000
[133] 1.0000000000000000000000 1.0000000000000000000000
[135] 1.0000000000000000000000 1.0000000000000000000000
[137] 1.0000000000000000000000 1.0000000000000000000000
[139] 1.0000000000000000000000 1.0000000000000000000000
[141] 1.0000000000000000000000 1.0000000000000000000000
[143] 1.0000000000000000000000 1.0000000000000000000000
[145] 1.0000000000000000000000 1.0000000000000000000000
[147] 1.0000000000000000000000 1.0000000000000000000000
[149] 1.0000000000000000000000 1.0000000000000000000000
[151] 1.0000000000000000000000 1.0000000000000000000000
[153] 1.0000000000000000000000 1.0000000000000000000000
[155] 1.0000000000000000000000 1.0000000000000000000000
[157] 1.0000000000000000000000 1.0000000000000000000000
[159] 1.0000000000000000000000 1.0000000000000000000000
[161] 1.0000000000000000000000 1.0000000000000000000000
[163] 1.0000000000000000000000 1.0000000000000000000000
[165] 1.0000000000000000000000 1.0000000000000000000000
[167] 1.0000000000000000000000 1.0000000000000000000000
[169] 1.0000000000000000000000 1.0000000000000000000000
[171] 1.0000000000000000000000 1.0000000000000000000000
[173] 1.0000000000000000000000 1.0000000000000000000000
[175] 1.0000000000000000000000 1.0000000000000000000000
[177] 1.0000000000000000000000 1.0000000000000000000000
[179] 1.0000000000000000000000 1.0000000000000000000000
[181] 1.0000000000000000000000 1.0000000000000000000000
[183] 1.0000000000000000000000 1.0000000000000000000000
[185] 1.0000000000000000000000 1.0000000000000000000000
[187] 1.0000000000000000000000 1.0000000000000000000000
[189] 1.0000000000000000000000 1.0000000000000000000000
[191] 1.0000000000000000000000 1.0000000000000000000000
[193] 1.0000000000000000000000 1.0000000000000000000000
[195] 1.0000000000000000000000 1.0000000000000000000000
[197] 1.0000000000000000000000 1.0000000000000000000000
[199] 1.0000000000000000000000 1.0000000000000000000000
[201] 1.0000000000000000000000 1.0000000000000000000000
[203] 1.0000000000000000000000 1.0000000000000000000000
[205] 1.0000000000000000000000 1.0000000000000000000000
[207] 1.0000000000000000000000 1.0000000000000000000000
[209] 1.0000000000000000000000 1.0000000000000000000000
[211] 1.0000000000000000000000 1.0000000000000000000000
[213] 1.0000000000000000000000 1.0000000000000000000000
[215] 1.0000000000000000000000 1.0000000000000000000000
[217] 1.0000000000000000000000 1.0000000000000000000000
[219] 1.0000000000000000000000 1.0000000000000000000000
[221] 1.0000000000000000000000 1.0000000000000000000000
[223] 1.0000000000000000000000 1.0000000000000000000000
[225] 1.0000000000000000000000 1.0000000000000000000000
[227] 1.0000000000000000000000 1.0000000000000000000000
[229] 1.0000000000000000000000 1.0000000000000000000000
[231] 1.0000000000000000000000 1.0000000000000000000000
[233] 1.0000000000000000000000 1.0000000000000000000000
[235] 1.0000000000000000000000 1.0000000000000000000000
[237] 1.0000000000000000000000 1.0000000000000000000000
[239] 1.0000000000000000000000 1.0000000000000000000000
[241] 1.0000000000000000000000 1.0000000000000000000000
[243] 1.0000000000000000000000 1.0000000000000000000000
[245] 1.0000000000000000000000 1.0000000000000000000000
[247] 1.0000000000000000000000 1.0000000000000000000000
[249] 1.0000000000000000000000 1.0000000000000000000000
[251] 1.0000000000000000000000 1.0000000000000000000000
[253] 1.0000000000000000000000 1.0000000000000000000000
[255] 1.0000000000000000000000 1.0000000000000000000000
[257] 1.0000000000000000000000 1.0000000000000000000000
[259] 1.0000000000000000000000 1.0000000000000000000000
[261] 1.0000000000000000000000 1.0000000000000000000000
[263] 1.0000000000000000000000 1.0000000000000000000000
[265] 1.0000000000000000000000 1.0000000000000000000000
[267] 1.0000000000000000000000 1.0000000000000000000000
[269] 1.0000000000000000000000 1.0000000000000000000000
[271] 1.0000000000000000000000 1.0000000000000000000000
[273] 1.0000000000000000000000 1.0000000000000000000000
[275] 1.0000000000000000000000 1.0000000000000000000000
[277] 1.0000000000000000000000 1.0000000000000000000000
[279] 1.0000000000000000000000 1.0000000000000000000000
[281] 1.0000000000000000000000 1.0000000000000000000000
[283] 1.0000000000000000000000 1.0000000000000000000000
[285] 1.0000000000000000000000 1.0000000000000000000000
[287] 1.0000000000000000000000 1.0000000000000000000000
[289] 1.0000000000000000000000 1.0000000000000000000000
[291] 1.0000000000000000000000 1.0000000000000000000000
[293] 1.0000000000000000000000 1.0000000000000000000000
[295] 1.0000000000000000000000 1.0000000000000000000000
[297] 1.0000000000000000000000 1.0000000000000000000000
[299] 1.0000000000000000000000 1.0000000000000000000000
[301] 1.0000000000000000000000 1.0000000000000000000000
[303] 1.0000000000000000000000 1.0000000000000000000000
[305] 1.0000000000000000000000 1.0000000000000000000000
[307] 1.0000000000000000000000 1.0000000000000000000000
[309] 1.0000000000000000000000 1.0000000000000000000000
[311] 1.0000000000000000000000 1.0000000000000000000000
[313] 1.0000000000000000000000 1.0000000000000000000000
[315] 1.0000000000000000000000 1.0000000000000000000000
[317] 1.0000000000000000000000 1.0000000000000000000000
[319] 1.0000000000000000000000 1.0000000000000000000000
[321] 1.0000000000000000000000 1.0000000000000000000000
[323] 1.0000000000000000000000 1.0000000000000000000000
[325] 1.0000000000000000000000 1.0000000000000000000000
[327] 1.0000000000000000000000 1.0000000000000000000000
[329] 1.0000000000000000000000 1.0000000000000000000000
[331] 1.0000000000000000000000 1.0000000000000000000000
[333] 1.0000000000000000000000 1.0000000000000000000000
[335] 1.0000000000000000000000 1.0000000000000000000000
[337] 1.0000000000000000000000 1.0000000000000000000000
[339] 1.0000000000000000000000 1.0000000000000000000000
[341] 1.0000000000000000000000 1.0000000000000000000000
[343] 1.0000000000000000000000 1.0000000000000000000000
[345] 1.0000000000000000000000 1.0000000000000000000000
[347] 1.0000000000000000000000 1.0000000000000000000000
[349] 1.0000000000000000000000 1.0000000000000000000000
[351] 1.0000000000000000000000 1.0000000000000000000000
[353] 1.0000000000000000000000 1.0000000000000000000000
[355] 1.0000000000000000000000 1.0000000000000000000000
[357] 1.0000000000000000000000 1.0000000000000000000000
[359] 1.0000000000000000000000 1.0000000000000000000000
[361] 1.0000000000000000000000 1.0000000000000000000000
[363] 1.0000000000000000000000 1.0000000000000000000000
[365] 1.0000000000000000000000 1.0000000000000000000000
[367] 1.0000000000000000000000 1.0000000000000000000000
[369] 1.0000000000000000000000 1.0000000000000000000000
[371] 1.0000000000000000000000 1.0000000000000000000000
[373] 1.0000000000000000000000 1.0000000000000000000000
[375] 1.0000000000000000000000 1.0000000000000000000000
[377] 1.0000000000000000000000 1.0000000000000000000000
[379] 1.0000000000000000000000 1.0000000000000000000000
[381] 1.0000000000000000000000 1.0000000000000000000000
[383] 1.0000000000000000000000 1.0000000000000000000000
[385] 1.0000000000000000000000 1.0000000000000000000000
[387] 1.0000000000000000000000 1.0000000000000000000000
[389] 1.0000000000000000000000 1.0000000000000000000000
[391] 1.0000000000000000000000 1.0000000000000000000000
[393] 1.0000000000000000000000 1.0000000000000000000000
[395] 1.0000000000000000000000 1.0000000000000000000000
[397] 1.0000000000000000000000 1.0000000000000000000000
[399] 1.0000000000000000000000 1.0000000000000000000000
[401] 1.0000000000000000000000 1.0000000000000000000000
[403] 1.0000000000000000000000 1.0000000000000000000000
[405] 1.0000000000000000000000 1.0000000000000000000000
[407] 1.0000000000000000000000 1.0000000000000000000000
[409] 1.0000000000000000000000 1.0000000000000000000000
[411] 1.0000000000000000000000 1.0000000000000000000000
[413] 1.0000000000000000000000 1.0000000000000000000000
[415] 1.0000000000000000000000 1.0000000000000000000000
[417] 1.0000000000000000000000 1.0000000000000000000000
[419] 1.0000000000000000000000 1.0000000000000000000000
[421] 1.0000000000000000000000 1.0000000000000000000000
[423] 1.0000000000000000000000 1.0000000000000000000000
[425] 1.0000000000000000000000 1.0000000000000000000000
[427] 1.0000000000000000000000 1.0000000000000000000000
[429] 1.0000000000000000000000 1.0000000000000000000000
[431] 1.0000000000000000000000 1.0000000000000000000000
[433] 1.0000000000000000000000 1.0000000000000000000000
[435] 1.0000000000000000000000 1.0000000000000000000000
[437] 1.0000000000000000000000 1.0000000000000000000000
[439] 1.0000000000000000000000 1.0000000000000000000000
[441] 1.0000000000000000000000 1.0000000000000000000000
[443] 1.0000000000000000000000 1.0000000000000000000000
[445] 1.0000000000000000000000 1.0000000000000000000000
[447] 1.0000000000000000000000 1.0000000000000000000000
[449] 1.0000000000000000000000 1.0000000000000000000000
[451] 1.0000000000000000000000 1.0000000000000000000000
[453] 1.0000000000000000000000 1.0000000000000000000000
[455] 1.0000000000000000000000 1.0000000000000000000000
[457] 1.0000000000000000000000 1.0000000000000000000000
[459] 1.0000000000000000000000 1.0000000000000000000000
[461] 1.0000000000000000000000 1.0000000000000000000000
[463] 1.0000000000000000000000 1.0000000000000000000000
[465] 1.0000000000000000000000 1.0000000000000000000000
[467] 1.0000000000000000000000 1.0000000000000000000000
[469] 1.0000000000000000000000 1.0000000000000000000000
[471] 1.0000000000000000000000 1.0000000000000000000000
[473] 1.0000000000000000000000 1.0000000000000000000000
[475] 1.0000000000000000000000 1.0000000000000000000000
[477] 1.0000000000000000000000 1.0000000000000000000000
[479] 1.0000000000000000000000 1.0000000000000000000000
[481] 1.0000000000000000000000 1.0000000000000000000000
[483] 1.0000000000000000000000 1.0000000000000000000000
[485] 1.0000000000000000000000 1.0000000000000000000000
[487] 1.0000000000000000000000 1.0000000000000000000000
[489] 1.0000000000000000000000 1.0000000000000000000000
[491] 1.0000000000000000000000 1.0000000000000000000000
[493] 1.0000000000000000000000 1.0000000000000000000000
[495] 1.0000000000000000000000 1.0000000000000000000000
[497] 1.0000000000000000000000 1.0000000000000000000000
[499] 1.0000000000000000000000 1.0000000000000000000000

Ş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.Grafik başlığında belirtilen N, popülasyon büyüklüğünü, p her bir denemedeki başarı olasılığını ve s başarı denemelerin sayısı (size)’nı göstermektedir.

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.

Daha önce kesikli olasılıklı dağılım türleri üzerine örnek uygulama yaptığım çalışmaların linklerini de aşağıda paylaşıyorum ilgilenenler için.

Bernoulli Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Kesikli Uniform Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Poisson Olasılık Dağılımı Üzerine Bir Vaka Çalışması

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

Öne çıkan

Poisson Olasılık Dağılımı Üzerine Bir Vaka Çalışması: A Case Study on Poisson Probability Distribution

Bir çok analiz yönteminin temelini olasılık dağılımları oluşturmaktadır. İşin esasında olasılık 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 (discrete) ve sürekli (continuous) dağılımlar başlıklar halinde verildikten sonra kesikli dağılım türlerinden biri olan Poisson dağılımı uygulama örnekleriyle ele alınarak somutlaştırılacaktır. Uygulama örnekleri ağırlıklı olarak 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.

  1. 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.
  2. 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ı, sürekli olasılık fonksiyonunda sürekli örneklem uzayı ise aralıkları baz almaktadır.

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)

  1. Bernoulli Dağılımı
  2. Kesikli Uniform Dağılımı
  3. Binom Dağılımı
  4. Poisson Dağılımı
  5. Negatif Binom Dağılımı
  6. Geometrik Dağılım
  7. Hipergeometrik Dağılımı

B) Sürekli Dağılımlar (Continuous Distributions)

  1. Normal Dağılım
  2. Tekbiçimli Uniform Dağılım
  3. Cauchy Dağılımı
  4. t Dağılımı
  5. F Dağılımı
  6. Ki-kare Dağılımı
  7. Üstel Dağılım
  8. Weibull Dağılımı
  9. Lognormal Dağılımı
  10. Birnbaum-Saunders
  11. Gamma Dağılımı
  12. Çift Üstel Dağılımı
  13. Güç Normal Dağılımı
  14. Güç Lognormal Dağılımı
  15. Tukey-Lambda Dağılımı
  16. Uç Değer Tip I Dağılımı
  17. Beta Dağılımı

Poisson Dağılımı

Poisson dağılımı Fransız matematikçi Siméon Denis Poisson tarafından geliştirilmiştir. Poisson dağılımı, bir olayın belirli bir zaman veya mekan aralığında kaç kez meydana geldiğini modellemek için kullanılmaktadır. Poisson dağılımı sağa çarpık (right skew) bir görünüm sergilemektedir. Bu dağılım sürekli dağılımlardan biri olan normal dağılımın aksine kesikli dağılım türlerinden biridir. Bu dağılım Poisson regresyon analizinin temelini oluşturmakta olup, bağımlı değişkenin Poisson dağılımı gösterdiği durumlarda kullanılmaktadır. Poisson regresyon analizinde bağımlı değişkenin veri tipi nicel pozitif ve aynı zamanda kesiklidir. Yapılan Covid-19 testlerinin sayısı, vaka sayısı, ölüm sayısı gibi değişken istatistikleri bu modellerde kullanılabilecek değişkenlere örnek verilebilir.

Poisson dağılımında kullanılan parametreler Tablo 1’de verilmiştir. Bu dağılımda ortalama sıfırdan büyük ve varyansa eşit veya ona yakındır Ayrıca örneklem uzayı doğal sayılar kümesi (N)’nden oluşmaktadır. Tabloda lambda değeri bize ortalama değeri göstermektedir.

Tablo 1: Poisson Dağılım Parametreleri

Teorik olarak varyansın ve ortalamanın birbirine eşit veya yakın olması istense de uygulamada bu durum pek mümkün olmamaktadır. Genelde pratikte karşılaşılan sorunların başında varyansın ortalamanın üstünde olmasıdır. Bu durum veri setindeki ilgili değişken setindeki gözlemlerin aşırı yayılım (overdispersion) gösterdiği anlamına gelmektedir. Uygulamada az da olsa karşılaşılan diğer durumda ilgili değişken setinin eksik yayılım (underdispersion) göstermesidir. Bu durumda ise varyans ortalamanın çok altındadır. Veri setindeki aşırı ve eksik yayılım durumlarını ortaya koymak için uyum iyiliği testleri (goodness of fit) yaparız. Bu testler analize en uygun yöntemin belirlenmesi için yapılmaktadır. Eğer uyum iyiliği testleri veri setinde aşırı yayılımı gösteriyorsa Poisson regresyon yönteminden vazgeçerek Negatif Binom regresyonu seçeriz. Çünkü Poisson regresyon, diğer bir ifadeyle Poisson dağılım varsayımını ihlal etmişizdir.

Poisson Olasılık Kütle Fonksiyonu (PMF)

Tablo 1’deki parametreler kullanılarak oluşturulan Poisson olasılık kütle fonksiyonu (PMF) aşağıdaki eşitlikte verilmiştir.

Eşitlikte e= Euler’in sabiti olarak ifade edilmektedir. Bu katsayı yaklaşık 2,71828’e eşittir. Eşitlikte yer verilen lambda (λ) belirli zaman aralığında meydana gelen vakaların ortalama sayısını göstermektedir. x ise eşitlikte hedeflenen vaka sayısını belirtmektedir.  x = 0, 1, 2, …, n > 0 ve 0 < p ≤ 1. n büyürken p küçülürse Binom dağılımı Poisson dağılımına evrilir.

Ö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","vcd"), require, character.only = TRUE)
gereklikütüphaneler

Örnek 1: Ortalama, Varyans, Basıklık ve Çarpıklık Değerlerinin Hesaplanması

İlk olarak Poisson dağılımında ortalama, varyans, basıklık ve çarpıklık değerlerine bakalım. Poisson dağılımına uygun popülasyon büyüklüğü 1000 ve Lambda değeri 1 olan sentetik gözlem değerleri ürettikten sonra aşağıda yazılan R kod bloğunda Poisson dağılımına ait ortalama, varyans, basıklık ve çarpıklık değerlerini hesaplayalım. Ardından gerçekten 1000 gözlemden oluşan veri setinin Poisson dağılımına uyup uymadığını uyum iyiliği testi ile test edelim. Bu durumda hipotez testlerimiz;

  • H0 yani yokluk hipotezimiz veri setinin Poisson dağılımı gösterdiği
  • H1 yani alternatif hipotezimiz ise veri setinin Poisson dağılımı göstermediği

şeklinde olacaktır.

#Poisson dağılımına uygun popülasyon büyüklüğü 1000 ve Lambda değeri 1 olan örneklem üretme
set.seed(61)#örneklem uzayının elemanlarını sabitlemek için
poisorneklem<-rpois(n=1000, lambda=2)#örneklem uzayı

#Ortalama, varyans, basıklık ve çarpıklık değerlerinin hesaplanması
ortalama=mean(poisorneklem)
varyans=var(poisorneklem)
carpiklik=1/sqrt(varyans)
basiklik= 1/varyans
formattable(cbind(ortalama, varyans,carpiklik, basiklik) %>% as_tibble() %>% mutate_if(is.numeric, round,3))

#Veri setinin histogramı
ggplot(as_tibble(poisorneklem), aes(x=value))+geom_bar(bins=100,binwidth=.5, fill="red")+
xlab("Örneklem Uzayı")+
ylab("Sıklık")+
ggtitle("Veri Setinin Histogramı")+
theme_replace()

#Poisson dağılımı uyum iyiliği testi (goodness of fit)
veri<-table(poisorneklem)#sıklıklarını almak için
uyum <- goodfit(veri, type = "poisson", method = "MinChisq")
summary(uyum)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Poisson dağılımına ait elde edilen ortalama, varyans, çarpıklık ve basıklık değerleri aşağıdaki tabloda verilmiştir. Aşağıda elde edilen bulgulara göre veri setinin ortalama ve varyansı birbirine oldukça yakın olsa da hem histogramının çizilmesi hem de uyum iyiliği testi de yapılarak Poisson dağılımına uygun olup olmadığına bakılması yerinde olacaktır.

Yukarıdaki R kod bloğunda ilgili alan çalıştırıldığında elde edilen veri setine ait histogram aşağıda verilmiştir. Daha önce Poisson dağılımının sağa çarpık (right skew) bir görünüm sergilediğini belirtmiştik. Aşağıdaki histogramda da görüleceği üzere veri seti Poisson dağılımına uygun bir görünüm ortaya koymaktadır.

Yukarıdaki R kod bloğunda ilgili alan çalıştırıldığında elde edilen uyum iyiliği testi sonuçları ise aşağıda verilmiştir. Elde edilen sonuçlar istatistiksel olarak anlamlı olmadığı için veri setimiz Poisson dağılımına uygundur (p>0.05). Bu durumda yukarıda belirttiğimiz H0 hipotezimi kabul ediyoruz.

Chi-squared approximation may be incorrect
	 Goodness-of-fit test for poisson distribution

             X^2 df  P(> X^2)
Pearson 3.231822  6 0.7792386

Şimdi de Poisson dağılımına uygun olarak aynı popülasyon büyüklüğüne sahip ancak farklı lambda değerleriyle karşılaştırmalı olarak poisson dağılıma grafik üzerinde bakalım. Aşağıda yazılan R kod bloğu ile popülasyon büyüklüğü (N) 1000, lambda düzeyleri ise sırasıyla 1, 1,5, 2, 2,5, 3 ve 3,5 olan poisson eğrileri verilmiştir. Poisson eğrilerine daha yakından bakacak olursak eğrilerin izlediği seyri daha da iyi anlayabiliriz.

set.seed(6)
orneklem<-1000
l1<-ggdensity(rpois(orneklem, lambda=1),main="λ=1", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l2<-ggdensity(rpois(orneklem, lambda=1.5),main="λ=1.5", col="orange", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l3<-ggdensity(rpois(orneklem, lambda=2),main="λ=2", col="grey",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l4<-ggdensity(rpois(orneklem, lambda=2.5),main="λ=2.5", col="brown",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l5<-ggdensity(rpois(orneklem, lambda=3),main="λ=3", col="green",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l6<-ggdensity(rpois(orneklem, lambda=3.5),main="λ=3.5", col="red",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(l1,l2,l3,l4,l5,l6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafikler aşağıda verilmiştir.

Şimdi de Poisson dağılımına uygun olarak farklı popülasyon büyüklüğüne sahip ancak farklı lambda değerleriyle karşılaştırmalı olarak poisson dağılıma grafik üzerinde bakalım. Aşağıda yazılan R kod bloğu ile popülasyon büyüklükleri (N) 100, 300, 500, 700, 900 ve 1100 olan ve lambda düzeyleri ise sırasıyla 1, 1,5, 2, 2,5, 3 ve 3,5 olan poisson eğrileri verilmiştir. Burada amaç, farklı popülasyon büyüklükleri ve lambda değerleri olduğunda Poisson dağılımının izlediği seyrin gösterilmesidir.

l1<-ggdensity(rpois(100, lambda=1),main="λ=1, N=100", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l2<-ggdensity(rpois(300, lambda=1.5),main="λ=1.5,  N=300", col="orange", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l3<-ggdensity(rpois(500, lambda=2),main="λ=2,  N=500", col="grey",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l4<-ggdensity(rpois(700, lambda=2.5),main="λ=2.5, N=700", col="brown",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l5<-ggdensity(rpois(900, lambda=3),main="λ=3, N=900", col="green",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l6<-ggdensity(rpois(1100, lambda=3.5),main="λ=3.5, N=1100", col="red",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(l1,l2,l3,l4,l5,l6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafikler aşağıda verilmiştir.

Diğer lambda değerini 1’de sabitleyerek farklı popülasyon büyüklüklerine göre de Poisson dağılımındaki farklılaşmaları görebiliriz. Bu amaçla yazdığım R kod bloğu aşağıda verilmiştir.

l1<-ggdensity(rpois(100, lambda=1),main="λ=1, N=100", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l2<-ggdensity(rpois(300, lambda=1.5),main="λ=1,  N=300", col="orange", xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l3<-ggdensity(rpois(500, lambda=2),main="λ=1,  N=500", col="grey",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l4<-ggdensity(rpois(700, lambda=2.5),main="λ=1, N=700", col="brown",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l5<-ggdensity(rpois(900, lambda=3),main="λ=1, N=900", col="green",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
l6<-ggdensity(rpois(1100, lambda=3.5),main="λ=1, N=1100", col="red",xlab="Örneklem Uzayı",ylab= "Yoğunluk")
ggarrange(l1,l2,l3,l4,l5,l6)

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde edilen grafikler aşağıda verilmiştir. Elde edilen bulgular örneklem büyüklüğü artıkça Poisson dağılımının normal dağılıma evrildiğini göstermektedir. Gerek bundan önce grafikler ve gerekse aşağıdaki grafikler lamda değerlerinin dağılımın seyri üzerinde önemli bir etkisi olmadığını göstermektedir.

Örnek 2: Kütle Olasılık Fonksiyonu (PMF)’nun Hesaplanması

1868–1931 yılları arasında yaşamış olan Polonya kökenli Rus istatistikçi ve ekonomist Ladislaus von Bortkiewich 1898 yılındaki monografında Poisson dağılımı aşağıdaki örnekle ele alınmıştır. Diğer bir ifadeyle, Ladislaus von Bortkiewich kesikli olasılık dağılımlarından Poisson dağılımını uygulamalı istatistikte nasıl kullanılacağını göstermiştir.

Ladislaus von Bortkiewich monografında Prusya Süvari birliklerindeki askerler içerisinde at tekmesi sonucu ölenlerin sayılarını dağılımını Poisson olasılık fonksiyonu ile modellemiştir. Ladislaus von Bortkiewich’ın monografında at tekmesi sonucu meydana gelen ölümlerde kullanılan veriler aşağıdaki tabloda verilmiştir.

Yukarıdaki tabloda verilere uygulanan Poisson olasılık fonksiyon değerleri R bilmeyenler de dikkate alınarak Microsoft Excel üzerinde hesaplanarak aşağıdaki tabloda bir bütün olarak verilmiştir. Poisson olasılık fonksiyon değerlerinin hesaplanmasında daha önce bahsedildiği gibi aşağıdaki eşitlikten faydalanılmıştır.

Bu görselin boş bir alt özelliği var; dosya ismi: image-66.png

Aşağıdaki tabloda Poisson olasılık değerinin hesaplanmasında yukarıdaki eşitlik kullanılmış olup, ilk satırda kullanılan excel formülü söyledir:

  • =(F3^B3*ÜS(1)^-F3)/ÇARPINIM(B3). Formülde yer alan ÜS(1) fonksiyonu bize Euler sabitini yani 2,718281828 değerini vermektedir. ÇARPINIM() fonksiyonu ise bir değerin faktöriyelini hesaplamak için kullanılmıştır.

Yukarıda bahsedilen işlemlerin daha kalıcı olması ve formül etkileşimlerini görebilmeniz adına aşağıda xlsx uzantılı dökümanı paylaşıyorum.

Yukarıdaki aynı örneği şimdi de R üzerinde yapalım.

options(scipen = 999)#bilimsel notasyondan sayıları kurtarmak için
x<-c(rep(0,109),rep(1,65), rep(2,22),rep(3, 3),rep(4,1))#excel tablosundaki ilk iki değişkeni gözlemleriyle birlikte oluşturmak için
lambda<-mean(x)#0.61
e<-2.71828 #Euler'in sabiti
sıfır<-(e^-lambda)*(lambda^0)/factorial(0)
bir<-(e^-lambda)*(lambda^1)/factorial(1)
iki<-(e^-lambda)*(lambda^2)/factorial(2)
uc<-(e^-lambda)*(lambda^3)/factorial(3)
dort<-(e^-lambda)*(lambda^4)/factorial(4)
formattable(tibble(sıfır, bir,iki,uc,dort)%>% mutate_if(is.numeric, round, 5))

Yukarıdaki R kod bloğunu çalıştırdığımızda Microsoft Excel’de elde edilen olasılık değerleriyle aynı değerleri elde ettiğimizi görmekteyiz.

Yukarıda elde ettiğimiz olasılık değerlerini aşağıda yazdığım for döngüsü kullanarak da elde edebiliriz.

x <- c(rep(0,109),rep(1,65), rep(2,22),rep(3, 3),rep(4,1))
lambda<-mean(x)
sira <- unique(x)
e<-2.71828 #Euler'in sabiti
for (i in sira) {
  sira[i+1] <-(e^-lambda)*(lambda^i)/factorial(i)
}
print(paste("Ölüm sayısı",0:(length(sira)-1),"olduğunda olasılık değeri", round(sira,5)))

Yukarıdaki R kod bloğundaki for döngüsünün çalıştırılmasından sonra elde edilen sonuçlar aşağıda verilmiştir.

[1] "Ölüm sayısı 0 olduğunda olasılık değeri 0.54335"
[2] "Ölüm sayısı 1 olduğunda olasılık değeri 0.33144"
[3] "Ölüm sayısı 2 olduğunda olasılık değeri 0.10109"
[4] "Ölüm sayısı 3 olduğunda olasılık değeri 0.02056"
[5] "Ölüm sayısı 4 olduğunda olasılık değeri 0.00313"

Örnek 3: Kütle Olasılık Fonksiyonu (PMF)’nun Hesaplanması

Bu kısımda varsayımsal ve orjinal bir örnekle Poisson dağılımının kütle olasılık fonksiyonunu hesaplayalım.

Bir organize sanayi bölgesinde gıda sektöründe üretim yapan firmanın deposunda stoklanan ürünlerin 0,04’nin bozuk olduğu bilinmektedir. Bu depodan tesadüfi seçilen 80 birimden en az 5 tanesinin bozuk olma olasılığını Poisson dağılımından yararlanarak hesaplayalım.

Bilinenler:

  • p= 0,04
  • Lambda (λ) = 80 X 0,04 = 3,2

Yukarıda belirtilen Poisson kütle olasılık eşitliğinde verilenleri yerine koyarsak

Yapılan işlemi aşağıdaki R kod bloğunda da verelim adım adım hesaplama adımlarını görebilmek açısından.

e<-2.71828 #Euler'in sabiti
sıfır<-(e^-3.2*(3.2)^0)/factorial(0)
bir<-(e^-3.2*(3.2)^1)/factorial(1)
iki<-(e^-3.2*(3.2)^2)/factorial(2)
uc<-(e^-3.2*(3.2)^3)/factorial(3)
dort<-(e^-3.2*(3.2)^4)/factorial(4)
poissonfonksiyon<-sum(sıfır, bir,iki,uc,dort)#f(x): Poisson olasılık dağılım fonksiyonu
round(1-poissonfonksiyon,5)
#Sonuç=0.21939

Poisson Kümülatif Dağılım Fonksiyonu (CDF)

Poisson 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 süvari örneğinden hareketle kümülatif dağılım fonksiyonu hesaplanmıştır.

options(scipen = 999)
x<-c(rep(0,109),rep(1,65), rep(2,22),rep(3, 3),rep(4,1))
xunique<-unique(x)
lambda<-mean(x)#0.61
kdf<-ppois(xunique,lambda=lambda)#kümülatif olasılık dağılım değerleri

sonuc<-kdf %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>%       mutate(Orneklem_Uzayı=0:(NROW(xunique)-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) +
       scale_x_continuous(breaks=seq(0, 4, 1))+
       ggtitle(paste("Poisson Kümülatif Dağılım Fonksiyonu (PMF)","(","λ=0.61,  N=200", ")")) +
       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 veya yaklaşık 1’dir ve böyle olduğu da aşağıda görülmektedir.

 0.5433509 0.8747949 0.9758853 0.9964404 0.9995750

Ş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.

Poisson Dağılımına Göre Örneklem Seçimi

Poisson dağılımına uygun olarak süvari örneği üzerinden R’da rpois fonksiyonunu kullanarak ve hesaplanan lambda değeri dikkate alınarak popülasyon büyüklüğünün 1000 olduğu örneklem üretelim. Ardından üretilen bu örneklemin hem yoğunluk grafiğini hem de histogramı çizelim.

#Poisson dağılıma uygun örneklem seçimi
lambda<-mean(x)#0.61
orneklembuyuklugu<-1000
set.seed(61)#değerleri sabitlemek için
kud<-tibble(Sayi=rpois(orneklembuyuklugu,lambda))

#Poisson dağılımı histogramı için
ggplot(kud, aes(x=Sayi)) + 
geom_histogram(bins=50,binwidth=.4,fill = "red", alpha = 0.7)+
xlab("Örneklem Uzayı")+
ylab("Sıklık")+
ggtitle(paste("Poisson Örneklem Histogramı","(λ=",lambda,",","N=",orneklembuyuklugu,")"))+
theme(plot.title = element_text(hjust = 0.5))+
theme_stata()

R kod bloğundaki ilgili alan çalıştırıldığında Poisson dağılımına uygun olarak çekilen örneklemin histogramını elde etmiş oluruz. Burada histogramda özellikle dikkat edilmesi gereken şey, Poisson dağılımının sağa çarpık (right skew) bir görüntü ortaya koymasıdır.

R programlama dili olarak Shiny üzerinde geliştirdiğim simülasyon uygulaması ile Poisson olasılık dağılımının lambda ve örneklem büyüklüklerine göre izlediği seyri değerlendirerek dağılımı daha iyi anlayabilirsiniz. Uygulamanın linki aşağıda verilmiştir.

Poisson Dağılımı Simülasyonu. Versiyon 3. 28.09.2020. Uygulamanın linki: https://buluttevfik.shinyapps.io/poissondv3/

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.

Daha önce kesikli olasılıklı dağılım türleri üzerine örnek uygulama yaptığım çalışmaların linklerini de aşağıda paylaşıyorum ilgilenenler için.

Bernoulli Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması

Kesikli Uniform Olasılık Dağılımı Üzerine Bir Vaka Çalışması

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

Öne çıkan

Kesikli Uniform Olasılık Dağılımı Üzerine Bir Vaka Çalışması: A Case Study on Discrete Uniform Probability Distribution

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 Kesikli Uniform (Tek düze) 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.

  1. 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.
  2. 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)

  1. Bernoulli Dağılımı
  2. Kesikli Uniform Dağılımı
  3. Binom Dağılımı
  4. Poisson Dağılımı
  5. Negatif Binom Dağılımı
  6. Geometrik Dağılım
  7. Hipergeometrik Dağılımı

B) Sürekli Dağılımlar (Continuous Distributions)

  1. Normal Dağılım
  2. Tekbiçimli Uniform Dağılım
  3. Cauchy Dağılımı
  4. t Dağılımı
  5. F Dağılımı
  6. Ki-kare Dağılımı
  7. Üstel Dağılım
  8. Weibull Dağılımı
  9. Lognormal Dağılımı
  10. Birnbaum-Saunders
  11. Gamma Dağılımı
  12. Çift Üstel Dağılımı
  13. Güç Normal Dağılımı
  14. Güç Lognormal Dağılımı
  15. Tukey-Lambda Dağılımı
  16. Uç Değer Tip I Dağılımı
  17. Beta Dağılımı

Kesikli Uniform Dağılımı

Kesikli uniform bir dağılımda, örneklem uzayı sayılabilmesinin yanı sıra örneklem uzayındaki her eleman eşit derecede seçilme olasılığına sahiptir. istatistik ve olasılık teorisinde bu dağılıma simetrik olasılık dağılımı da denilmektedir. Hilesiz bir zar atılması deneyi bu dağılıma verilebilecek en basit örnektir. Atılan zar deneyinde olası sonuçlar 1, 2, 3, 4, 5, 6 olup, örneklem uzayındaki her bir sonucun elde edilmesi olasılığı eşit, yani 1 / 6’dır.

Kesikli Uniform dağılımında kullanılan parametreler Tablo 1’de verilmiştir. Bu dağılımda örneklem uzayı Tablo 1’de de görüleceği üzere ardışık tam sayılardan oluşmaktadır. Alt sınır burada örneklem uzayındaki başlangıç (ilk) elemanını, üst sınır ise örneklem uzayındaki son elemanı elemanı göstermektedir. Artış ardışık düzendedir. Örneğin bir zar için düşünecek olursak alt sınır (a) 1’e eşit iken üst sınır (b) ise 6’ya eşittir. Bu durumda örneklem uzayımız x ∈ {1,2,3,4,5,6}’dir. Aralarındaki artışın ise ardışık düzende olduğunu görmekteyiz.

Tablo 1: Kesikli Uniform Dağılım Parametreleri

Kesikli Uniform Olasılık Kütle Fonksiyonu (PMF)

Tablo 1’deki parametreler kullanılarak oluşturulan Kesikli Uniform olasılık kitle fonksiyonu (PMF) aşağıdaki eşitlikte verilmiştir.

Yukarıdaki eşitlik yardımıyla örneklem uzayının 6 tam sayıdan oluşan ardışık bir zar deneyinde 4 sayısının gelme olasılığını hesaplayalım. Elde edilen olasılık 1/6 olup, örneklem uzayındaki diğer elemanlar için de aynıdır. Diğer bir ifadeyle örneklem uzayındaki her bir elemanın seçilme olasılığı birbirine eşittir.

Ö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 Kesikli uniform dağılımında bir zar deneyine göre ortalama, varyans, basıklık ve çarpıklık değerlerine bakalım. Bir zarda alt sınır (a) 1, üst sınır (b) 6 ve örneklem uzayımız ise ardışık düzende olup {a, a+1,…, b}’dir. a ve b değerlerini yerine koyduğumuzda örneklem uzayımız {1, 1+1,…, 6}’dır. Aşağıda yazılan R kod bloğunda Kesikli uniform dağılımına ait ortalama, varyans, basıklık ve çarpıklık değerlerini hesaplayalım.

a <- 1 # Alt sınır
b <- 6 # Üst sınır
n <- b - a + 1 # Noktaların sayısı
x <- a:b # Örneklem uzayı (a'nın değerinden b'nin değerine kadar olan tamsayılar.Yani örneklem uzayı= {1,2,4,5,6})
ortalama=(a+b)/2
varyans=(n^2-1)/12
carpiklik=0
basiklik= -6*(n^2+1)/ 5*(n^2-1)
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 Kesikli Uniform dağılımının kütle olasılık fonksiyonunu hesaplayalım. Plaka kodlarına göre ardışık düzende sıralanmış 81’ilden 61 plaka kodlu ilin seçilme olasılığını hesaplayarak, kütle olasılık fonksiyon grafiğini çizelim.

Bilinenler:

Alt sınır (a)=1

Üst sınır (b)=81

Noktaların sayısı (örneklem uzayındaki eleman sayısı) (b) = b – a + 1 = 81

Örneklem uzayı (x) ={a,2,3,….., 81}

Şimdi verilenleri aşağıda yazdığım R kod bloğunda yerine koyalım.

a <- 1 # Alt sınır
b <- 81 # Üst sınır
n <- b - a + 1 # Noktaların sayısı: örneklem uzayındaki eleman sayısı
x <- a:b # Örneklem uzayı (a'nın değerinden b'nin değerine kadar olan tamsayılar.Yani örneklem uzayı= {1,2,4,5,...,81})
kof <- rep(1/n,n) # Kütle olasılık fonksiyonu (PMF)
kof

sonuc<-kof %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>%       mutate(Orneklem_Uzayı=1:81, Olasilik=as.numeric(value)) 
grafik<-sonuc[,-1] %>% ggplot(aes(x=Orneklem_Uzayı,y=Olasilik)) + geom_line(color="red", size=1.5) +
       guides(fill=FALSE) +
       scale_x_continuous(breaks=seq(1, 81, 4))+
       ggtitle(paste("Kesikli Uniform Olasılık Kütle Fonksiyonu (PMF)","(a=",round(a,2),",","b=",b,")")) +
       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 Kesikli Uniform olasılık değerleri her plaka kodu bazında aşağıda verilmiştir. Görüleceği üzere 81 ilinde seçilme olasılığı eşittir.

[1] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
 [7] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[13] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[19] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[25] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[31] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[37] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[43] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[49] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[55] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[61] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[67] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[73] 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568 0.01234568
[79] 0.01234568 0.01234568 0.01234568

Şimdi de yukarıdaki R kod bloğundaki ilgi alan çalıştırılarak Kesikli Uniform olasılık değerlerini aşağıdaki grafiğe yansıtalım.

Kesikli Uniform Kümülatif Dağılım Fonksiyonu (CDF)

Kesikli Uniform 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 il örneğinden hareketle kümülatif dağılım fonksiyonu hesaplanmıştır.

a <- 1 # Alt sınır
b <- 81 # Üst sınır
n <- b - a + 1 # Noktaların sayısı: örneklem uzayındaki eleman sayısı
x <- a:b # Örneklem uzayı (a'nın değerinden b'nin değerine kadar olan tamsayılar.Yani örneklem uzayı= {1,2,4,5,...,81})
kdf <- (x-a+1)/n # Kümülatif dağılım fonksiyonu (CDF)
kdf

sonuc<-kdf %>% as_tibble() %>% mutate_if(is.numeric, round,8) %>%       mutate(Orneklem_Uzayı=1:81, Olasilik=as.numeric(value)) 
grafik<-sonuc[,-1] %>% ggplot(aes(x=Orneklem_Uzayı,y=Olasilik)) + geom_line(color="red", size=1.5) +
       guides(fill=FALSE) +
       scale_x_continuous(breaks=seq(1, 81, 4))+
       ggtitle(paste("Kesikli Uniform Kümülatif Dağılım Fonksiyonu (CDF)","(a=",round(a,2),",","b=",b,")")) +
       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 ve böyle olduğu da aşağıda görülmektedir.

 [1] 0.01234568 0.02469136 0.03703704 0.04938272 0.06172840 0.07407407
 [7] 0.08641975 0.09876543 0.11111111 0.12345679 0.13580247 0.14814815
[13] 0.16049383 0.17283951 0.18518519 0.19753086 0.20987654 0.22222222
[19] 0.23456790 0.24691358 0.25925926 0.27160494 0.28395062 0.29629630
[25] 0.30864198 0.32098765 0.33333333 0.34567901 0.35802469 0.37037037
[31] 0.38271605 0.39506173 0.40740741 0.41975309 0.43209877 0.44444444
[37] 0.45679012 0.46913580 0.48148148 0.49382716 0.50617284 0.51851852
[43] 0.53086420 0.54320988 0.55555556 0.56790123 0.58024691 0.59259259
[49] 0.60493827 0.61728395 0.62962963 0.64197531 0.65432099 0.66666667
[55] 0.67901235 0.69135802 0.70370370 0.71604938 0.72839506 0.74074074
[61] 0.75308642 0.76543210 0.77777778 0.79012346 0.80246914 0.81481481
[67] 0.82716049 0.83950617 0.85185185 0.86419753 0.87654321 0.88888889
[73] 0.90123457 0.91358025 0.92592593 0.93827160 0.95061728 0.96296296
[79] 0.97530864 0.98765432 1.00000000

Ş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.

Kesikli Uniforma Dağılımına Göre Örneklem Seçimi

Kesikli Uniform dağılımına uygun olarak yukarıdaki il örneğinden hareketle tekrarlı basit tesadüfi örneklem yöntemini kullanarak ve hesaplanan olasılık değerleri dikkate alınarak örneklem büyüklüğünün 1000 olduğu örneklem üretelim. Ardından üretilen bu örneklemin hem yoğunluk grafiğini hem de histogramı çizelim.

a <- 1 # Alt sınır
b <- 81 # Üst sınır
x <- a:b # Örneklem uzayı (a'nın değerinden b'nin değerine kadar olan tamsayılar.Yani örneklem uzayı (x)= {1,2,4,5,...,81})
orneklembuyuklugu<-1000

#yoğunluk grafiğini verecek olursak
set.seed(61)
ggdensity(sample(x, orneklembuyuklugu, replace=TRUE), xlab="Örneklem Uzayı",ylab="Yoğunluk",col="red")+
ggtitle(paste("Kesikli Uniform Örneklem Yoğunluk Grafiği","(x=",round(b,2),",","n=",orneklembuyuklugu,")"))+
theme(plot.title = element_text(hjust = 0.5))+
theme_igray()

#histogramı verecek olursak
set.seed(61)#değerleri sabitlemek için
kud<-tibble(Sayi=sample(x, orneklembuyuklugu, replace=TRUE))
ggplot(kud, aes(x=Sayi)) + 
geom_histogram(bins=50,binwidth=.4,fill = "blue", alpha = 0.7)+
xlab("Örneklem Uzayı")+
ylab("Sıklık")+
ggtitle(paste("Kesikli Uniform Örneklem Histogramı","(x=",round(b,2),",","n=",orneklembuyuklugu,")"))+
theme(plot.title = element_text(hjust = 0.5))+
theme_pander()

Kesikli uniform dağılımına uygun olarak çekilen örneklemin yoğunluk grafiğini verecek olursak R kod bloğundaki ilgili alan çalıştırıldığında aşağıdaki grafik elde edilmiş olacaktır.

Kesikli uniform dağılımına uygun olarak çekilen örneklemin histogramını ise R kod bloğundaki ilgili alan çalıştırıldığında aşağıdaki gibi grafik elde edilmiş olacaktır.

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

Öne çıkan

Binom Olasılık Dağılımı Üzerine Bir Vaka Çalışması: A Case Study on Binomial Probability Distribution

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.

  1. 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.
  2. 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)

  1. Bernoulli Dağılımı
  2. Kesikli Uniform Dağılımı
  3. Binom Dağılımı
  4. Poisson Dağılımı
  5. Negatif Binom Dağılımı
  6. Geometrik Dağılım
  7. Hipergeometrik Dağılımı

B) Sürekli Dağılımlar (Continuous Distributions)

  1. Normal Dağılım
  2. Tekbiçimli Uniform Dağılım
  3. Cauchy Dağılımı
  4. t Dağılımı
  5. F Dağılımı
  6. Ki-kare Dağılımı
  7. Üstel Dağılım
  8. Weibull Dağılımı
  9. Lognormal Dağılımı
  10. Birnbaum-Saunders
  11. Gamma Dağılımı
  12. Çift Üstel Dağılımı
  13. Güç Normal Dağılımı
  14. Güç Lognormal Dağılımı
  15. Tukey-Lambda Dağılımı
  16. Uç Değer Tip I Dağılımı
  17. 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,

  1. Yarışı 4 kez kazanma,
  2. Yarışı en az 4, en çok 9 defa kazanma,
  3. 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;

  1. Yarışı 4 kez kazanma olasılığı yaklaşık 0,140 (0,1387415)‘dır.
  2. Yarışı en az 4, en çok 9 defa kazanma olasılığı yaklaşık 0,92 (0.9171077)’dir.
  3. 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