Rで母集団の分散を求めるには?
Rには母集団の分散を求める関数がデフォルトでありません。
(パッケージなどであるかも知れませんが筆者は知りません。)
通常Rで分散を求める際はvar()関数、標準偏差を求める際はsd()関数を利用しますが、これらはどちらも標本(サンプル)の分散、標準偏差です。
母集団の分散は以下のように、
(1)
と定義され、各値と母集団平均値の差の2乗をすべて足したものを、母集団の大きさ(n)で割りますが、
標本(サンプル)の分散は以下のように
(2)
と定義され、各値と標本平均の差の2乗をすべて足したものを、標本の大きさであるn-1で割ります。
Rのvar()関数はこの標本の分散の公式である(2)を利用します。
ですので、与えられているグループを母集団とみなしてその分散を求めたいときは、
このように、var()関数で得られた値に(n-1)/nを掛けます。
母集団の分散を求めるRコード例
10人の男性の体重がX=c(70,65,58,77,90,67,63,73,80,71)と与えられている時、これを標本(サンプル)とみなした場合と、これを母集団とみなした場合の分散は以下のようになります。
#10人の男性の体重。 X=c(70,65,58,77,90,67,63,73,80,71) #これを標本(サンプル)とみなした場合。 var(X) #これを母集団とみなした場合。 ((10-1)/10)*var(X)
[1] 85.15556
> ((10-1)/10)*var(X)
[1] 76.64
この10人を標本(サンプル)とみなしたときの分散が85.15556、母集団とみなしたときの分散が76.64と、それぞれに求めることができました。
母集団の標準偏差を求めたい場合は、この求めた母集団の分散の平方根をとるだけです。
#母集団の標準偏差。 sqrt(((10-1)/10)*var(X))
[1] 8.754427
母集団の標準偏差は8.754427と求めることができました。