分散は n で割るか n − 1 で割るか

以下は,期待値の意味でどちらが自然かを述べたものです。現実問題では,どちらで割った分散も大差ありません。

問題

$n$ 個の数値 $x_1$,$x_2$,...,$x_n$ が与えられたとき,それらの平均値 $\bar{x}$ は

\[ \bar{x} = \frac{x_1 + x_2 + \cdots + x_n}{n} \]

で求められます。また,分散 $s^2$ は,高校の教科書では

\[ s^2 = \frac{1}{n} ((x_1 - \bar{x})^2 + (x_2 - \bar{x})^2 + \cdots + (x_n - \bar{x})^2) \]

で求めることになっていますが,大学に入ると

\[ s^2 = \frac{1}{n-1} ((x_1 - \bar{x})^2 + (x_2 - \bar{x})^2 + \cdots + (x_n - \bar{x})^2) \]

で求めるように言われると思います。以下ではこれらをそれぞれ「$n$ で割る分散」,「$n-1$ で割る分散」と呼んでいます。これらの違いはどこにあるのでしょうか。

Excelでは,$n$ で割る分散を「VAR.P」(新しい流儀)または「VARP」(古い流儀),$n-1$ で割る分散を「VAR.S」(新しい流儀)または「VAR」(古い流儀)という関数で求めます。どうやら「P」は母集団(population),「S」は標本(sample)の意味のようですが,Excelのヘルプを見ても,使い方の区別がよくわかりません。

例えば見滝原中学校2年A組36人のテストの点数の分散を求める場合,36人のテストの点数は母集団でしょうか,標本でしょうか。これら36人だけ考える場合は母集団,もっと大勢の中学2年生を考える場合は標本だという説明がされるようですが,考え方によって答えが違うというのは,よくわかりません。何も言われなければ,どちらを使えばいいのでしょうか。

$n-1$ で統一しよう

目の前にいる36人が母集団か標本かで悩むことなく,つねに $n-1$ で割ることをお勧めします(高校の教科書とは違う流儀です)。

なぜかというと,$n-1$ で割る分散は,個数による偏り(バイアス)がないからです。具体的には,次のことが言えます(どちらも期待値の意味で言えることで,いつもこうなるというわけではありません):

理由:Rによる数値実験

ここでは理由を数学的に説明する代わりに,Rで数値実験をして示すことにします。

Rでは,$n-1$ で割る分散を求める関数は var() ですが,$n$ で割る分散を求める関数はありません(ふつうは使わないからです)。そこで,次のようにして,$n$ で割る分散を求める関数 varp() を作っておきます:

> varp = function(x) { var(x) * (length(x)-1) / length(x) }

5個のデータ $(1,2,3,4,5)$ で試してみましょう:

> x = 1:5   # x = c(1,2,3,4,5) と同じ
> var(x)    # n-1 で割る分散
[1] 2.5
> varp(x)   # n で割る分散
[1] 2

このように少数(上の例では5個)のデータの場合には,$n$ で割るか $n-1$ で割るかでかなりの違いがあります。

この5個のデータ $(1,2,3,4,5)$ から,どれか一つを外した4個のデータを5組作り,それらの分散の平均値を求めて,元の分散と比較してみましょう。まず $n-1$ で割る分散です。

> x = 1:5   # x = c(1,2,3,4,5) と同じ
> var(x)    # n-1 で割る分散
[1] 2.5
> var(c(2,3,4,5))  # 1を外す
[1] 1.666667
> var(c(1,3,4,5))  # 2を外す
[1] 2.916667
> var(c(1,2,4,5))  # 3を外す
[1] 3.333333
> var(c(1,2,3,5))  # 4を外す
[1] 2.916667
> var(c(1,2,3,4))  # 5を外す
[1] 1.666667
> mean(c(1.666667,2.916667,3.333333,2.916667,1.666667))  # 一つ外した分散の平均値
[1] 2.5

このように,一つ外した分散の期待値は,元と同じ2.5になります。同様に,二つ外しても,三つ外しても,期待値は同じです。このような性質を「偏り(バイアス)がない」または「不偏」(unbiased)ということがあります。Excelの説明に「不偏分散」ということばが現れますが,このことを指します。

$n$ で割る分散では,こうなりません:

> x = 1:5   # x = c(1,2,3,4,5) と同じ
> varp(x)   # n で割る分散
[1] 2
> varp(c(2,3,4,5))  # 1を外す
[1] 1.25
> varp(c(1,3,4,5))  # 2を外す
[1] 2.1875
> varp(c(1,2,4,5))  # 3を外す
[1] 2.5
> varp(c(1,2,3,5))  # 4を外す
[1] 2.1875
> varp(c(1,2,3,4))  # 5を外す
[1] 1.25
> mean(c(1.25,2.1875,2.5,2.1875,1.25))
[1] 1.875

つまり,一つ外したほうが分散が(期待値として)小さくなる傾向があります。


Last modified: