Logo Logo
  • Ana Sayfa
  • Hakkında
  • Kategoriler
    • Genel
    • İstatistik
    • Makine Öğrenme
    • Model Geliştirme
    • Sağlık
    • Teknoloji
  • Tüm Yazılarım
  • İletişim

İletişim

  • Email buluttevfik@gmail.com

Site Haritası

  • Ana Sayfa
  • Hakkında
  • İletişim

Sosyal Medya Adresleri

Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python

  • ANA SAYFA
  • Blog Details
Eylül 5 2020
  • İstatistik

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 kesin olarak 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 Python programlama dili kullanılarak şans oyunlarından biri olan 01.08.2020 tarihinde yürürlüğe giren Çılgın (🤪) Sayısal Loto 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.

Çılgın Sayısal Loto kazanma olasılıklarının hesaplanmasında kesikli olasılık dağılımlarından biri olan 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.

Uygulama

Uygulamaya geçilmeden önce Pyhton’da yüklenmesi gereken kütüphaneleri veya modülleri aşağıda verelim. Uygulamalar Pyhton Jupyter notebook üzerinde yapılmıştır.

Yüklenmesi gereken modüller

from sympy.stats import Hypergeometric, density 

Örnek 1: Çılgın Sayısal Loto şans oyununda haznede 90 top bulunmaktadır. İçerisinden iadesiz seçilen 6 toptan sırasıyla 2, 3, 4, 5 ve 6 bilene ikramiye verilmektedir. Not: 5+1 kazanma olasılığı hesaplama dışında bırakılmıştır. 5+1 kazanma olasılığı bir sonraki örnekte hesaplanacaktır.

İstenenler

  1. Çılgın Sayısal Loto şans oyunu olasılık fonksiyonunu bulunuz.
  2. Çılgın Sayısal Loto şans oyununda sırasıyla 2, 3, 4, 5 ve 6 kazanma olasılıklarını alternatif çözümle birlikte hesaplayınız.

Bilinenler

  • N= 90 (Anakütledeki eleman sayısı)
  • x= 2’den 6’ya kadar (dahil) (Örneklemdeki başarı sayısı)
  • m=6 (Popülasyondaki başarı sayısı)
  • n= 6 (Örneklem hacmi)

Çözüm

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

2. Çılgın Sayısal Loto şans oyununda sırasıyla 2, 3, 4, 5 ve 6 kazanma olasılıkları aşağıda yazılan Python kod bloğunda hesaplanmıştır. Ancak burada 2’den 6’ya kadar olan tüm kazanma olasılıkları anlaşılması adına ayrı ayrı Python kod bloklarında verilmiştir. İlk olarak 6 kazanma olasılığını hesapladıktan sonra daha kolay anlaşılması için çarpmaya göre tersini verelim.

#6 kazanma olasılığı
Cilgin = Hypergeometric('Cilgin', 90, 6, 6) # Çılgın Sayısal Loto
olasilik1=density(Cilgin).dict[6]
print("6 Kazanma Olasılığı=", round(1/olasilik1,3),"'da 1'dir.")

Yukarıdaki kod bloğunun çalıştırılmasından sonra elde edilen 6 kazanma olasılığı= 622.614.630,0’da 1 olup, aşağıda verilmiştir.

6 Kazanma Olasılığı= 622614630.0 'da 1'dir.

5 kazanma olasılığı ise aşağıdaki kod bloğunda verilmiştir.

#5 kazanma olasılığı
Cilgin = Hypergeometric('Cilgin', 90, 6, 6) # Çılgın Sayısal Loto
olasilik1=density(Cilgin).dict[5]
print("5 Kazanma Olasılığı=", round(1/olasilik1,3),"'de 1'dir.")

Yukarıdaki kod bloğunun çalıştırılmasından sonra elde edilen 5 kazanma olasılığı= 1.235.346,488 ‘de 1 olup, aşağıda verilmiştir.

5 Kazanma Olasılığı= 1235346.488 'de 1'dir.

4 kazanma olasılığı ise aşağıdaki kod bloğunda verilmiştir.

