標本分布とブートストラップ分布の比較

Rで学ぶサンプリング

Richie Cotton

Data Evangelist at DataCamp

コーヒーの対象サブセット

set.seed(19790801)
coffee_sample <- coffee_ratings %>%
  select(variety, country_of_origin, flavor) %>%
  rowid_to_column() %>% 
  slice_sample(n = 500)
glimpse(coffee_sample)
Rows: 500
Columns: 4
$ rowid             <int> 10, 278, 458, 622, 131, 385, 1292, 47, 904, 1020, 5...
$ variety           <chr> "Other", "Bourbon", NA, "Caturra", "Caturra", "Yell...
$ country_of_origin <chr> "Ethiopia", "Guatemala", "Colombia", "Thailand", "C...
$ flavor            <dbl> 8.58, 7.75, 7.75, 7.50, 8.00, 7.83, 7.17, 8.08, 7.3...
Rで学ぶサンプリング

コーヒー風味平均のブートストラップ

mean_flavors_1000 <- replicate(
  n = 1000,
  expr = coffee_sample %>%
    slice_sample(prop = 1, replace = TRUE) %>%
    summarize(mean_flavor = mean(flavor, na.rm = TRUE)) %>%
    pull(mean_flavor)
)
bootstrap_distn <- tibble(
  resample_mean = mean_flavors_1000
)
Rで学ぶサンプリング

平均風味のブートストラップ分布

 ggplot(bootstrap_distn, aes(resample_mean)) +
  geom_histogram(binwidth = 0.0025)

ブートストラップ分布のヒストグラム。

Rで学ぶサンプリング

標本・ブートストラップ・母集団の平均

標本平均

coffee_sample %>% 
  summarize(mean_flavor = mean(flavor)) %>% 
  pull(mean_flavor)
7.5163

推定母平均

bootstrap_distn %>% 
  summarize(mean_mean_flavor = mean(resample_mean)) %>% 
  pull(mean_mean_flavor)
7.5167

真の母平均

coffee_ratings %>% 
  summarize(mean_flavor = mean(flavor)) %>% 
  pull(mean_flavor)
7.5260
Rで学ぶサンプリング

平均の解釈

  • ブートストラップ分布の平均は、通常、標本平均とほぼ同じ。
  • ただし、母平均の良い推定とは限らない。
  • 標本と母集団の差によるバイアスは、ブートストラップでは補正できない。
Rで学ぶサンプリング

標本のsdとブートストラップ分布のsdの比較

標本標準偏差

coffee_focus %>% 
  summarize(sd_flavor = sd(flavor)) %>% 
  pull(sd_flavor)
0.3525

推定された母標準偏差は?

bootstrap_distn %>% 
  summarize(sd_mean_flavor = sd(resample_mean)) %>% 
  pull(sd_mean_flavor)
0.01572
Rで学ぶサンプリング

標本・ブートストラップ・母集団の標準偏差

標本標準偏差

coffee_focus %>% 
  summarize(sd_flavor = sd(flavor)) %>% 
  pull(sd_flavor)
0.3525

推定母標準偏差

standard_error <- bootstrap_distn %>%
  summarize(sd_mean_flavor = sd(resample_mean)) %>% 
  pull(sd_mean_flavor)
standard_error * sqrt(500)
0.3515

真の標準偏差

coffee_ratings %>%
  summarize(sd_flavor = sd(flavor)) %>%
  pull(sd_flavor)
0.3414

「標準誤差」は、関心のある統計量の標準偏差。

標準誤差 × 標本サイズの平方根 ≈ 母標準偏差の推定。

Rで学ぶサンプリング

標準誤差の解釈

  • 推定標準誤差は、標本統計量に対するブートストラップ分布の標準偏差。
  • ブートストラップ分布の標準誤差 × 標本サイズの平方根 ≈ 母標準偏差の推定。
Rで学ぶサンプリング

練習しましょう!

Rで学ぶサンプリング

Preparing Video For Download...