はじめに
Rを学びたい Step22です。今回は一致推定量と不偏推定量に関して学びます。
一致推定量とは
一致推定量は、標本を使って母集団のパラメータ(例えば母平均や母分散)を推定するための方法で、標本サイズを大きくすると真の値に近づく性質を持つものです。
例:標本平均
• 標本平均(sample mean, \bar{X} )は、母平均 \mu の一致推定量です。
• 袋からランダムに10個、50個、100個と標本を増やしていくと、その標本平均は母平均に近づいていきます。
標本平均:
\bar{X} = \frac{1}{n} \sum_{i=1}^n X_i
標本分散:
\tilde{s}^2 = \frac{1}{n} \sum_{i=1}^n (X_i - \bar{X})^2
不偏推定量とは
不偏推定量は、「平均するとちょうど正しい値を教えてくれる方法」です。
例
• あなたがお菓子を袋にたくさん入れました。その袋の中身を少しだけ取り出して「1つの重さ」を調べるとします。
• 何度か繰り返して調べた「1つの重さの平均」を計算すると、それは「お菓子1つの本当の重さ」にちょうど一致します。
つまり、不偏推定量は「平均的にはいつも正しい」という性質を持っています!
標本平均 : \\
\bar{X} = \frac{1}{n} \sum_{i=1}^n X_i
不偏分散の定義: \\
s^2 = \frac{1}{n-1} \sum_{i=1}^n (X_i - \bar{X})^2
一致推定量と不偏推定量の違い
性質 | 一致推定量 | 不偏推定量 |
---|---|---|
定義 | 標本サイズが無限に大きくなると、推定量が真の母数に確率的に収束。 | 推定量の期待値が真の母数に一致。 |
標本サイズ依存 | 標本サイズが大きいほど精度が向上。 | 標本サイズに関わらず、期待値が母数と一致。 |
小さい標本での精度 | 小さい標本では母数から外れることがある。 | 小さい標本でも平均的に正しい推定値を提供。 |
一致推定量も不偏推定量も点推定です。点推定(Point Estimation) とは、母集団のパラメータを単一の値(点)で推定する方法のことです。一致推定量や不偏推定量は、その推定値を計算する手法の性質を表しています。
一致推定量をRで学ぶ
# 一致推定量: 標本平均が母平均に収束することを確認
set.seed(123) # 再現性のため
true_mean <- 50 # 母平均
true_sd <- 10 # 母標準偏差
# 標本サイズを徐々に増やす
sample_sizes <- seq(10, 1000, by = 10)
# 標本平均を計算
sample_means <- sapply(sample_sizes, function(n) {
sample_data <- rnorm(n, mean = true_mean, sd = true_sd) # 標本を生成
mean(sample_data) # 標本平均を計算
})
# 結果のプロット
plot(sample_sizes, sample_means, type = "o", col = "blue",
main = "Sample Mean Converging to True Mean",
xlab = "Sample Size", ylab = "Sample Mean")
abline(h = true_mean, col = "red", lty = 2, lwd = 2) # 真の母平均
legend("topright", legend = c("Sample Mean", "True Mean"),
col = c("blue", "red"), lty = c(1, 2), lwd = c(1, 2))
不偏推定量をRで学ぶ
# 不偏推定量: 標本分散が母分散に対応することを確認
set.seed(123) # 再現性のため
true_variance <- 100 # 母分散 (標準偏差^2)
# 標本サイズを徐々に増やす
sample_sizes <- seq(10, 1000, by = 10)
# 標本分散(不偏分散)を計算
sample_variances <- sapply(sample_sizes, function(n) {
sample_data <- rnorm(n, mean = 0, sd = sqrt(true_variance)) # 標本を生成
var(sample_data) # 標本分散 (不偏分散)
})
# 結果のプロット
plot(sample_sizes, sample_variances, type = "o", col = "blue",
main = "Unbiased Variance Estimation",
xlab = "Sample Size", ylab = "Sample Variance")
abline(h = true_variance, col = "red", lty = 2, lwd = 2) # 真の母分散
legend("topright", legend = c("Sample Variance", "True Variance"),
col = c("blue", "red"), lty = c(1, 2), lwd = c(1, 2))