0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

標準偏差(SD)と標準誤差(SE)の違いを理解する_統計検定2級対策

0
Posted at

以下の統計検定2級対策動画で用いられているスライドの一部です。

はじめに: よくある混乱

統計学を学ぶと必ず出会う2つの用語。

  • 標準偏差 (SD)
  • 標準誤差 (SE)

名前も計算式も似ているため、非常に混同しやすい概念です。
しかし、これらが 何を表しているか は根本的に異なります。


本日のアプローチ

このスライドでは、 曖昧な比喩を避け 、具体的な例題から始めます。

  1. ステップ1:具体例の提示

    • 2つの異なるケーススタディを通して、SDとSEがそれぞれ どのような場面で何を明らかにするために 使われるのかを直感的に理解します。
  2. ステップ2:一般化と定義

    • 具体例で得た理解を元に、一般的な定義と数式を整理します。

ステップ1:具体例の提示

ケーススタディで学ぶSDとSE


例題1: カフェチェーンの売上分析

<状況>
あるカフェチェーン10店舗の、先週日曜日のアイスコーヒー販売杯数を集計しました。

<知りたいこと>
店舗ごとの販売杯数は、全体として どのくらい「ばらついて」いるのだろうか?

<データ (単位: 杯)>
[52, 65, 48, 71, 55, 62, 75, 58, 60, 54]


計算 (1/3): まずは平均を求める

ばらつきを測るためには、まずデータの「中心」が必要です。
データの合計を個数で割って、 標本平均 $\bar{x}$ を計算します。

$$
\bar{x} = \frac{52+65+...+54}{10} = \frac{600}{10} = 60
$$

この10店舗の平均販売杯数は 60杯 でした。


計算 (2/3): 平均からの「ズレ」を計算する

次に、各店舗の販売数が平均(60杯)からどれだけズレているか(=偏差)を計算し、それらを2乗して合計します。

データ($x_i$) 偏差($x_i - \bar{x}$) 偏差の2乗($(x_i - \bar{x})^2$)
52 -8 64
65 5 25
48 -12 144
... ... ...
54 -6 36
合計 648

計算 (3/3): 「ばらつき」の大きさを算出する

最後に、先ほどの合計値(648)を「サンプルサイズ - 1」($10 - 1 = 9$)で割り、その平方根を求めます。

$$
s = \sqrt{\frac{648}{10-1}} = \sqrt{\frac{648}{9}} = \sqrt{72} \approx 8.49
$$

この 約8.49杯 という値が、今回のデータの「ばらつき」を表す指標です。


結論 (例題1): これが 標準偏差 (SD) です

  • 計算で得られた 約8.49杯標本標準偏差 です。
  • これは、 「各店舗の販売杯数は、平均60杯を中心に、平均して約8.49杯ばらついている」 ことを意味します。

標準偏差 は、観測された データそのもの の散らばり具合を記述する指標です。


[可視化] データ分布と標準偏差

ヒストグラムでデータを見ると、ばらつきのイメージがより明確になります。

image.png


import numpy as np
import matplotlib.pyplot as plt

# Data
data = np.array([52, 65, 48, 71, 55, 62, 75, 58, 60, 54])
mean = np.mean(data)
sd = np.std(data, ddof=1)

# Plot
plt.figure(figsize=(10, 6))
plt.hist(data, bins=5, color='skyblue', edgecolor='black', alpha=0.7)
plt.axvline(mean, color='red', linestyle='dashed', linewidth=2, label=f'Mean: {mean:.2f}')
plt.axvline(mean + sd, color='green', linestyle='dotted', linewidth=2, label=f'Mean + 1SD: {mean+sd:.2f}')
plt.axvline(mean - sd, color='green', linestyle='dotted', linewidth=2, label=f'Mean - 1SD: {mean-sd:.2f}')

plt.title('Distribution of Ice Coffee Sales')
plt.xlabel('Number of Cups Sold')
plt.ylabel('Frequency (Number of Stores)')
plt.legend()
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

例題2: 新薬の効果持続時間の推定

<状況>
製薬会社が新開発した鎮痛剤の効果を調べるため、25人の被験者に投与し、持続時間を測定しました。

<知りたいこと>
今回の調査で得られた「平均7.5時間」という結果は、 どのくらい「精度が高い」推定なのだろうか?

<データ>

  • サンプルサイズ $n$: 25人
  • 標本平均 $\bar{x}$: 7.5時間
  • 標本標準偏差 $s$: 1.5時間

計算: 「推定の精度」を算出する

ここでは、先ほどとは異なる計算をします。
標本標準偏差 $s$サンプルサイズの平方根 $\sqrt{n}$ で割ります。

