# ーーーーーーー【分散推定値の不偏性】ーーーーーーー
#
# 偏向推定値(var.biased) = 平方和/データ数
# 不偏推定値(var.unbiased) = 平方和/自由度
#
# 標準正規乱数10個の無作為抽出を千回繰り返して,
# 二つの分散推定値の平均を真値(=1)と比較する.
# ーーーーーーーーーーーーーーーーーーーーーーーーー
# 長さ1000の数値ベクトルをオブジェクトとして定義
var.biased <- numeric(1000);
var.unbiased <- numeric(1000);
# 標準正規乱数10個の抽出を千回ループ
for (i in 1:1000) {
data <- rnorm(10, mean=0, sd=1);
var.biased[i] <- sum((data - mean(data))^2)/10;
var.unbiased[i] <- sum((data - mean(data))^2)/9
}
# それぞれの分散推定値の平均値を計算
cat("平均偏向推定値 =", mean(var.biased), "\n");
## 平均偏向推定値 = 0.8881874
cat("平均不偏推定値 =", mean(var.unbiased), "\n");
## 平均不偏推定値 = 0.9868748
# ヒストグラム描画と平均推定値の表示
# 緑=真値=1
# 赤=平均偏向推定値
# 青=平均不偏推定値
hist(var.biased, freq=F, density=15, angle=135);
hist(var.unbiased, freq=F, density=10, angle=45, add=T);
abline(v=1, col="green", lwd=5);
abline(v=mean(var.biased), col="red", lwd=3);
abline(v=mean(var.unbiased), col="blue", lwd=3)