統計学を学び始めると、たくさんの専門用語に出会います。その中でも、「不偏分散」という言葉は特に重要な概念の1つです。この記事では、不偏分散とは何か、なぜそれが重要なのかをわかりやすく解説します。
1. 分散の基本
まず、基本的な「分散」についておさらいしましょう。データのバラつきを数値で表すときに用いられるのが分散です。例えば、テストの点数や商品の価格など、何かしらのデータがあったとき、それらのデータがどれだけばらついているのかを知りたい場合に分散を計算します。
具体的な計算式は以下のようになります。
2. なぜ「不偏」なのか?
データの分散を計算する際、サンプルサイズで割る方法(標本分散)、上記の分散の計算式をそのまま使うと、この推定量の期待値は真の母分散よりも小さくなります。
つまり、バイアス(偏り)が存在するのです。それを補正するために、サンプルサイズの代わりに「サンプルサイズ - 1」で割る方法を取ります。この方法で計算される分散を「不偏分散」と呼びます。
不偏性とは、ある推定量の期待値が真の値と一致する性質を指します。つまり、多数の試行(サンプリング)を繰り返し、その都度推定を行ったときの平均的な推定値が、真の値と一致する場合、その推定量は不偏であると言います。
不偏分散の計算式は次のようになります。
分母が「n-1」になっている点に注目してください。この「n-1」という数値を「自由度」と呼びます。
3. なぜ自由度がn-1なのか?
「なぜ自由度を1減らすのか?」という疑問が生まれるかもしれません。不偏分散の自由度がn−1となる理由を理解するためには、統計学の基礎と自由度の概念について考える必要があります。以下に、この理由を説明します。
-
平均の制約: サンプルデータの平均を計算すると、この平均を中心としてデータがばらつくことになります。具体的には、最初の
のデータポイントが何であれ、n番目のデータポイントは平均を固定するために「決まってしまう」性質があります。したがって、最後の1つの自由度が失われます。
-
不偏性の必要性: 標本分散をそのまま計算すると、多くの場合、母分散の真の値を過小評価する傾向があります。これは、上述の平均の制約に起因します。
で割ることで、このバイアスを補正し、不偏性を持つ推定量を得ることができます。
-
数学的な根拠: 不偏分散の期待値を計算すると、この期待値が母分散と等しくなることが数学的に示されます。具体的には、偏差の二乗の和
の期待値を計算すると、母分散の
倍となり、これを
で割ることで母分散と一致することが確認できます。
このように、不偏分散の計算で自由度を
とするのは、サンプルの平均を計算する制約と、不偏性を持つ推定量を得るための必要性に起因しています。
4. 不偏分散の重要性
統計学において、正確な推測や仮説検定を行うためには、不偏性を持つ指標が求められます。不偏分散はその要求を満たす指標として重宝されています。特に、多くの統計手法や分析手法の基盤となるため、理解しておくことは非常に重要です。
例えば、あなたが果物屋さんで、リンゴの甘さを調査しているとします。
全てのリンゴを試食することはできないので、10個だけピックアップして試食します。
この10個のリンゴの甘さのバラツキを表すために分散を計算します。
しかし、サンプル(この場合10個のリンゴ)の分散をそのまま計算すると、実際の全てのリンゴの甘さのバラツキ(母集団の分散)よりも小さくなってしまうことがあります。
これは、サンプルだけを見ているための「見落とし」によるものです。
この「見落とし」を補正するために、不偏分散を用います。
不偏分散は、サンプルのデータだけから、全てのリンゴの甘さのバラツキをより正確に推測する手助けをしてくれます。
結論として、不偏分散は、限られたサンプルから得られた情報を元に、全体のバラツキをより正確に評価するための重要なツールです。これにより、誤った結論を導くリスクを低減することができるという訳です。
まとめ
統計学における不偏分散は、データのバラつきを正確に評価するための重要な指標です。母集団の真の特性をより正確に推測するために、不偏性を持つこの指標を理解し、適切に使用することが求められます。
参考文献
1) 統計学入門 (基礎統計学Ⅰ) 東京大学教養学部統計学教室 ISBN-13 : 978-4130420655
2)笠原浩三「不偏分散の小標本特性に関する研究」鳥取大学農学部研究報告45巻 p. 135-143、発行年月 1992年11月
Rで不偏分散を計算するスクリプト
Rで不偏分散を計算するためのスクリプトを以下に示します
使うデータはscore.csvの次のデータです。「control」列の不偏分散を求めるスクリプトになっています。
# 不偏分散を計算する関数
unbiased_variance <- function(data) {
n <- length(data) # データの数
mean_data <- mean(data) # データの平均値
sum_of_squares <- sum((data - mean_data)^2) # 偏差の二乗の和
return(sum_of_squares / (n-1)) # 不偏分散を返す
}
#csvファイルの読み込み
df <- read.csv("D:/ブログ用/17R/R#4 cohenD/score.csv")#←読者様のファイルの場所を指定してくださいね。
# 2つのサンプルのデータ
group1 <- c(df$control) # グループ1のデータを抽出
# 不偏分散を計算
result <- unbiased_variance(group1)
print(result)
# Rの組み込み関数var()を使って結果することもできます。
print(var(group1))
先ほど提供したRスクリプトの中で、unbiased_variance
は自分で定義した関数であり、データセットの不偏分散を計算する目的で作成しました。
具体的には、unbiased_variance
関数は以下の手順で動作します:
- 引数として与えられたデータセット
data
の長さ(つまり、データポイントの数)をn
として取得します。 - そのデータセットの平均値を
mean_data
として計算します。 - 各データポイントとその平均値との差(偏差)の二乗を計算し、それらの合計(偏差の二乗和)を
sum_of_squares
として取得します。 - 最後に、
sum_of_squares
をn-1
で割って不偏分散を計算し、その結果を返します。
この関数は、Rの組み込み関数var()
と同じ結果を返すことを期待して作成されました。したがって、unbiased_variance(data)
とvar(data)
は、同じdata
に対しては同じ結果を返すはずです。
unbiased_variance(data)
とvar(data)
は、同じdata
に対しては同じ結果を返してくれています。