Σ
SDCalc
中級応用·12 min

Cohenのdと効果量の計算

Cohenのd、Hedgesのg、Glassのデルタなどの効果量の計算をマスター。p値を超えた実質的な有意性を標準偏差を使って測定する方法を解説。

統計的有意性を超えて:効果量の理解

効果量は、標本サイズに依存しない差異や関連性の大きさを測定します。p値は効果が統計的に有意かどうかを示しますが、効果量はその効果が実用的にどれほど意味があるかを示します。研究、医療、教育、ビジネスにおけるエビデンスに基づく意思決定に、この区別は極めて重要です。

ある新薬がプラセボに対して統計的に有意な改善(p < 0.001)を示した製薬試験を考えてみてください。効果量がなければ、改善が0.1%なのか50%なのかわかりません。効果量はこの重要な文脈を提供し、その効果がコストや副作用、実施の手間に見合うかどうかを関係者が判断する助けとなります。

2つのグループを比較する際に最も一般的な効果量の指標はCohenのdで、平均の差を標準偏差の単位で表します。この標準化により、異なる研究や測定スケール間での比較が可能になります。

なぜ効果量が重要か

統計的有意性は標本サイズに大きく影響されます。十分に大きな標本があれば、些細な差でも「有意」になります。逆に、重要な効果が小さな標本では有意にならないこともあります。効果量は、標本サイズに依存しない指標を提供することでこの問題を解決します。

有意性の罠

n=10,000の研究で、100点満点のスケールで0.5点の差がp < 0.001になることがあります。統計的には有意ですが、実用的には無意味です(d ≈ 0.05)。p値と合わせて常に効果量を報告してください。

効果量を使う主な理由:

  • メタ分析: 効果量は複数の研究を統合して全体的な効果を推定できる
  • 検出力分析: 将来の研究に必要な標本サイズを計算するために必須
  • 実用的な判断: 介入の実施に値するかどうかの判断に役立つ
  • 再現性: 再現研究が目標とすべき値を提供する

Cohenのd:標準的な効果量の指標

Cohenのdは、2つのグループの平均の差をプール標準偏差の単位で表します。

Cohenのd

d = (M₁ - M₂) / sp

M₁とM₂はグループの平均、spは以下のように計算されるプール標準偏差です。

プール標準偏差

sp = √[((n₁-1)s₁² + (n₂-1)s₂²) / (n₁+n₂-2)]

dの符号は方向を示します。M₁ > M₂のとき正、M₁ < M₂のとき負。方向が文脈から明らかな場合は、絶対値|d|が報告されることが多いです。

なぜ標準偏差をプールするのか?

プールは両グループの母分散が等しいことを仮定します。いずれか一方のSDだけを使うよりも安定した推定値を与え、独立標本t検定の仮定と整合します。

代替的な効果量の指標

Cohenのdが最も一般的ですが、特定の状況向けの代替指標もあります。

Hedgesのg:バイアス補正済みの効果量

Cohenのdは小さな標本で母集団の効果量をわずかに過大推定します。Hedgesのgは補正係数を適用します。

Hedgesのg補正

g = d × (1 - 3/(4(n₁+n₂) - 9))

グループあたり20以上の標本では差はごくわずかです。小標本(n < 20)ではHedgesのgが推奨されます。

Glassのδ:分散が異なる場合

一方のグループが既知のばらつきを持つ対照群の場合、対照群の標準偏差のみを分母として使用します。

Glassのデルタ

Δ = (M₁ - M₂) / s_control

処置が分散に影響を与える可能性がある場合(例:成績の低い学生ほど大きな効果を受ける介入)に有用です。

効果量の解釈:Cohenのガイドライン

Jacob Cohenはdの値を解釈するための以下の基準を提唱しました。

効果量 (d)解釈重なり
0.2小さいグループ間の85%が重なる
0.5中程度グループ間の67%が重なる
0.8大きいグループ間の53%が重なる
1.2非常に大きいグループ間の40%が重なる
2.0極めて大きいグループ間の19%が重なる

文脈が重要

これらは大まかなガイドラインであり、絶対的なルールではありません。分野によっては、d = 0.2が非常に意味のある場合もあり(例:心臓発作リスクの低減)、d = 0.8が当然と見なされる場合もあります(例:指導を受けた場合と受けない場合の比較)。