#4 kazanma olasılığı
Cilgin = Hypergeometric('Cilgin', 90, 6, 6) # Çılgın Sayısal Loto
olasilik1=density(Cilgin).dict[4]
print("4 Kazanma Olasılığı=", round(1/olasilik1,3),"'te 1'dir.")

Yukarıdaki kod bloğunun çalıştırılmasından sonra elde edilen 4 kazanma olasılığı= 11.906,954’te 1 olup, aşağıda verilmiştir.

4 Kazanma Olasılığı= 11906.954 'da 1'dir.

3 kazanma olasılığı ise aşağıdaki kod bloğunda verilmiştir.

#3 kazanma olasılığı
Cilgin = Hypergeometric('Cilgin', 90, 6, 6) # Çılgın Sayısal Loto
olasilik1=density(Cilgin).dict[3]
print("3 Kazanma Olasılığı=", round(1/olasilik1,3),"'da 1'dir.")

Yukarıdaki kod bloğunun çalıştırılmasından sonra elde edilen 3 kazanma olasılığı= 326,715’te 1 olup, aşağıda verilmiştir.

3 Kazanma Olasılığı= 326.715 'te 1'dir.

2 kazanma olasılığı ise aşağıdaki kod bloğunda verilmiştir.

#2 kazanma olasılığı
Cilgin = Hypergeometric('Cilgin', 90, 6, 6) # Çılgın Sayısal Loto
olasilik1=density(Cilgin).dict[2]
print("2 Kazanma Olasılığı=", round(1/olasilik1,3),"'de 1'dir.")

Yukarıdaki kod bloğunun çalıştırılmasından sonra elde edilen 2 kazanma olasılığı= 21,512 ‘te 1 olup, aşağıda verilmiştir.

2 Kazanma Olasılığı= 21.512 'de 1'dir.

Alternatif çözüm

Yukarıda görüleceği üzere Çılgın Sayısal Loto şans oyununda sırasıyla 2, 3, 4, 5 ve 6 kazanma olasılıklarını yazılan Python kod bloklarında sırasıyla hesaplanmıştır. Ancak hem zamandan kazanmak hem de Hypergeometric() fonksiyonu yerine math.factorial() fonksiyonu kullanarak, diğer bir ifadeyle faktöriyelleri kullanarak daha pratik hareket edelim. Böylece çoğumuzun aşina olduğu faktöriyeller üzerinden giderek ve for döngüsü oluşturarak Hipergeometrik olasılık konusunu daha kalıcı hale getirelim. İlk olarak aşağıdaki Python kod bloğundan kütüphanemizi yükleyelim.

import math 

Şimdi Çılgın Sayısal Loto şans oyununda sırasıyla 2, 3, 4, 5 ve 6 kazanma olasılıklarını hesaplamada for döngüsü (for loop)’nü kullandığım aşağıdaki Python kod bloğunda verelim.

N=90 #Anakütledeki eleman sayısı
n=6  #Örneklem hacmi
m=6  #Popülasyondaki başarı sayısı
x=[2,3,4,5,6] #Örneklemdeki başarı sayıları

uzunluk = len(x)

for i in range(uzunluk):
    pay1=math.factorial(m)/(math.factorial(m-x[i])*math.factorial(x[i]))
    pay2=math.factorial(N-m)/(math.factorial(N-m-n+x[i])*math.factorial(n-x[i]))
    payda=math.factorial(N)/(math.factorial(N-n)*math.factorial(n))
    sonuc=float(pay1*pay2/payda)
    print(x[i],"Kazanma Olasılığı:", f"{sonuc:.20f}","; [",round(1/sonuc,3),"'de 1'dir.","]")

Yukarıdaki kod bloğunun çalıştırılmasından sonra Çılgın Sayısal Loto şans oyununda sırasıyla 2, 3, 4, 5 ve 6 kazanma olasılıkları aşağıda verilmiştir.

2 Kazanma Olasılığı: 0.04648543995826118214 ; [ 21.512 'de 1'dir. ]
3 Kazanma Olasılığı: 0.00306076970918592144 ; [ 326.715 'de 1'dir. ]
4 Kazanma Olasılığı: 0.00008398453470327223 ; [ 11906.954 'de 1'dir. ]
5 Kazanma Olasılığı: 0.00000080948949111588 ; [ 1235346.488 'de 1'dir. ]
6 Kazanma Olasılığı: 0.00000000160612994269 ; [ 622614630.0 'de 1'dir. ]

