单样本比例检验

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 中的假设检验

为何用 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}$ 同时估计总体均值和总体标准差。
  • 这会增加总体参数估计的不确定性。
  • t 分布尾部比正态分布更厚。
  • 因此更保守。
  • $\hat{p}$ 只在分子中出现,所以用 z 分数即可。
R 中的假设检验

Stack Overflow 年龄分组

$H_{0}$:SO 用户中小于 30 岁的比例等于 0.5。

$H_{A}$:SO 用户中小于 30 岁的比例不等于 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...