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

R में Hypothesis Testing

Richie Cotton

Data Evangelist at DataCamp

Chapter 1 का पुनरावलोकन

  • क्या किसी अज्ञात पॉप्युलेशन प्रोपोर्शन का दावा सम्भव है?
  • बूटस्ट्रैप डिस्ट्रीब्यूशन से सैंपल स्टैटिस्टिक का स्टैंडर्ड एरर निकाला.
  • इससे एक स्टैंडर्डाइज़्ड टेस्ट स्टैटिस्टिक निकाला गया, ...
  • जिससे p-value निकाली गई, ...
  • जिससे तय किया गया कि कौन-सी हाइपोथेसिस तर्कसंगत है.
  • यहाँ हम बूटस्ट्रैप डिस्ट्रीब्यूशन के बिना ही टेस्ट स्टैटिस्टिक निकालेंगे.
R में Hypothesis Testing

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

$p$: population proportion (अज्ञात population parameter)

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

$p_{0}$: hypothesized population proportion

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

यदि $H_{0}$ सत्य है, तो $p = p_{0}$, अतः

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

R में Hypothesis Testing

आसान standard error कैलकुलेशन

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

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

मान लें $H_{0}$ सत्य है,

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

यह केवल सैंपल जानकारी ($\hat{p}$ और $n$) और हाइपोथेसाइज़्ड पैरामीटर ($p_{0}$) का उपयोग करता है.

R में Hypothesis Testing

t की जगह 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}$ से निकाला जाता है, इसलिए $\bar{x}$ से पॉप्युलेशन mean और पॉप्युलेशन standard deviation दोनों का अनुमान होता है.
  • इससे पॉप्युलेशन पैरामीटर के अनुमान में अनिश्चितता बढ़ती है.
  • t-distribution की टेल्स normal distribution से मोटी होती हैं.
  • इससे अतिरिक्त सावधानी मिलती है.
  • $\hat{p}$ सिर्फ न्यूमेरेटर में आता है, इसलिए z-scores ठीक हैं.
R में Hypothesis Testing

Stack Overflow आयु श्रेणियाँ

$H_{0}$: 30 से कम उम्र वाले SO यूज़र्स का proportion 0.5 के बराबर है.

$H_{A}$: 30 से कम उम्र वाले SO यूज़र्स का proportion 0.5 के बराबर नहीं है.

alpha <- 0.01
stack_overflow %>% 
  count(age_cat)
# A tibble: 2 x 2
  age_cat         n
  <chr>       <int>
1 At least 30  1050
2 Under 30     1216
R में Hypothesis Testing

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

p_hat <- stack_overflow %>%
  summarize(prop_under_30 = mean(age_cat == "Under 30")) %>%
  pull(prop_under_30)
0.5366
p_0 <- 0.50
n <- nrow(stack_overflow)
2266
R में Hypothesis Testing

z-score की गणना

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

numerator <- p_hat - p_0
denominator <- sqrt(p_0 * (1 - p_0) / n)
z_score <- numerator / denominator
3.487
R में Hypothesis Testing

p-value की गणना

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

p_value <- pnorm(z_score) 

राइट-टेल्ड ("greater than")

p_value <- pnorm(z_score, lower.tail = FALSE)

टू-टेल्ड ("not equal")

p_value <- pnorm(z_score) + 
  pnorm(z_score, lower.tail = FALSE)
p_value <- 2 * pnorm(z_score)
0.000244
p_value <= alpha
TRUE
R में Hypothesis Testing

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

R में Hypothesis Testing

Preparing Video For Download...