私たちがデータを統計的に処理するとき、そのデータの背後にある真の構造 (特徴や分布など) を見つけたいと考えます。たとえば、以下のような場合です。
- 選挙の結果を予測するために、一部の人の投票を出口調査して全体の傾向を推測する。
- 製品の不良品発生率を見積もるために、すべての製品を調べるのではなく、ランダムに選んだ製品のデータをもとに評価する。
- 臨床研究で、新しい薬の効果を試験的に少数の患者に投与し、その結果をもとに多くの患者への影響を予測する。
このように、限られたデータ (標本)から、より大きな集団 (母集団)についての情報を推測するのが、推測統計です。今回は、そのような推測に用いる推定量のお話です。
推定量とは
統計学において 推定量 (Estimator) とは、未知の母集団のパラメタ (parameter)を標本データから推定するための計算方法のことを指します。
例えば、母集団の平均 を推定したいとき、標本データ
から計算する標本平均
が推定量の例です。標本平均の例では、母集団の平均 という、数直線上の1点を、ピンポイント で狙い撃ち (推定)しようとしているので、このような推定を点推定と言います。
推定量の定義
一般に、ある母集団のパラメタ を推定するための推定量
は、標本データ
を使った計算式として定義されます。式で表せば、
です。
標本データは、通常、母集団から無作為抽出されますので、確率変数とみなすことができます。このとき、推定量も確率変数になります。
良い推定量の基準
推定量にも、良し悪しがあり、この推定量が良いとか、悪いとかは、どの基準を採用するかによって変わったりします。「良い推定量」の基準には、以下のようなものがあります。
不偏性(Unbiasedness)
推定量 が不偏であるとは、推定量の期待値が真の値と一致すること、つまり、
が成り立つことを意味します。
たとえば、標本平均 は母平均
の不偏推定量で、数学的に、
が成り立ちます。
しかし、以下で紹介する標本分散 は母分散
の不偏推定量ではありません。
一致性(Consistency)
推定量 が一致推定量であるとは、標本サイズが無限 (
) のとき、推定値が真の値
に確率収束することを意味します。つまり、
例えば、標本平均 は母平均
の一致推定量です。
有効性(Efficiency)
推定量 の分散が最小であるとき、その推定量は有効推定量と呼ばれます。
分散が最小かどうかの判断は難しそうですが、クラメール・ラオの不等式が分散の最小値を教えてくれるので、判断することができます。
最尤推定量(MLE)
最尤推定法(Maximum Likelihood Estimation: MLE)とは、標本データの確率を最大化するようなパラメータ推定量を求める方法です。
母平均 の最尤推定量は標本平均
、母分散
の最尤推定量は標本分散
になります (不偏分散ではありません)。
最尤推定量は大標本では良い性質(漸近正規性、一致性)を持つことが知られています。
分散の推定量とその特徴
母集団の分散 を推定するとき、理由は知らないけど、
で割る不偏分散を使わないとダメみたいな、おきてはこの世にありません。分散の推定量は、不偏分散以外にもあり、それぞれの性質を知って、目的に合ったものを使ってください。以下では、分散の推定量をいくつか紹介します。
まずは、母集団の分散 は以下の式で定義されることを覚えておいてください。
ここで、 は母平均です。実際のデータからこの値を推定するために、標本データ
を用いて、いくつかの推定量 (計算式)が提案されてきたわけです。
標本分散
期待値の計算を標本平均と同じ形にとれば、標本分散 の式
がえられます。ここで、 は標本平均です。
この統計量の期待値を計算すると (ここでは、統計量は確率変数です)
となるので、母分散 の過小評価になっています。そのため、標本分散に、不偏性はありません。
不偏分散
分散の推定で、不偏性を満たすために、標本分散の分母を に修正したものが 不偏分散
です。
名前が意味する通り、
が成り立つので、不偏性を持ちます。
最尤分散推定量
最尤推定法(MLE)を用いると、分散の最尤推定量 は、標本分散と一致します。つまり、
これは、大標本 () で、一致推定量になります。
分散の推定で、どの推定量を使うべきか
標本数が少ないときは不偏分散、標本数が多いときは標本分散を使うことが多いです。
ちなみに、標準偏差の推定量で不偏性を持つものは一般に存在しません。それでも、標本数が少ないときは不偏分散の平方根、標本数が多いときは標本分散の平方根を使うことが多いです。
Rで平均、分散、標準偏差を計算
Rでは、平均の計算に標本平均、分散の計算には不偏分散、標準偏差の計算には不偏分散の平方根が使われています。
標本平均の計算
x <- c(82, 12, 73, 97, 51) # サンプルデータ mean(x) # 平均を計算
不偏分散の計算
var(x) # 分散を計算
不偏分散の平方根で標準偏差を計算*
sd(x) # 標準偏差を計算
Rで標本分散と不偏分散の分布を比較
# ------------------------------- # 正規母集団からのサンプリングと分散の分布(標本数表示付き) # ------------------------------- # 1. パラメータ設定 ------------------------------- n_sample <- 5 # 標本サイズ N n_trials <- 10000 # 試行回数 mu <- 0 # 母平均 sigma2 <- 4 # 母分散(標準偏差2) # 2. 結果保存用ベクトル初期化 --------------------- var_sample <- numeric(n_trials) # 標本分散(biased, 分母n) var_unbiased <- numeric(n_trials) # 不偏分散(unbiased, 分母n-1) # 3. シミュレーション実行 ------------------------- for (i in 1:n_trials) { x <- rnorm(n_sample, mean = mu, sd = sqrt(sigma2)) var_sample[i] <- mean((x - mean(x))^2) var_unbiased[i] <- var(x) } # 4. ヒストグラムの描画 --------------------------- par(mfrow = c(2, 1)) # 上下2分割表示 # (1)標本分散(biased) hist(var_sample, breaks = 50, col = rgb(1, 0, 0, 0.4), xlim = range(c(var_sample, var_unbiased)), main = paste0("標本分散(biased)の分布(n = ", n_sample, ")"), xlab = "分散の値", freq = FALSE) abline(v = sigma2, col = "red", lty = 1, lwd = 2) abline(v = mean(var_sample), col = "red", lty = 2, lwd = 3) legend("topright", legend = c("母分散", "標本分散の平均"), col = "red", lty = c(1, 2), lwd = c(2, 3), bg = "white") # (2)不偏分散(unbiased) hist(var_unbiased, breaks = 50, col = rgb(0, 0, 1, 0.4), xlim = range(c(var_sample, var_unbiased)), main = paste0("不偏分散(unbiased)の分布(n = ", n_sample, ")"), xlab = "分散の値", freq = FALSE) abline(v = sigma2, col = "blue", lty = 1, lwd = 2) abline(v = mean(var_unbiased), col = "blue", lty = 2, lwd = 3) legend("topright", legend = c("母分散", "不偏分散の平均"), col = "blue", lty = c(1, 2), lwd = c(2, 3), bg = "white")