7.4 推定量もまた確率変数
次に、推定値と母数との関係を標本平均(\(\small \bar{X}\))を使って考える(標本平均の定義は、「記述統計」の節を参照)。ある母集団からランダムサンプルを収集し、標本平均を計算することを考える。ここで計算された数値は真の母平均を捉えた唯一の値なのだろうか。 結論としては、点推定の推定値は母数そのものではなく、ひとつのある実現値でしかないことに注意が必要である。この理由は、「確率変数から計算される推定量もまた確率変数である」という事実から理解することができる。
例えば、我々が一橋大学商学部生の一ヶ月あたりの平均収入(仕送りは除く)に関心があるとする。(実現可能性は置いておいて)商学部全体を母集団とする無作為標本を100件収集し、標本平均を計算した結果 \(\small \bar{X}=\) 0 だったとする。もしこのような極端な結果を得た場合、多くの人が「標本平均の実現値は必ずしも真の母平均そのものではない」という説明に納得がいくだろう。同様の調査(100件のランダムサンプリング)をもう一度行い平均収入を計算し直すと、おそらく0とは異なる推定値を得る可能性が高い。仮に、\(\small\bar{X}=\) 50,000 だった場合、その結果をどのように解釈するだろうか。仕送りを除く大学生の月当たり収入の平均が5万円だという結果はなんとも尤もらしい。しかしながら、たとえ尤もらしい結果を得たとしても、それはひとつの分析結果であり、真の母平均を示す唯一の値ではない。
確率変数から計算される推定量もまた確率変数であるという点を直感的に経験するために、細工のない6面サイコロを(バーチャルに)振ってもらう。なお、コード内では、出力結果を少し見やすくするために、knitr
というパッケージを利用しているため、以下のようにインストールしてほしい。
標本平均についての議論を行う前に、理論的な期待値を求める。6面サイコロの出目の期待値 \(\mu\) は以下の通りである。
\[ \mu = 1\cdot \frac{1}{6}+2\cdot \frac{1}{6}+...+6\cdot \frac{1}{6}=3.5 \]
ここで、以下のようなコマンドを用いてR内でサイコロを振ってみてほしい(実際にサイコロを振ってもらっても構わないが、面倒くさい)。
set.seed(442)# 乱数の再現性確保のための指示。関数内の数字に特に意味はないため各自別の値を使っても良い。
die <- 1:6
d <- sample(die,size=1,replace = TRUE)
d
## [1] 6
この講義ノート内では以上で示されている通り、6という出目を得た。上記のコマンドを実施した各自がそれぞれ異なる値を得ているだろう。ここで得た6という数字は、サイコロの出目という確率変数の実現値(\(n=1\))である。そのため、本データの標本平均も6であり、真の期待値とは異なる。ただし、読者によっては1件の標本による標本平均という表現を直感的に理解しにくいかもしれない。そのため、以下のように サイコロを10回振る試行を3回実施し、各サンプリング結果に基づき標本平均を以下のように計算する。
set.seed(352)
d1 <- sample(die,size=10,replace = TRUE)
d2 <- sample(die,size=10,replace = TRUE)
d3 <- sample(die,size=10,replace = TRUE)
d_mean <- matrix(c(mean(d1),mean(d2),mean(d3)),nrow = 1)
colnames(d_mean) <- c("d1の平均", "d2の平均", "d3の平均")
knitr::kable(d_mean, caption = "サイコロの標本平均比較", align = "ccc")
d1の平均 | d2の平均 | d3の平均 |
---|---|---|
3.2 | 3 | 2.4 |
上記の通り、d1, d2, d3 いずれの標本平均も互いに異なるものであり、また3.5とも異なる。このことからも、確率変数(サイコロの出目)を用いて計算された推定値(標本平均)もまた確率変数であり、推定値と未知パラメータとの間にはズレ(誤差)が生じうることがわかる。なお、中には3.5と等しい標本平均を偶然得た読者もいると考えられるが、それもあくまで一つの実現値である。
では、標本平均の推定値がサンプルサイズによってどれだけ真の期待値に近づくのかについて、サイコロの試行回数を10回、100回、1,000回と増やして確認する。以下の結果を見ると、サンプルサイズ(試行回数)が増えるごとに真の期待値に近づいていることが伺える。ただし、これらの結果もあくまで確率的な試行結果の実現値である。そのため、読者によっては異なる傾向を示すような結果を得る可能性があることに注意が必要である。
set.seed(541)
d10 <- sample(die,size=10,replace = TRUE)
d100 <- sample(die,size=100,replace = TRUE)
d1000 <- sample(die,size=1000,replace = TRUE)
d_lln <- matrix(c(mean(d10),mean(d100),mean(d1000)),nrow = 1)
colnames(d_lln) <- c("10回試行の平均", "100回試行の平均", "1,000回試行の平均")
knitr::kable(d_lln, caption = "サイコロの標本平均比較2", align = "ccc")
10回試行の平均 | 100回試行の平均 | 1,000回試行の平均 |
---|---|---|
3 | 3.36 | 3.516 |