Python ile Hipotez Testleri – Oran Testleri Bölüm – 3/3
Python ile Hipotez Testleri yazı serimin 3.kısmına hoş geldiniz. Bu bölümde size oran testlerinden bahsedeceğim. Eğer bu yazı serisinin diğer kısımlarını okumadıysanız aşağıdaki linklerden erişebilirsiniz:
Bölüm – 1: https://www.veribilimiokulu.com/python-ile-hipotez-testleri-parametrik-testler-bolum-1-3/
Bölüm – 2: https://www.veribilimiokulu.com/python-ile-hipotez-testleri-parametrik-olmayan-testler-bolum-2-3/
Oran testi, bir popülasyondan alınan bir örneğin tüm popülasyonun gerçek oranını temsil edip etmediğini test etmektedir.
One Proportion Z-Test
One Proportion Z-Testi sadece iki kategori varken, gözlemlenen oran ile beklenen olan oranın karşılaştırılmasında kullanılır.
Örneğimizde ise yarısı erkek yarısı dişi farelerden oluşan bir populasyonumuz var (p = 0.5 = %50). Bazı farelerde (n = 160) spontane kanser gelişmiştir. Kanser gelişen farelerin 95 tanesi erkek, 65 tanesi dişidir.
Araştırdığımız konu ise kanserin etkisinin erkeklerde dişilerden daha fazla olup olmadığıdır.
- başarı sayısı (kanserli erkek fare sayısı) 95
- erkek farelerin gözlemlenen oranı (p_o) 95/160
- dişi farelerin gözlemlenen oranı (q) 1 – p_0
- erkek farelerin beklenen oranı (p_e) 0.5 (%50)
- gözlem sayısı (n) 160
Hipotez Kurma
Örneğimiz için 3 farklı soru sorabiliriz:
- erkeklerin gözlemlenen oranı beklenen orana eşit midir?
- erkeklerin gözlemlenen oranı beklenen orandan küçük müdür?
- erkeklerin gözlemlenen oranı beklenen orandan büyük müdür?
İstatitsikte null hipotezlerini (H0) şu şeklide kurarız:
- H0:p0=pe
- H0:p0≤pe
- H0:p0≥pe
Bu null hipotezlerine karşılık gelen alternatif hipotezler ise şöyledir:
- Ha:p0≠pe (farklı)
- Ha:p0<pe (küçüktür)
- Ha:p0>pe (büyükdür)
Şimdi ise örneğimizi yapalım. Python’da oran testi yapmak için statsmodels kütüphanesi içindeki proportions_ztest
fonksiyonunu kullanacağız. Öncelikle gerekli kütüphaneleri ve proportions_ztest
fonksiyonumuzu yükleyelim
import pandas as pd import numpy as np from statsmodels.stats.proportion import proportions_ztest
Yükleme işlemlerimizi yaptıktan sonra testimizi yazabiliriz.
count = 95 nobs = 160 value = 0.5 stat, p = proportions_ztest(count, nobs, value, alternative = "two-sided")
Buradaki count
parametresi ile başarılı deneme sayısını belirtiyoruz. nobs
parametresi ile gözlem sayımızı belirtiyoruz. value
parametresi ile test etmek istediğimiz oranı belirtiyoruz. Bu oran bizim örneğimiz için 0.5’tir. alternative
parametresi ile alternatif hipotezimizin yönünü belirtiyoruz. Biz çift taraflı test yapmak istediğimiz için "two-sided"
değerini girdik.
Testimizin sonuçlarına baktığımızda p değerimiz 0.05’ten küçük olduğu için H0 hipotezini ret ediyoruz. Yani kanser etkisi, erkek farelerde dişilerdekinden daha fazladır.
Two-Proportions Z-Test
Two-Proportions Z-Testi iki tane oranı karşılaştırmak için kullanılır.
Örneğimizde ise bireylerden oluşan 2 tane grubumuz var: + Grup A, akciğer kanserli bireyler: n = 500 + Grup B, sağlıklı bireyler: n = 500
Herbir gruptaki sigara içen sayısı:
- Grup A’dan 490 birey sigara içiyor: 490/500 = %98
- Grup B’den 400 birey sigara içiyor: 400/500 = %80
Toplamda:
- Sigara içenlerin oranı: %89
- Sigara içmeyenlerin oranı: %11
Araştırmak istediğimiz şey ise iki gruptada sigara içenlerin oranının aynı olup olmadığıdır.
Hipotez Kurma
Örneğimiz için 3 farklı soru sorabiliriz:
- Grup A’daki sigara içenlerin gözlemlenen oranı Grup B’deki sigara içenlerin oranına eşit midir?
- Grup A’daki sigara içenlerin gözlemlenen oranı Grup B’deki sigara içenlerin oranınından küçük müdür?
- Grup A’daki sigara içenlerin gözlemlenen oranı Grup B’deki sigara içenlerin oranınından büyük müdür?
İstatitsikte null hipotezlerini (H0) şu şeklide kurarız:
- H0:pA=pB
- H0:pA≤pB
- H0:pA≥pB
Bu null hipotezlerine karşılık gelen alternatif hipotezler ise şöyledir:
- Ha:pA≠pB (farklı)
- Ha:pA<pB (küçüktür)
- Ha:pA>pB (büyükdür)
Şimdi ise örneğimizi yapalım. Two Proportion Z-Test’in One Proportion Z-Test’ten farkı ise iki tane oranımız olduğu için count
ve nobs
parametrelerini np.array()
içine yazacağız.
count = np.array([490, 400]) nobs = np.array([500, 500]) stat, p = proportions_ztest(count, nobs, alternative = "two-sided")
Testimizin sonuçlarına baktığımızda p değerimiz 0.05’ten küçük olduğu için H0 hipotezini ret ediyoruz. Yani Grup A’daki sigara içen oranı ile Grup B’deki sigara içen oranı birbirine eşit değildir.
Oran testlerinin de sonuna geldik.
Ayrıca Python ile Hipotez Testleri yazı serimizin sonuna geldik. Sonraki yazımızda görüşmek üzere, esen kalın…
Kaynak: https://newonlinecourses.science.psu.edu/statprogram/reviews/statistical-concepts/proportions
Kaynak: https://www.statsmodels.org/dev/generated/statsmodels.stats.proportion.proportions_ztest.html