假设检验与z分数

R 中的假设检验

Richie Cotton

Data Evangelist at DataCamp

A/B测试

  • Electronic Arts(EA)是一家游戏公司。
  • 2013年发布了《模拟城市5》。
  • 目标是提高游戏的预购量。
  • 他们用A/B测试评估不同广告方案。
  • 即将用户分为"对照组"和"实验组"。

EA大楼

1 图片来源:"Electronic Arts" by majaX1 CC BY-NC-SA 2.0
R 中的假设检验

零售网页A/B测试

对照组

SimCity网页,横幅写着"预购并在下次购买立减$20"

实验组

无横幅的SimCity网页

R 中的假设检验

A/B测试结果

  • 实验组(无广告)的购买量比对照组(有广告)高43.4%。
  • "展示广告会提升销量"的直觉完全错误。
  • 该结果是统计显著还是偶然?
  • 需要EA的数据来判断。
  • 可结合《Sampling in R》和本课程的方法完成。
R 中的假设检验

Stack Overflow 开发者调查 2020

library(dplyr)
glimpse(stack_overflow)
Rows: 2,261
Columns: 8
$ respondent         <dbl> 36, 47, 69, 125, 147, 152, 166, 170, 187, 196, 221,…
$ age_first_code_cut <chr> "adult", "child", "child", "adult", "adult", "adult…
$ converted_comp     <dbl> 77556, 74970, 594539, 2000000, 37816, 121980, 48644…
$ job_sat            <fct> Slightly satisfied, Very satisfied, Very satisfied,…
$ purple_link        <chr> "Hello, old friend", "Hello, old friend", "Hello, o…
$ age_cat            <chr> "At least 30", "At least 30", "Under 30", "At least…
$ age                <dbl> 34, 53, 25, 41, 28, 30, 28, 26, 43, 23, 24, 35, 37,…
$ hobbyist           <chr> "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "Ye…
R 中的假设检验

关于均值的假设

一个假设:

数据科学家总体的年均薪酬为 $110,000。

点估计(样本统计量):

mean_comp_samp <- mean(stack_overflow$converted_comp)
mean_comp_samp <- stack_overflow %>% 
  summarize(mean_compensation = mean(converted_comp)) %>% 
  pull(mean_compensation)
119574.7
R 中的假设检验

生成自助法分布

# 步骤3:多次重复步骤1和2
so_boot_distn <- replicate(
  n = 5000,
  expr = {
    # 步骤1:重抽样
    stack_overflow %>%
      slice_sample(prop = 1, replace = TRUE) %>%
      # 步骤2:计算点估计
      summarize(mean_compensation = mean(converted_comp)) %>% 
      pull(mean_compensation)
  }
)
1 自助法分布见《Sampling in R》第4章
R 中的假设检验

可视化自助法分布

tibble(resample_mean = so_boot_distn) %>%
  ggplot(aes(resample_mean)) +
  geom_histogram(binwidth = 1000)

自助法分布的直方图——钟形,范围约在110000到140000之间

R 中的假设检验

标准误

std_error <- sd(so_boot_distn)
5511.674
R 中的假设检验

z分数

$\text{标准化值} = \dfrac{\text{值} - \text{均值}}{\text{标准差}}$

$z = \dfrac{\text{样本统计量} - \text{假设参数值}}{\text{标准误}}$

$z = \dfrac{\$119,574.7 - \$110,000}{\$5511.67} = 1.737$

mean_comp_samp
119574.7
mean_comp_hyp <- 110000
std_error
5511.674
z_score <- (mean_comp_samp - mean_comp_hyp) / std_error
1.737171
R 中的假设检验

检验该假设

  • 1.737171是高还是低?
  • 本课程将回答这个问题!
假设检验用例:

判断样本统计量是否接近或远离期望(或"假设")值。

R 中的假设检验

标准正态(z)分布

标准正态分布:均值为0、标准差为1的正态分布。

tibble(x = seq(-4, 4, 0.01)) %>% 
  ggplot(aes(x)) +
  stat_function(fun = dnorm) +
  ylab("PDF(x)")

标准正态分布PDF的密度图

R 中的假设检验

Passons à la pratique !

R 中的假设检验

Preparing Video For Download...