Örnek 2: Çılgın Sayısal Loto şans oyununda haznede 90 top bulunmaktadır. İçerisinden iadesiz seçilen 7 toptan 5 + 1 bilene de ikramiye verilmektedir.

İstenenler

  1. Çılgın Sayısal Loto şans oyununda 5+1 kazanma olasılığını alternatif çözümü ile birlikte hesaplayınız ve eşitliğini bulunuz.

Bilinenler

  • N= 90 (Anakütledeki eleman sayısı)
  • x= 6 (Örneklemdeki başarı sayısı)
  • m=6 (Popülasyondaki başarı sayısı)
  • n= 7 (Örneklem hacmi)

Çözüm

  1. Çılgın Sayısal Loto şans oyununda 5 +1 kazanma olasılığı aşağıda yazılan Python kod bloğunda hesaplanmıştır.
#5+1 kazanma olasılığı
Cilgin = Hypergeometric('Cilgin', 90, 6, 7) # Çılgın Sayısal Loto
olasilik1=density(Cilgin).dict[6]
print("5+1 Kazanma Olasılığı=", round(1/olasilik1,3),"'te 1'dir.")

Yukarıdaki kod bloğunun çalıştırılmasından sonra elde edilen 5 +1 kazanma olasılığı= 88.944.947,143’te 1 olup, aşağıda verilmiştir.

5+1 Kazanma Olasılığı= 88944947.143 'te 1'dir.

Çözümü eşitlik üzerinde de göstermek de fayda var. 5 + 1 kazanma olasılığında Hipergeometrik olasılık eşitliğimiz çözümü ile birlikte şöyle olacaktır:

Eşitlikte hesaplanan olasılık değeri kolay ifade edilebilsin diye çarpmaya göre tersi alınmıştır.

Alternatif çözüm

Yukarıda biz Çılgın Sayısal Loto şans oyununda 5 +1 kazanma olasılığını Hypergeometric() fonksiyonu kullanarak hesaplamıştık. Şimdi math.factorial() fonksiyonu kullanarak, diğer bir ifadeyle çoğumuzun aşina olduğu faktöriyelleri kullanarak 5 + 1 kazanma olasılığını aşağıda yazdığım Python kod bloğunda hesaplayalım. Bir önceki alternatif çözümde kütüphane yüklendiği için burada ayrıca yüklenecek kütüphane adı verilmemiştir.

#5 + 1 Kazanma olasılığı
N=90 #Anakütledeki eleman sayısı
n=7  #Örneklem hacmi
m=6  #Popülasyondaki başarı sayısı
x=6  #Örneklemdeki başarı sayısı

pay1=math.factorial(m)/(math.factorial(m-x)*math.factorial(x))
pay2=math.factorial(N-m)/(math.factorial(N-m-n+x)*math.factorial(n-x))
payda=math.factorial(N)/(math.factorial(N-n)*math.factorial(n))
sonuc=float(pay1*pay2/payda)
print("5 + 1 Kazanma Olasılığı:", f"{sonuc:.20f}","; [",round(1/sonuc,3),"'te 1'dir.","]")

Yukarıdaki kod bloğunun çalıştırılmasından sonra elde edilen 5 +1 kazanma olasılığı aşağıda verilmiştir.

5 + 1 Kazanma Olasılığı: 0.00000001124290959883 ; [ 88944947.143 'te 1'dir. ]

Özetle kesikli olasılık dağılımlarından biri olan Hipergeometrik olasılık dağılımı kullanılarak hesaplanan Çılgın Sayısal Loto ikramiye kazanma olasılıkları kategorilere göre aşağıda verilmiştir. Ortaya konulan bulgulara göre 90 sayı içerisinde;

  • 6 bilme şansınız 622.614.630,0’da 1’dir.
  • 5 +1 bilme şansınız 88.944.947,143’te 1’dir.
  • 5 bilme şansınız 1.235.346,488 ‘de 1’dir.
  • 4 bilme şansınız 11.906,954’te 1’dir.
  • 3 bilme şansınız 326,715’te 1’dir.
  • 2 bilme şansınız 21,51’te 1’dir.

