वन-सैंपल प्रपोर्शन टेस्ट्स

Python में Hypothesis Testing

James Chapman

Curriculum Manager, DataCamp

Chapter 1 रिकैप

  • क्या किसी अज्ञात आबादी प्रपोर्शन पर किया गया दावा संभव है?

 

  1. बूटस्ट्रैप डिस्ट्रीब्यूशन से सैंपल स्टैटिस्टिक का स्टैंडर्ड एरर
  2. एक स्टैंडर्डाइज़्ड टेस्ट स्टैटिस्टिक निकालें
  3. p-value गणना करें
  4. तय करें कौन-सा हाइपोथेसिस सबसे उचित है

 

  • अब, बूटस्ट्रैप डिस्ट्रीब्यूशन बिना टेस्ट स्टैटिस्टिक निकालें
Python में Hypothesis Testing

प्रपोर्शन्स के लिए स्टैंडर्डाइज़्ड टेस्ट स्टैटिस्टिक

$p$: population proportion (अज्ञात population पैरामीटर)

$\hat{p}$: sample proportion (sample statistic)

$p_{0}$: मान्य population proportion

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

मान लें $H_{0}$ सही है, तब $p = p_{0}$, इसलिए

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

Python में Hypothesis Testing

स्टैंडर्ड एरर गणना सरल बनाना

$SE_{\hat{p}} = \sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}$ $\rightarrow$ $H_0$ के तहत, $SE_{\hat{p}}$ मान्य $p_0$ और sample size $n$ पर निर्भर है

मान लें $H_{0}$ सही है,

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

  • केवल sample जानकारी ($\hat{p}$ और $n$) और मान्य पैरामीटर ($p_{0}$) का उपयोग करता है
Python में Hypothesis Testing

z क्यों, t नहीं?

$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}$ से निकाला जाता है
    • $\bar{x}$ population mean का अनुमान है
    • $s$ population standard deviation का अनुमान है
    • पैरामीटर के अनुमान में अनिश्चितता $\uparrow$
  • t-distribution - normal distribution से मोटी टेल्स
  • $\hat{p}$ केवल न्यूमेरेटर में आता है, इसलिए z-scores पर्याप्त हैं
Python में Hypothesis Testing

Stack Overflow उम्र श्रेणियाँ

$H_{0}$: Stack Overflow पर 30 से कम उम्र के यूज़र का proportion $=0.5$

$H_{A}$: Stack Overflow पर 30 से कम उम्र के यूज़र का proportion $\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 में Hypothesis Testing

z के लिए वैरिएबल्स

p_hat = (stack_overflow['age_cat'] == 'Under 30').mean()
0.5356037151702786
p_0 = 0.50
n = len(stack_overflow)
2261
Python में Hypothesis Testing

z-score की गणना

$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 में Hypothesis Testing

p-value की गणना

नॉर्मल डिस्ट्रीब्यूशन का CDF. -2 से कम वाला हिस्सा लाल है और 2 से अधिक वाला हिस्सा हरा है. Left-tailed ("less than"):

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

Right-tailed ("greater than"):

p_value = 1 - norm.cdf(z_score)

Two-tailed ("not equal"):

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 में Hypothesis Testing

अभ्यास करते हैं!

Python में Hypothesis Testing

Preparing Video For Download...