計算例:教育的介入

ある学校が新しい読解プログラムをテストします。対照群 (n=25):平均=72、SD=12。介入群 (n=30):平均=79、SD=14。Cohenのdを計算します。

1

プール分散を計算する

sp² = [(25-1)(12)² + (30-1)(14)²] / (25+30-2) = [24×144 + 29×196] / 53 = [3456 + 5684] / 53 = 172.45
2

プール標準偏差を計算する

sp = √172.45 = 13.13
3

Cohenのdを計算する

d = (79 - 72) / 13.13 = 7 / 13.13 = 0.53
4

解釈する

中程度の効果量(d = 0.53)。介入群は対照群よりも約半分の標準偏差分高い得点を示しています。

これは、介入群からランダムに1人、対照群からランダムに1人を選んだ場合、介入群の学生が約64%の確率で高い得点を取ることを意味します(重なりの計算から)。

Python実装

信頼区間付きで効果量をプログラムで計算します。

python
import numpy as np
from scipy import stats

def cohens_d(group1, group2):
    """Calculate Cohen's d for two independent groups."""
    n1, n2 = len(group1), len(group2)
    var1, var2 = np.var(group1, ddof=1), np.var(group2, ddof=1)

    # Pooled standard deviation
    pooled_std = np.sqrt(((n1-1)*var1 + (n2-1)*var2) / (n1+n2-2))

    # Cohen's d
    d = (np.mean(group1) - np.mean(group2)) / pooled_std
    return d

def hedges_g(group1, group2):
    """Calculate Hedges' g (bias-corrected effect size)."""
    n1, n2 = len(group1), len(group2)
    d = cohens_d(group1, group2)

    # Correction factor for small sample bias
    correction = 1 - 3 / (4*(n1+n2) - 9)
    return d * correction

# Example usage
control = [68, 72, 75, 70, 69, 74, 71, 73, 76, 72]
treatment = [75, 79, 82, 78, 80, 77, 81, 76, 83, 79]

d = cohens_d(treatment, control)
g = hedges_g(treatment, control)
print(f"Cohen's d: {d:.3f}")
print(f"Hedges' g: {g:.3f}")

Further Reading

How to Read This Article

A statistics tutorial is a practical interpretation guide, not just a formula dump. It refers to the assumptions, notation, and reporting language that analysts need when they explain a result to a teacher, manager, client, or reviewer. The article body covers the specific topic, while the sections below create a common interpretation frame that readers can reuse across related metrics.

Reading goalWhat to focus onCommon mistake
DefinitionWhat the metric is and what quantity it summarizesTreating the formula as self-explanatory
Formula choiceSample versus population assumptions and notationUsing n when n-1 is required or vice versa
InterpretationWhether the result indicates concentration, spread, or riskCalling a large value good or bad without context

Frequently Asked Questions

How should I interpret a high standard deviation?

A high standard deviation means the observations are spread farther from the mean on average. Whether that spread is acceptable depends on the context: wide dispersion might signal risk in finance, instability in manufacturing, or genuine natural variation in scientific data.

Why do some articles mention n while others mention n-1?

The denominator reflects the difference between population and sample formulas. Population variance and population standard deviation use N because the full dataset is known. Sample variance and sample standard deviation often use n-1 because Bessel’s correction reduces bias when estimating population spread from a sample.

What is a statistical interpretation guide?

A statistical interpretation guide is a page that moves beyond arithmetic and explains meaning. It tells you what a metric is, when the formula applies, and how to describe the result in plain English without overstating certainty.

Can I cite this article in a report?

You should cite the underlying authoritative reference for formal work whenever possible. This page is best used as an explanatory bridge that helps you understand the concept before quoting the original standard or handbook.

Why include direct citations on every article page?

Direct citations give readers a route to verify the definition, notation, and assumptions. That improves trust and reduces the chance that a simplified explanation is mistaken for the entire technical standard.

Authoritative References

These sources define the concepts referenced most often across our articles. Bessel's correction is a sample adjustment, variance is a squared measure of spread, and standard deviation is the square root of variance expressed in the same units as the data.