Ortaya konulan araştırma bulguları Çılgın Sayısal Loto kazanma olasılıklarının Sayısal Loto kazanma olasılıklarından çok daha düşük olduğunu göstermektedir. Aşağıdaki linkten yaptığım çalışmada karşılaştırma sonuçlara ulaşabilirsiniz.

Şans Oyunları Perspektifinden Olasılık

Sonuç olarak Python’da yapılan bu çalışmayla olasılık teorisindeki kesikli olasılık dağılımlarından biri olan Hipergeometrik olasılık dağılımı kullanılarak şans oyunları özelinde olasılık teorisine dikkat çekilmeye çalışılmıştır.

Yukarıda yapılan işlemler R programlama dili kullanarak geliştirdiğim shiny web uygulamam üzerinde de hesaplanabilir. Linki aşağıda paylaşıyorum.

Hipergeometrik Olasılık Hesaplayıcı. 01.09.2020. https://buluttevfik.shinyapps.io/HypergeometricProbabilityCalculator/

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Yararlanılan Kaynaklar

  • https://tevfikbulut.com/2020/08/30/hipergeometrik-olasilik-dagilimi-uzerine-bir-vaka-calismasi-a-case-study-on-hypergeometric-probability-distribution/
  • https://www.python.org/
  • https://docs.sympy.org/latest/modules/stats.html#sympy.stats.Binomial
  • https://docs.sympy.org/latest/modules/concrete.html
  • https://tevfikbulut.com/2020/08/02/sans-oyunlari-perspektifinden-olasilik-probability-from-the-perspective-of-chance-games/
  • https://tevfikbulut.com/2020/08/19/sans-oyunlari-perspektifinden-olasilik-ii-probability-from-perspective-of-the-chance-games-ii/
  • https://tevfikbulut.com/2020/07/26/bernoulli-dagilimi-uzerine-bir-vaka-calismasi-a-case-study-on-the-bernoulli-distribution/
  • The R Project for Statistical Computing. https://www.r-project.org/
  • https://en.wikipedia.org/wiki/Lottery_mathematics#Choosing_6_from_49
  • http://www.imatheq.com/imatheq/com/imatheq/math-equation-editor.html
Önceki yazı Sonraki Yazı
Chance GamesÇılgın Sayı LotoÇılgın Sayısal Loto Kazanma OlasılıklarıKombinasyonOlasılıkOlasılık TeorisiProbabilityPythonŞans Oyunları

2 Comments

Ahmet Aksoy
Eylül 5, 2020

60 top içinde 19 rakam seçer isek ve bu seçtiğimiz 19 toptan
1- 6 sayiyi tuturursak, ayni zamanda kaç adet 5, kaç adet 4, kaç adet 3, kaç adet 2 bilmiş oluruz.

2- 5 sayıyı tuturursak, aynı şekilde kaç adet 5, kaç adet 4, kaç adet 3, kaç adet 2 bilmiş oluruz.

3- 4 sayıyı tutursak, aynı şekilde kaç adet 4, kaç adet 3 ve kaç adet 2 bilmiş oluruz.

4- 3 sayiyi tutursak, kaç adet 3 ,kaç adet 2 tutururuz.
Simdiden cevap icin Teşekkürler….

Reply
    Tevfik BULUT
    Eylül 5, 2020

    Öncelikle sorunuz için teşekkür ederim Ahmet Bey. Aslında cevap içerisinde ilkinden başlayalım 6 sayiyi tutturursanız 6 sayi kadar bilirsiniz. Çünkü zaten 6 tutturabilmeniz 1….n (6)’e kadar bilmeniz gerekir ki bu durumda zaten diğer sayıları da bilmiş oluyorsunuz. İkinci ve diğer durumlarda da benzer bir durum söz konusudur. Yani ikinci durumda da 5 sayı kadar bilmeniz gerekir. Kolaylıklar dilerim.

    Reply

Yorum Yaz Cevabı iptal et

Son Yazılar

  • Kanada Sağlık Sisteminde Bekleme Süreleri
  • Araştırma Metodolojisi Notları-II
  • Araştırma Metodolojisi Notları-I
  • Microsoft Excel’de Bulut Endeks-Beta [BE-β] Simülasyonu
  • R’da Statik ve Dinamik Haritalama Vaka Çalışmaları: Türkiye Örneği

Son Yorumlar

  1. Küresel İnovasyon Endeksi 2021 Yılı Raporu ve Türkiye - winally.com - Küresel İnovasyon Endeksi’nde Türkiye Ne Durumda?
  2. R’da Birliktelik Kuralları | canözkan - Apriori Algoritması Üzerine Bir Vaka Çalışması: A Case Study on Apriori Algorithm
  3. Tevfik BULUT - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  4. Ahmet Aksoy - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  5. Tevfik BULUT - Z Tablosuna Göre Güven Aralığının Hesaplanmasına Yönelik Bir Simülasyon Çalışması: A Simulation Study for Calculating Confidence Interval by Z Table

Arşivler

  • Ocak 2023
  • Ekim 2022
  • Eylül 2022
  • Nisan 2022
  • Mart 2022
  • Ekim 2021
  • Eylül 2021
  • Ağustos 2021
  • Temmuz 2021
  • Haziran 2021
  • Mayıs 2021
  • Nisan 2021
  • Şubat 2021
  • Ocak 2021
  • Aralık 2020
  • Kasım 2020
  • Ekim 2020
  • Eylül 2020
  • Ağustos 2020
  • Temmuz 2020
  • Haziran 2020
  • Mayıs 2020
  • Nisan 2020
  • Mart 2020
  • Şubat 2020
  • Ocak 2020
  • Aralık 2019
  • Kasım 2019
  • Ekim 2019
  • Eylül 2019
  • Ağustos 2019
  • Mayıs 2019
  • Şubat 2019
  • Aralık 2018
  • Eylül 2018
  • Ağustos 2018
  • Temmuz 2018
  • Mayıs 2018
  • Nisan 2018
  • Ekim 2017
  • Temmuz 2017
  • Haziran 2017
  • Mayıs 2017
  • Ocak 2017

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Etiketler

Accuracy Basit Tesadüfi Örnekleme Bernoulli Olasılık Dağılımı Confusion Matrix Coronavirus Doğruluk Doğruluk Oranı Dünya Sağlık Örgütü EDA Epidemi Epidemiyology Epidemiyoloji Exploratory Data Analysis Exploratory Data Analysis (EDA) F1 Forecast Keşifsel Veri Analizi Kitle Olasılık Fonksiyonu Koronavirüs Koronavirüs Salgını Olasılık Olasılıklı Örneklem OSB Pandemi Point Estimation Point Forecast Prevalance Prevalans Probability Sampling R Recall Salgın Sağlık Bakanlığı Simple Random Sampling Tahmin TBATS TURKEY TÜRKİYE Veri Madenciliği WHO World Health Organization Yapay Zeka ÇKKV Örneklem Örneklem Büyüklüğü
Logo

Burada, gazete ve dergilerde yayınlanan çalışmalarımın tamamı çalışmakta olduğum kurumdan bağımsız olarak özel hayatımda yaptığım çalışmalardır. Dolayısıyla, burada yer alan çalışmalardan emeğe saygı adına kaynak gösterilmesi suretiyle azami ölçüde herkes yararlanabilir.

Site Haritası

  • Ana Sayfa
  • Hakkında
  • Blog
  • İletişim

Linkler

  • winally.com

Bana Ulaşın

Bu sayfa, bazı temel bilgilerin ve bir iletişim formunun yer aldığı bir iletişim sayfasıdır. Suç teşkil edecek, yasadışı, tehditkar, rahatsız edici, hakaret ve küfür içeren, aşağılayıcı, küçük düşürücü, kaba, müstehcen, ahlaka aykırı, kişilik haklarına zarar verici ya da benzeri niteliklerde içeriklerden doğan her türlü mali, hukuki, cezai, idari sorumluluk içeriği gönderen Kişilere aittir.

  • Email: buluttevfik@gmail.com

© Copyright 2022 Tevfik Bulut