Tek örneklem oran testleri

Python'da Hipotez Testi

James Chapman

Curriculum Manager, DataCamp

Bölüm 1 özet

  • Bilinmeyen bir anakütle oranına dair iddia makul mü?

 

  1. Bootstrap dağılımından örnek istatistiğinin standart hatası
  2. Standartlaştırılmış bir test istatistiği hesaplayın
  3. Bir p-değeri hesaplayın
  4. Hangi hipotezin daha mantıklı olduğuna karar verin

 

  • Şimdi, test istatistiğini bootstrap dağılımı olmadan hesaplayın
Python'da Hipotez Testi

Oranlar için standartlaştırılmış test istatistiği

$p$: anakütle oranı (bilinmeyen anakütle parametresi)

$\hat{p}$: örnek oranı (örnek istatistiği)

$p_{0}$: varsayılan anakütle oranı

$$ z = \frac{\hat{p} - \text{mean}(\hat{p})}{\text{SE}(\hat{p})} = \frac{\hat{p} - p}{\text{SE}(\hat{p})} $$

$H_{0}$ doğru ise, $p = p_{0}$, dolayısıyla

$$ z = \dfrac{\hat{p} - p_{0}}{\text{SE}(\hat{p})} $$

Python'da Hipotez Testi

Standart hata hesaplarını sadeleştirme

$SE_{\hat{p}} = \sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}$ $\rightarrow$ $H_0$ altında, $SE_{\hat{p}}$ varsayılan $p_0$ ve örneklem büyüklüğü $n$'e bağlıdır

$H_{0}$ doğru kabul edilirse,

$z = \dfrac{\hat{p} - p_{0}}{\sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}}$

  • Yalnızca örnek bilgisi ($\hat{p}$ ve $n$) ile varsayılan parametreyi ($p_{0}$) kullanır
Python'da Hipotez Testi

Neden t yerine z?

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

  • $s$, $\bar{x}$'ten hesaplanır
    • $\bar{x}$ anakütle ortalamasını tahmin eder
    • $s$ anakütle standart sapmasını tahmin eder
    • parametre tahminimizde belirsizlik artar
  • t-dağılımı - normal dağılıma göre daha kalın kuyruklar
  • $\hat{p}$ sadece payda görünür, bu yüzden z-skorları uygundur
Python'da Hipotez Testi

Stack Overflow yaş kategorileri

$H_{0}$: Stack Overflow kullanıcılarının otuz altı yaş oranı $=0.5$

$H_{A}$: Stack Overflow kullanıcılarının otuz altı yaş oranı $\neq0.5$

alpha = 0.01
stack_overflow['age_cat'].value_counts(normalize=True)
Under 30       0.535604
At least 30    0.464396
Name: age_cat, dtype: float64
Python'da Hipotez Testi

z için değişkenler

p_hat = (stack_overflow['age_cat'] == 'Under 30').mean()
0.5356037151702786
p_0 = 0.50
n = len(stack_overflow)
2261
Python'da Hipotez Testi

z-skorunu hesaplama

$z = \dfrac{\hat{p} - p_{0}}{\sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}}$

import numpy as np
numerator = p_hat - p_0
denominator = np.sqrt(p_0 * (1 - p_0) / n)
z_score = numerator / denominator
3.385911440783663
Python'da Hipotez Testi

p-değerini hesaplama

Normal dağılımın KDA'sı. -2'den küçük kısım kırmızı, 2'den büyük kısım yeşil. Sol kuyruk ("küçüktür"):

from scipy.stats import norm
p_value = norm.cdf(z_score)

Sağ kuyruk ("büyüktür"):

p_value = 1 - norm.cdf(z_score)

Çift kuyruk ("eşit değil"):

p_value = norm.cdf(-z_score) + 
  1 - norm.cdf(z_score)
p_value = 2 * (1 - norm.cdf(z_score))
0.0007094227368100725
p_value <= alpha
True
Python'da Hipotez Testi

Ayo berlatih!

Python'da Hipotez Testi

Preparing Video For Download...