母分散と標本分散
統計学において、分散はデータセット内のデータポイントがどの程度散らばっているかを示す指標です。異なるデータセットを分析し比較する際には重要な概念です。
母分散は、全母集団の真の分散を表します。研究やデータ分析を行う際には、理想的には全母集団にアクセスできることが望ましいとされていますが、実際には全ての個体からデータを収集することは不可能または非現実的であることがほとんどです。そこで、標本分散が使用されます。
標本分散は、標本として知られる母集団の部分集合を用いて計算されます。標本は母集団全体についての推測、つまり母分散の推定を含めるために使用されます。正確な推定を行うためには、代表的な標本を選択することが重要です。
母分散の推定
母分散の式
母分散は、データセット内の分散を示す指標です。各データポイントと母集団平均(
ここで、
標本分散の式
標本分散は、母分散と同様の方法で計算されますが、標本平均(
標本分散は母分散を過小評価する傾向があるため、不偏な母分散の推定を得るために、補正係数が必要です。この補正はベッセルの補正と呼ばれ、分母に
この補正された標本分散式を使用することで、より正確で不偏母分散の推定値を得ることができます。
n-1を使用する数学的根拠
標本分散式の分母に
数学的期待値と不偏推定量
統計学において、推定量は、サンプルに基づいて母集団パラメータの推定値を計算する関数です。不偏推定量とは、平均的には母集団パラメータの真の値と等しい推定値を提供するものです。数学的には、母集団パラメータ
分母に
母平均が
ここで、
この式をいくつかの代数的操作によって変形することで、次のように示されます。
不偏標本分散式の導出
母分散の不偏推定量を得るためには、標本分散式を
この新しい推定量の期待値を計算することで、不偏推定量であることが示されます。
前述の代数的操作を行うことで、次のように示されます。
この結果から、分母に
標本分散が母分散よりも小さくなる理由
標本分散は、母分散を過小評価する傾向があります。これは、標本平均
以下は、Pythonを使用した標本分散の偏りを示す例です。
import numpy as np
population = np.random.normal(50, 10, 10000) # Simulate a population with mean=50 and std_dev=10
biased_variances = []
for _ in range(1000):
sample = np.random.choice(population, 30) # Draw a sample of size 30
sample_variance = np.var(sample, ddof=0) # Compute biased sample variance
biased_variances.append(sample_variance)
mean_biased_variance = np.mean(biased_variances)
population_variance = np.var(population)
print("Mean Biased Variance:", mean_biased_variance)
print("Population Variance:", population_variance)
Mean Biased Variance: 97.12419679509834
Population Variance: 99.90071273636632
この例から、過小評価された標本分散が平均的に真の母分散よりも小さいことが示されます。
不偏分散推定量としての標本分散
母分散の不偏推定値を得るためには、ベッセルの補正を標本分散式に適用する必要があります。この補正は、母集団平均の代わりに標本平均を使用することによって導入される偏りを補正するために、分母に
この補正された標本分散式を使用することで、より正確で不偏母分散の推定値を得ることができます。この補正は、偏りがより顕著に現れる小さなサンプルサイズで作業する場合に特に重要です。
ベッセルの補正の効果をさらに説明するために、前の章で使用されたPythonの例を修正して、不偏標本分散を計算するようにします。
import numpy as np
population = np.random.normal(50, 10, 10000) # Simulate a population with mean=50 and std_dev=10
unbiased_variances = []
for _ in range(1000):
sample = np.random.choice(population, 30) # Draw a sample of size 30
sample_variance = np.var(sample, ddof=1) # Compute unbiased sample variance
unbiased_variances.append(sample_variance)
mean_unbiased_variance = np.mean(unbiased_variances)
population_variance = np.var(population)
print("Mean Unbiased Variance:", mean_unbiased_variance)
print("Population Variance:", population_variance)
Mean Unbiased Variance: 101.69170154048732
Population Variance: 101.5789887073244
この例から、ベッセルの補正を使用した不偏標本分散式を使用することで、真の母分散のより正確な推定値を得ることができることが示されます。分母に