0
1

統計学の基礎、標本分散と標準偏差をPythonを使って理解する

Last updated at Posted at 2024-09-15

概要

データ分析や統計学において、データのばらつきや分散を理解することは非常に重要です。本記事では、標本分散と標準偏差について解説し、正規分布に近いデータセットを用いてPythonでこれらの統計量を計算する方法を紹介します。文章はGPT O1-previewで書いていています。

はじめに

標本分散:サンプル内のデータが平均からどれだけ離れているかを示す指標。
標準偏差:分散の平方根で、データのばらつきを元の単位で表します。

分散と標準偏差の基礎

分散とは

分散は、データポイントが平均値からどれだけ散らばっているかを示します。各データポイントと平均値の差の二乗の平均を計算して求めます。

s^2 = \frac{1}{n - 1} \sum_{i=1}^{n} (x_i - \bar{x})^2
  s^2 :標本分散 
  n :サンプルサイズ(データの総数)
  x_i :各データポイント
  \bar{x} :標本平均

標準偏差とは

標準偏差は、分散の平方根を取ったもので、データのばらつきを元の単位で示します。

s = \sqrt{s^2}

コード全文

# Import Necessary Libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Fix the seed for reproducibility
np.random.seed(0)

# Generate sample data: Normally distributed scores with mean=70 and std=10
scores = np.random.normal(loc=70, scale=10, size=1000)

# Convert data to a Pandas Series
scores_series = pd.Series(scores)

# Calculate the sample mean
mean_score = scores_series.mean()
print(f"Sample Mean: {mean_score:.2f}")

# Calculate the sample variance (unbiased estimator)
variance = scores_series.var(ddof=1)
print(f"Sample Variance: {variance:.2f}")

# Calculate the standard deviation
std_deviation = scores_series.std(ddof=1)
print(f"Standard Deviation: {std_deviation:.2f}")

# Plot the histogram
plt.hist(scores, bins=30, edgecolor='black')
plt.title('Distribution of Math Test Scores')
plt.xlabel('Score')
plt.ylabel('Frequency')
plt.grid(axis='y', alpha=0.75)
plt.show()

表示結果

image.png

結果の解釈

標本平均:約69.84で、データの中心的な傾向を示しています。
標本分散:約97.52で、データが平均からどれだけ離れているかを示します。
標準偏差:約9.87で、データポイントが平均から平均してどれだけ離れているかを示します。
ヒストグラムから、データが正規分布に従っていることが確認できます。大半の点数が平均値付近に集中しています。

分母が n−1 になる理由

分母が n−1 になるのは、データの自由度を考慮しているためです。標本平均を計算する際に1つの自由度を失うため、分母を nではなくn−1 とします。これにより、標本分散が母集団分散の不偏推定量となります。

なぜ n−2 ではないのか?

分母が n−2 となるのは、さらにもう1つの制約がある場合です。例えば、回帰分析において、データの点数
nから回帰モデルで使われる2つのパラメータ(傾きと切片)を推定する場合、自由度は n−2 となります。これは平均の代わりに2つのパラメータを推定するため、n−2 個のデータ点が自由に変動できるためです。

しかし、単純な標本分散の計算では、制約となるのは標本平均 1つだけなので、自由度は n−1 となります。

自由度とは?

自由度とは、データの中で制約を受けずに自由に変動できるデータ点の数を指します。標本平均を計算するとき、すべてのデータ点を使って平均を固定してしまうため、1つのデータ点は他のデータ点に依存することになります。その結果、自由度が1つ減り、自由度は n−1 となります。

もう少し具体的に考えてみましょう。

データが

( x_1 = 5 )、( x_2 = 7 )、( x_3 = 9 ) 

の3つだとします。これらのデータの平均は次のように計算されます。

 \bar{x}  = \frac{5 + 7 + 9}{3} = 7

もし、私が「このデータの平均が7であることは既に知っている」という条件で、データの1つを勝手に選べるとしたら、たとえば ( x_1 = 5 ) と決めて、次に ( x_2 = 7 ) と決めた場合、残りの ( x_3 ) は自動的に決まります。

x_3 = 3 \bar{x} - x_1 - x_2 = 3 \times 7 - 5 - 7 = 9

つまり、3つ目のデータ ( x_3 ) はもう自由に選べるわけではなく、平均値を保つために他のデータ点に依存しているということです。このように、標本平均を使って計算する場合、自由に動かせるのは ( n - 1 ) 個のデータ点しかなく、それが「自由度が1つ減る」理由です。

結論

標本平均を計算すると、データのうち1つは他のデータに依存することになります。
したがって、自由に選べるデータ点の数、つまり自由度は ( n - 1 ) となります。
分散を計算する際に分母を ( n - 1 ) にするのは、この自由度を考慮して、母集団分散の不偏推定量にするためです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1