단일 표본 비율 검정

R로 하는 가설 검정

Richie Cotton

Data Evangelist at DataCamp

1장 복습

  • 모집단 비율에 관한 주장이 타당한지 검토합니다.
  • 표본 통계량의 표준 오차는 부트스트랩 분포로 계산되었습니다.
  • 이를 이용해 표준화 검정 통계량을 계산하고,
  • p-값을 산출하였으며,
  • 어떤 가설이 더 타당한지 판단하였습니다.
  • 여기서는 부트스트랩 분포 없이 검정 통계량을 계산합니다.
R로 하는 가설 검정

비율의 표준화 검정 통계량

$p$: 모집단 비율 (미지의 모수)

$\hat{p}$: 표본 비율 (표본 통계량)

$p_{0}$: 가설 모집단 비율

$$ 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로 하는 가설 검정

더 간단한 표준 오차 계산

$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로 하는 가설 검정

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}$는 모평균과 모표준편차 추정에 모두 사용됩니다.
  • 이로 인해 모수 추정의 불확실성이 증가합니다.
  • t-분포는 정규 분포보다 꼬리가 두껍습니다.
  • 이는 추가적인 안전 여유를 제공합니다.
  • $\hat{p}$은 분자에만 나타나므로 z-점수를 사용해도 됩니다.
R로 하는 가설 검정

Stack Overflow 연령 범주

$H_{0}$: 30세 미만 SO 사용자 비율은 0.5이다.

$H_{A}$: 30세 미만 SO 사용자 비율은 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로 하는 가설 검정

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로 하는 가설 검정

z-점수 계산

$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로 하는 가설 검정

p-값 계산

정규 분포의 CDF. -2보다 작은 구간은 빨간색, 2보다 큰 구간은 초록색으로 표시됨. 왼쪽 꼬리 ("보다 작음")

p_value <- pnorm(z_score) 

오른쪽 꼬리 ("보다 큼")

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

양측 ("같지 않음")

p_value <- pnorm(z_score) + 
  pnorm(z_score, lower.tail = FALSE)
p_value <- 2 * pnorm(z_score)
0.000244
p_value <= alpha
TRUE
R로 하는 가설 검정

연습해 봅시다!

R로 하는 가설 검정

Preparing Video For Download...