Summary

p-value는 “차이가 있는가?”만 답하고, effect size는 “차이가 얼마나 큰가?”를 답한다. 표본 크기가 충분히 크면 사소한 차이도 유의하게 나오므로, 실질적 중요성을 판단하려면 effect size 보고가 필수적이다.

용어 설명

  • 통계적 유의성 (Statistical significance): p-value가 기준(보통 0.05) 이하일 때, “우연이 아니라 실제 차이가 있다”고 판단하는 것. 표본이 크면 작은 차이도 유의해질 수 있음
  • 실질적 유의성 (Practical significance): 통계적으로 유의하더라도 현실에서 의미 있을 만큼 큰 차이인지. Effect size가 이를 판단하는 지표
  • 분산 (Variance): 데이터가 평균으로부터 얼마나 흩어져 있는지를 나타내는 수치. 클수록 데이터가 넓게 퍼져 있음
  • 표준화 (Standardization): 단위가 다른 변수들을 동일한 척도로 변환하는 것. Effect size는 표준편차 단위로 표준화하여 연구 간 비교를 가능하게 함
  • SS (Sum of Squares, 제곱합): 각 데이터 값과 평균의 차이를 제곱하여 모두 더한 값. 분산을 계산하는 기초 단위

Effect Size 개요

p-value vs Effect Size

구분p-valueEffect Size
질문”차이가 있는가?” (유/무)“차이가 얼마나 큰가?” (크기)
표본 크기 영향크게 받음 (n↑ → p↓)거의 안 받음
실용적 의미통계적 유의성 (statistical significance)실질적 중요성 (practical significance)
단독 보고불충분 — 크기 정보 없음p-value와 함께 보고 권장
해석 예시p < 0.05 → “유의한 차이 있음”d = 0.8 → “큰 효과”

흔한 오해

“p < 0.001이면 효과가 크다” → 틀림. p-value가 작다고 효과가 큰 것이 아니라, 표본이 클 수도 있다. 반드시 effect size를 함께 확인해야 한다.


Effect Size의 분류

1. 차이 기반 (Difference-based)

두 집단의 평균 차이를 표준화한 지표.

지표수식적용 맥락
Cohen’s d독립/대응 t-test
Hedges’ gCohen’s d에 소표본 보정n < 20일 때 권장
Glass’s Δ통제 집단 SD 사용실험 vs 통제 비교

2. 분산 설명 기반 (Variance-accounted-for)

독립변수가 종속변수 분산의 **몇 %**를 설명하는지.

지표수식적용 맥락
Eta-squared (η²)ANOVA
Partial η²Factorial ANOVA
회귀 분석
ω² (Omega-squared)η²의 편향 보정 버전모집단 추정 시

3. 연관성 기반 (Association-based)

변수 간 관계의 강도.

지표적용 맥락
Pearson’s r연속 × 연속
Cramer’s V범주형 × 범주형 (Chi-square test)
Standardized Beta (β)다중 회귀 계수 비교
Point-biserial r이분 × 연속

Cohen의 해석 기준 (Benchmarks)

지표SmallMediumLarge
d0.20.50.8
r0.10.30.5
η²0.010.060.14
Cramer’s V (df=1)0.10.30.5

주의

Cohen 자신도 이 기준이 “임의적(arbitrary)“이라고 강조했다. 분야별 맥락에 따라 small effect도 실질적으로 중요할 수 있다 (e.g., 의학 중재의 사망률 감소).


신뢰구간과 함께 보고

Effect size도 점추정(point estimate)이므로 **신뢰구간(CI)**을 함께 보고해야 한다.

→ 효과가 0이 아니며, small~large 범위에 있다고 해석할 수 있음.

Confidence Interval 참조

Implementation

import pingouin as pg
 
# independent t-test with effect size
result = pg.ttest(group1, group2, paired=False)
print(result[['T', 'p-val', 'cohen-d', 'CI95%']])
 
# ANOVA with effect size
aov = pg.anova(data=df, dv='score', between='group')
print(aov[['Source', 'F', 'p-unc', 'np2']])  # np2 = partial eta-squared

관련 문서