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:pApB
  • H0:pApB

Bu null hipotezlerine karşılık gelen alternatif hipotezler ise şöyledir:

  • Ha:pApB (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

Yazar Hakkında
Toplam 10 yazı
Alperen Balık
Alperen Balık
Yıldız Teknik Üniversitesi İstatistik Bölümü Mezunu. Veri Bilimcisi. İlgilendiği alanlar; Makine Öğrenmesi, Dashboard Tasarlama, Yazılım Geliştirme
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara