標本抽出と点推定

Rで学ぶサンプリング

Richie Cotton

Data Evangelist at DataCamp

フランスの人口を推定する

フランスの地図。

国勢調査は各世帯に居住人数を尋ねます。

Rで学ぶサンプリング

フランスには人が多い

人のアイコンがあるフランスの地図。

国勢調査はとても高コストです。

Rで学ぶサンプリング

世帯の抽出調査

一部の人が強調表示されたフランスの地図。

少数の世帯にだけ尋ね、統計で全体を推定する方が安上がりです。

母集団の一部で作業することを「標本抽出」と呼びます。

Rで学ぶサンプリング

母集団 vs. 標本

「母集団」はデータ全体です。

  • 人だけを指す必要はありません。
  • 母集団の全体像は通常わかりません。

「標本」は計算に使うデータの部分集合です。

Rで学ぶサンプリング

コーヒー評価データセット

total_cup_points variety country_of_origin aroma flavor aftertaste body balance
90.58 NA Ethiopia 8.67 8.83 8.67 8.50 8.42
89.92 Other Ethiopia 8.75 8.67 8.50 8.42 8.42
... ... ... ... ... ... ... ...
73.75 NA Vietnam 6.75 6.67 6.5 6.92 6.83
  • 各行はコーヒー1点を表します。
  • 1138行。
  • これを母集団とみなします。
Rで学ぶサンプリング

点数 vs. 風味:母集団

pts_vs_flavor_pop <- coffee_ratings %>% 
  select(total_cup_points, flavor)
dim(pts_vs_flavor_pop)
1338    2
     total_cup_points flavor
1               90.58   8.83
2               89.92   8.67
3               89.75   8.50
4               89.00   8.58
...              ...     ...
1335            78.08   7.67
1336            77.17   7.33
1337            75.08   6.83
1338            73.75   6.67
Rで学ぶサンプリング

点数 vs. 風味:10行の標本

pts_vs_flavor_samp <- coffee_ratings %>% 
  select(total_cup_points, flavor) %>%
  slice_sample(n = 10)
dim(pts_vs_flavor_samp)
10  2
   total_cup_points flavor
1             82.25   7.58
2             83.50   7.67
3             80.50   7.17
4             79.33   7.17
5             83.83   7.58
6             84.17   7.75
7             83.67   8.17
8             81.92   7.50
9             82.67   7.58
10            83.42   7.67
Rで学ぶサンプリング

Base R のサンプリング

データフレームには slice_sample()、ベクトルには sample() を使います。

cup_points_samp <- sample(coffee_ratings$total_cup_points, size = 10)
88.25 83.83 83.17 82.67 84.67 83.42 73.67 86.00 81.58 80.92
Rで学ぶサンプリング

母数と点推定

「母数」は母集団データで計算した値です。

mean(pts_vs_flavor_pop$total_cup_points)
82.15

「点推定」または「標本統計量」は標本データで計算した値です。

mean(cup_points_samp)
82.82
Rで学ぶサンプリング

dplyr での点推定

pts_vs_flavor_pop %>% 
  summarize(mean_flavor = mean(flavor)) 
  mean_flavor
1       7.526
pts_vs_flavor_samp %>% 
  summarize(mean_flavor = mean(flavor)) 
  mean_flavor
1       7.716
Rで学ぶサンプリング

Ayo berlatih!

Rで学ぶサンプリング

Preparing Video For Download...