$$
SE = \frac{s}{\sqrt{n}} = \frac{1.5}{\sqrt{25}} = \frac{1.5}{5} = 0.3
$$

この 0.3時間 という値が、今回の「推定の精度」を表す指標です。


結論 (例題2): これが 標準誤差 (SE) です

  • 計算で得られた 0.3時間標準誤差 です。
  • これは、 「今回得られた平均7.5時間という推定値は、真の平均値から平均的に0.3時間程度ずれているだろう」 ことを意味します。

標準誤差 は、標本から計算した 推定量(ここでは標本平均)の信頼性や精度 を表す指標です。


[可視化] 推定値のばらつきと標準誤差

もし同じ調査を何度も繰り返したら、その度に標本平均は少しずつ変動します。この 「標本平均のばらつき」 が標準誤差の正体です。

image.png


import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# Assume true population parameters
true_mean = 7.5
true_sd = 1.5
sample_size = 25

# Simulate 1000 experiments
num_experiments = 1000
sample_means = [np.mean(np.random.normal(true_mean, true_sd, sample_size)) for _ in range(num_experiments)]

# Calculate theoretical SE and simulated SE
se_theoretical = true_sd / np.sqrt(sample_size)
se_simulated = np.std(sample_means, ddof=1)

# Plot
plt.figure(figsize=(10, 6))
plt.hist(sample_means, bins=30, density=True, color='skyblue', edgecolor='black', alpha=0.7, label='Distribution of Sample Means')
x = np.linspace(min(sample_means), max(sample_means), 100)
plt.plot(x, stats.norm.pdf(x, true_mean, se_theoretical), 'r-', lw=2, label='Normal Distribution (based on SE)')
plt.axvline(true_mean, color='red', linestyle='dashed', linewidth=2, label=f'True Mean: {true_mean}')
plt.title(f'Sampling Distribution of the Mean (n={sample_size})')
plt.xlabel('Sample Mean Duration (hours)')
plt.ylabel('Density')
plt.legend()
plt.text(0.95, 0.95, f'Theoretical SE: {se_theoretical:.2f}\nSimulated SE: {se_simulated:.2f}',
         transform=plt.gca().transAxes, fontsize=12, verticalalignment='top', horizontalalignment='right',
         bbox=dict(boxstyle='round,pad=0.5', fc='wheat', alpha=0.5))
plt.grid(True)
plt.show()

ステップ2:一般化と定義

例題から学ぶ定義と公式


標準偏差 (Standard Deviation: SD)

定義

データ そのもの「ばらつきの大きさ」 を示す指標。
個々のデータ点が、データセットの平均値から平均的にどれだけ離れているかを表します。

計算式(標本の場合)

$$
s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2}
$$

  • $s$: 標本標準偏差
  • $n$: サンプルサイズ
  • $x_i$: 個々のデータの値
  • $\bar{x}$: 標本平均

標準誤差 (Standard Error: SE)

定義

標本から計算された 推定量 (例:標本平均)の 「推定の精度」 を示す指標。
標本平均が、私たちが本当に知りたい母集団の平均(母平均)からどれくらいずれていると期待されるかを表します。

計算式(標本平均の場合)

$$
SE = \frac{s}{\sqrt{n}}
$$

  • $SE$: 標本平均の標準誤差
  • $s$: 標本標準偏差
  • $n$: サンプルサイズ

決定的な違い: SD vs SE まとめ

項目 標準偏差 (SD) 標準誤差 (SE)
目的 データの ばらつき を記述する 推定の 精度 を評価する
対象 データそのもの 標本平均などの推定量
解釈 データ点が平均からどれだけ散らばっているか 標本平均が母平均からどれだけ離れていると期待されるか
$n$との関係 $n$が増えても値は安定する傾向 $n$が増えると値は小さくなる
(精度が上がる)

使い分けのポイント

  • 標準偏差 (SD) を使う時

    手元のデータの 分布特性を報告したい 場合

    例: 「今回調査した30人の被験者の最高血圧は、平均130mmHg、 標準偏差15mmHg でした。」
    → 30人のデータがどのくらいばらついているかを記述。

  • 標準誤差 (SE) を使う時

    標本から 母集団の特性を推定し、その信頼性を示したい 場合

    例: 「日本人男性の平均身長の推定値は171.0cmで、その 標準誤差は0.7cm です。」
    → 171.0cmという推定値の精度を報告。


結論

  • 標準偏差 (SD)

    Description (記述) のための統計量

  • 標準誤差 (SE)

    Inference (推測) のための統計量

この違いを理解することが、正しい統計的解釈の第一歩です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?