1 도입 — 가장 단순한 모형부터
ANOVA 를 3 그룹 이상 의 검정으로 시작하면 수식의 짐이 무겁다. Maxwell 은 한 그룹 사례부터 시작한다. 이 글은 그 점진성을 따라가며 왜 모형 비교 관점이 자연스러운가 를 보여준다.
순서:
- 일반선형모형 (GLM) 의 일반 형태
- One-Group 사례 — \(Y_i = \mu + \varepsilon_i\)
- 최소제곱 추정 — 표본 평균이 LSE 인 이유
- Two-Group 사례 — \(Y_i = \mu_j + \varepsilon_i\) (\(j \in \{1, 2\}\))
- 두 모형의 SSE 비교 = t 검정 = F 검정의 특수 사례
2 일반선형모형 — 모든 분석의 토대
종속 변수 \(Y\) 가 예측 변수의 선형 결합 + 무작위 오차 로 표현되는 모형이다.
\[ Y_i = \beta_0 X_{0i} + \beta_1 X_{1i} + \beta_2 X_{2i} + \cdots + \beta_p X_{pi} + \varepsilon_i \]
- \(Y_i\): \(i\) 번째 관측의 종속 변수
- \(X_{ji}\): \(i\) 번째 관측의 \(j\) 번째 예측 변수 값
- \(\beta_j\): 효과 모수 (모집단 값, 미지)
- \(\varepsilon_i\): \(i\) 번째 잔차 (무작위)
이 모형은 t 검정, ANOVA, ANCOVA, 회귀, 다원 ANOVA 까지 모두 특수 사례 로 포함한다.
핵심 아이디어는 다음과 같다.
- 행 = 관측 (개인, 시점, plot 등)
- 열 = 예측 변수 (그룹 라벨, 공변량, 시간 등)
- 모수 = 각 예측 변수의 효과 크기
이 구조 안에서 어떤 예측 변수를 모형에 포함할지 가 모형 선택 (model selection) 이다. 그리고 두 모형 (full, restricted) 의 비교 가 가설 검정이다.
GLM 을 다음과 같이 단계적으로 본다.
| 모형 | 식 | 의미 |
|---|---|---|
| 절편만 | \(Y_i = \mu + \varepsilon_i\) | 평균 추정 (one-group) |
| 그룹 라벨 | \(Y_i = \mu_j + \varepsilon_i\) | 그룹별 평균 (two-group, ANOVA) |
| 연속 예측 변수 | \(Y_i = \beta_0 + \beta_1 X_i + \varepsilon_i\) | 단순 회귀 |
| 다중 예측 변수 | \(Y_i = \beta_0 + \sum_j \beta_j X_{ji} + \varepsilon_i\) | 다중 회귀, ANOVA |
| 상호작용 포함 | \(Y_i = \cdots + \beta_{12} X_{1i} X_{2i} + \cdots\) | 요인 설계 |
이 표는 ANOVA·회귀·요인 설계가 같은 가족 임을 보여 준다. 절편만 모형에서 시작하여 예측 변수를 점진적으로 추가하면 모든 분석이 자연스럽게 구성된다.
이 통합 시각이 모형 비교 관점의 위력이다. 학생이 t 검정·ANOVA·회귀·ANCOVA 를 별개의 절차 로 외울 필요 없이, GLM 의 어떤 특수 사례인가 만 이해하면 된다.
3 One-Group 사례 — \(\widehat{\mu} = \bar{Y}\) 의 정당성
가장 단순한 사례는 한 그룹의 평균 추정이다. 모형:
\[ Y_i = \mu + \varepsilon_i, \quad i = 1, 2, \ldots, n \]
이 모형은 종속 변수 \(Y\) 가 모집단 평균 \(\mu\) 와 개인별 무작위 오차 \(\varepsilon_i\) 의 합이라고 가정한다.
3.1 모수 추정 — 어떻게 \(\widehat{\mu}\) 를 정하는가
식 \(Y_i = \mu + \varepsilon_i\) 는 \(n\) 개의 관측에 대해 \(n\) 개의 식이고, 미지수는 \(\mu\) 1 개와 \(\varepsilon_i\) \(n\) 개로 총 \(n+1\) 개이다. 미지수가 더 많으므로 추가 제약 이 필요하다.
자연스러운 제약: 예측 오차가 평균적으로 작아지도록 \(\widehat{\mu}\) 를 고른다. 그런데 단순히 오차의 합 을 작게 하면 양수 오차와 음수 오차가 상쇄된다. 따라서 제곱한 오차의 합 을 최소화한다.
잔차 제곱합 \(\sum_{i=1}^{n} (Y_i - \widehat{\mu})^2\) 을 최소화하는 \(\widehat{\mu}\) 를 최소제곱 추정량 (LSE) 으로 정의한다.
\[ \widehat{\mu} = \arg\min_{c} \sum_{i=1}^{n} (Y_i - c)^2 \]
3.2 정리: \(\widehat{\mu} = \bar{Y}\) 가 LSE
표본 평균 \(\bar{Y} = \frac{1}{n} \sum Y_i\) 가 위 최소제곱 문제의 해이다. 즉
\[ \widehat{\mu} = \bar{Y} \]
3.3 증명
임의의 상수 \(C\) 에 대해 잔차 제곱합을 분해한다. 핵심 트릭은 \(\bar{Y}\) 를 더했다 빼는 것이다.
\[ \sum (Y_i - C)^2 = \sum (Y_i - \bar{Y} + \bar{Y} - C)^2 \]
전개하면
\[ = \sum (Y_i - \bar{Y})^2 + 2 (\bar{Y} - C) \sum (Y_i - \bar{Y}) + \sum (\bar{Y} - C)^2 \]
여기서 \(\sum (Y_i - \bar{Y}) = 0\) 이므로 중간항이 사라진다. 또한 \(\sum (\bar{Y} - C)^2 = n (\bar{Y} - C)^2\) 이므로,
\[ \sum (Y_i - C)^2 = \sum (Y_i - \bar{Y})^2 + n (\bar{Y} - C)^2 \tag{$\star$} \]
오른쪽 두 항 모두 비음수이고, 두 번째 항 \(n (\bar{Y} - C)^2\) 은 \(C = \bar{Y}\) 일 때만 0 이 된다. 따라서 \(C = \bar{Y}\) 가 잔차 제곱합을 최소화한다. \(\square\)
식 \((\star)\) 는 ANOVA 의 분산 분해 의 가장 단순한 형태다. 잔차 제곱합을 두 부분으로 나눈다.
- \(\sum (Y_i - \bar{Y})^2\) — 최소 잔차 (모형이 자유로울 때)
- \(n (\bar{Y} - C)^2\) — 추가 잔차 (모형을 \(\mu = C\) 로 제한할 때)
이 분해가 왜 ANOVA 의 핵심인가? 가설 검정에서 우리는 두 모형을 비교한다.
- Full: \(Y_i = \mu + \varepsilon_i\) — \(\mu\) 자유 → 잔차 \(\sum (Y_i - \bar{Y})^2\)
- Restricted: \(Y_i = \mu_0 + \varepsilon_i\) — \(\mu = \mu_0\) 고정 → 잔차 \(\sum (Y_i - \mu_0)^2\)
식 \((\star)\) 에서 \(C = \mu_0\) 으로 놓으면, 두 모형의 잔차 차이 가 \(n (\bar{Y} - \mu_0)^2\) 이다. 이 양이 클수록 제한 모형이 부족하다 — 즉 \(H_0: \mu = \mu_0\) 가 거짓일 가능성이 크다. 이 양을 적절히 정규화한 것이 t 통계량 (또는 \(F = t^2\)) 이다.
4 One-Sample t 검정의 재해석
이제 one-sample t 검정을 모형 비교로 재해석한다.
4.1 두 모형
- Full model: \(Y_i = \mu + \varepsilon_i\) — \(\mu\) 는 미지, 자유롭게 추정
- Restricted model: \(Y_i = \mu_0 + \varepsilon_i\) — \(\mu = \mu_0\) 으로 고정 (예: \(\mu_0 = 100\))
4.2 잔차 제곱합
식 \((\star)\) 에서 \(C = \mu_0\) 으로 놓으면:
\[ \text{SSE}_R = \text{SSE}_F + n (\bar{Y} - \mu_0)^2 \]
즉 제한 모형의 잔차 제곱합 = 전체 모형의 잔차 제곱합 + \(n (\bar{Y} - \mu_0)^2\).
4.3 F 통계량
\[ F = \frac{(\text{SSE}_R - \text{SSE}_F) / 1}{\text{SSE}_F / (n-1)} = \frac{n (\bar{Y} - \mu_0)^2}{s^2} \]
여기서 \(s^2 = \text{SSE}_F / (n-1) = \frac{1}{n-1} \sum (Y_i - \bar{Y})^2\) 는 표본 분산이다.
4.4 t 통계량과의 관계
전통적인 one-sample t 통계량은:
\[ t = \frac{\bar{Y} - \mu_0}{s / \sqrt{n}} \]
이를 제곱하면:
\[ t^2 = \frac{n (\bar{Y} - \mu_0)^2}{s^2} = F \]
즉 one-sample t 검정 = 모형 비교 F 검정. 두 검정은 수학적으로 동치 이다.
4.5 함의
이 동치성이 무엇을 시사하는가?
- t 검정도 사실은 모형 비교다. “두 모형 중 어느 것이 더 자료를 잘 설명하는가” 를 묻는다.
- F 의 분포가 t 의 분포의 제곱. \(F_{1, n-1} = (t_{n-1})^2\).
- 확장성. 두 그룹, 여러 그룹으로 확장할 때 F 통계량의 형태는 그대로 유지 된다.
5 Two-Group 사례 — 일반화
이제 두 그룹의 평균 비교로 확장한다. 모형:
\[ Y_{ij} = \mu_j + \varepsilon_{ij}, \quad j \in \{1, 2\}, \; i = 1, \ldots, n_j \]
\(\mu_j\) 는 그룹 \(j\) 의 모집단 평균이다.
5.1 모수 추정
각 그룹의 LSE 는 그룹별 표본 평균이다.
\[ \widehat{\mu}_1 = \bar{Y}_1, \quad \widehat{\mu}_2 = \bar{Y}_2 \]
이는 일변수 사례의 직접 확장이다. 각 그룹에 대해 식 \((\star)\) 를 적용하면 그룹별 표본 평균이 잔차 제곱합을 최소화함을 알 수 있다.
5.2 두 모형
- Full model: \(Y_{ij} = \mu_j + \varepsilon_{ij}\) — 그룹마다 다른 평균 (\(\mu_1, \mu_2\) 각자 추정)
- Restricted model: \(Y_{ij} = \mu + \varepsilon_{ij}\) — 모든 그룹이 같은 평균 (\(\mu_1 = \mu_2 = \mu\))
귀무가설 \(H_0: \mu_1 = \mu_2\) 는 restricted model 이 충분하다 와 동치이다.
5.3 잔차 제곱합
- \(\text{SSE}_F = \sum_{i, j} (Y_{ij} - \bar{Y}_j)^2\) — 각 그룹 평균에 대한 잔차
- \(\text{SSE}_R = \sum_{i, j} (Y_{ij} - \bar{Y})^2\) — 전체 평균에 대한 잔차 (\(\bar{Y}\) 는 전체 평균)
대수적으로 다음 관계가 성립한다 (분산의 between-within 분해).
\[ \text{SSE}_R = \text{SSE}_F + \sum_{j=1}^{2} n_j (\bar{Y}_j - \bar{Y})^2 \tag{$\star\star$} \]
오른쪽 두 번째 항이 그룹 간 제곱합 (sum of squares between, \(\text{SS}_B\)) 이다.
5.4 F 통계량
\[ F = \frac{\text{SS}_B / 1}{\text{SSE}_F / (n_1 + n_2 - 2)} = \frac{n_1 (\bar{Y}_1 - \bar{Y})^2 + n_2 (\bar{Y}_2 - \bar{Y})^2}{s_p^2} \]
여기서 \(s_p^2 = \text{SSE}_F / (n_1 + n_2 - 2)\) 는 풀링된 분산이다.
5.5 Two-Sample t 와의 관계
두 그룹 비교의 t 통계량:
\[ t = \frac{\bar{Y}_1 - \bar{Y}_2}{s_p \sqrt{1/n_1 + 1/n_2}} \]
이를 제곱하면 위 F 와 같다. 다시 한 번:
\[ F_{1, n_1 + n_2 - 2} = (t_{n_1 + n_2 - 2})^2 \]
식 \((\star\star)\) 의 의미를 시각적으로 본다.
자료를 두 그룹의 점들로 그리고, 두 가지 평균 라인을 그린다.
- 전체 평균 \(\bar{Y}\) — 한 개의 가로선
- 그룹별 평균 \(\bar{Y}_1, \bar{Y}_2\) — 그룹 영역에 따라 두 개의 가로선
각 점에서 전체 평균 라인까지의 수직 거리 제곱합이 \(\text{SSE}_R\) 이다. 각 점에서 자기 그룹 평균 라인까지의 수직 거리 제곱합이 \(\text{SSE}_F\) 이다.
만약 두 그룹 평균이 전체 평균과 같다면 (\(H_0\) 참), 두 라인이 일치하고 \(\text{SSE}_F = \text{SSE}_R\). 이 경우 F 의 분자가 0 이라 F = 0. 만약 두 그룹 평균이 멀리 떨어져 있다면, 그룹 라인이 전체 라인보다 자료에 잘 맞아 \(\text{SSE}_F < \text{SSE}_R\). 이 차이가 \(\text{SS}_B\) 이고 F 의 분자가 된다.
따라서 F 통계량은 “그룹 라인이 전체 라인보다 얼마나 더 자료에 맞는가” 를 정량화한 것이다. 이 직관이 모형 비교의 본질이다.
6 두 그룹 검정의 두 가지 분해
두 그룹 검정의 잔차 제곱합 분해는 다음과 같다.
\[ \underbrace{\text{SS}_T}_{\text{전체}} = \underbrace{\text{SS}_B}_{\text{그룹 간}} + \underbrace{\text{SS}_W}_{\text{그룹 내}} \]
여기서
- \(\text{SS}_T = \sum_{i, j} (Y_{ij} - \bar{Y})^2\) — 전체 자료의 변동
- \(\text{SS}_B = \sum_j n_j (\bar{Y}_j - \bar{Y})^2\) — 그룹 평균이 전체 평균과 다름으로 인한 변동
- \(\text{SS}_W = \sum_{i, j} (Y_{ij} - \bar{Y}_j)^2 = \text{SSE}_F\) — 그룹 내 잔차
이 분해가 분산의 분석 (analysis of variance) 의 어원이다. 자료의 전체 변동 을 그룹 간 변동 과 그룹 내 변동 으로 분해한다.
6.1 자유도의 분배
\[ \underbrace{n - 1}_{\text{SS}_T \text{ 자유도}} = \underbrace{1}_{\text{SS}_B \text{ 자유도}} + \underbrace{n - 2}_{\text{SS}_W \text{ 자유도}} \]
자유도의 의미:
- \(\text{SS}_T\) 의 자유도는 \(n - 1\) (전체 평균 1 개를 추정했으므로)
- \(\text{SS}_B\) 의 자유도는 \(J - 1 = 2 - 1 = 1\) (그룹 평균 1 개의 자유로움)
- \(\text{SS}_W\) 의 자유도는 \(n - J = n - 2\) (각 그룹에서 평균 1 개씩 추정했으므로)
이 자유도가 F 분포의 모수가 된다: \(F_{J-1, n-J}\).
7 평균 제곱 (Mean Squares)
각 SS 를 자유도로 나눈 것이 평균 제곱 (mean square, MS) 이다.
\[ \text{MS}_B = \frac{\text{SS}_B}{J - 1}, \quad \text{MS}_W = \frac{\text{SS}_W}{n - J} \]
F 통계량은 두 MS 의 비율이다.
\[ F = \frac{\text{MS}_B}{\text{MS}_W} \]
전통적으로 ANOVA 표는 다음 형식이다.
| Source | SS | df | MS | F |
|---|---|---|---|---|
| Between | \(\text{SS}_B\) | \(J - 1\) | \(\text{MS}_B\) | \(\text{MS}_B / \text{MS}_W\) |
| Within (Error) | \(\text{SS}_W\) | \(n - J\) | \(\text{MS}_W\) | |
| Total | \(\text{SS}_T\) | \(n - 1\) |
이 표가 ANOVA 출력의 표준 형식이며, 두 그룹 사례에서 시작해 일반 그룹 수로 자연스럽게 확장된다.
8 \(F = t^2\) 의 함의
두 그룹 비교에서 \(F = t^2\) 라는 사실은 깊은 함의를 가진다.
| 측면 | t 검정 | F 검정 |
|---|---|---|
| 검정 대상 | 두 평균 차이 | 모형 비교 |
| 분포 | \(t_{n-2}\) | \(F_{1, n-2}\) |
| 양측·단측 | 양측·단측 모두 가능 | 본질적으로 양측 |
| 자유도 | \(n - 2\) | \(1, n - 2\) |
| 일반화 | 두 그룹에 한정 | 임의 그룹 수에 적용 |
t 검정은 방향성 (한쪽 그룹이 더 큰가?) 을 다룰 수 있지만, F 검정은 본질적으로 차이의 존재 여부 만 검정한다. 두 그룹 사례에서는 t 검정이 약간 더 정보를 준다.
그러나 세 그룹 이상 으로 확장하면 t 검정은 직접 사용할 수 없고, F 검정이 자연스럽게 일반화된다. 따라서 ANOVA 의 표준은 F 검정이다.
9 코드 예시 — 모형 비교로서의 t 검정
import numpy as np
import pandas as pd
from scipy.stats import ttest_ind, f
from statsmodels.formula.api import ols
import statsmodels.api as sm
np.random.seed(42)
n_each = 20
group_A = np.random.normal(5.0, 1.0, n_each)
group_B = np.random.normal(5.8, 1.0, n_each)
# 1. 표준 t 검정 (Welch 가정 X)
t_stat, p_t = ttest_ind(group_A, group_B, equal_var=True)
print(f"t = {t_stat:.3f}, p = {p_t:.4f}")
print(f"t² = {t_stat**2:.3f}")
# 2. 모형 비교로서의 F 검정
data = pd.DataFrame({
'y': np.concatenate([group_A, group_B]),
'group': ['A']*n_each + ['B']*n_each
})
model_full = ols('y ~ C(group)', data=data).fit()
model_restricted = ols('y ~ 1', data=data).fit()
anova_table = sm.stats.anova_lm(model_restricted, model_full)
print(anova_table)
# 3. F = t² 확인
f_stat = anova_table['F'].iloc[1]
print(f"F = {f_stat:.3f}, t² = {t_stat**2:.3f}, 일치 여부: {np.isclose(f_stat, t_stat**2)}")
# 4. SSE 분해 직접 확인
y_all = np.concatenate([group_A, group_B])
y_overall_mean = y_all.mean()
sse_restricted = ((y_all - y_overall_mean)**2).sum() # SST
sse_full = ((group_A - group_A.mean())**2).sum() + ((group_B - group_B.mean())**2).sum() # SSW
ss_between = sse_restricted - sse_full
print(f"\nSSE_R (restricted, SST) = {sse_restricted:.2f}")
print(f"SSE_F (full, SSW) = {sse_full:.2f}")
print(f"SS_Between = {ss_between:.2f}")
print(f"F = (SS_B / 1) / (SSE_F / df) = {(ss_between / 1) / (sse_full / (2*n_each - 2)):.3f}")이 코드의 마지막 블록은 F 통계량을 두 모형의 SSE 차이로 직접 계산 한다. 이는 표준 t 검정 결과와 일치하며, 모형 비교 관점이 완전히 동등한 표현 임을 보여 준다.
10 후속 — 일반 그룹 사례로
이 글에서는 한 그룹과 두 그룹 사례를 다뤘다. 다음 글 A-MAX3-2 는 임의의 J 그룹 사례로 일반화한다. 핵심 변화는 다음과 같다.
- 그룹 수 \(J\) 가 임의로 일반화 (\(J = 2\) → \(J = 3, 4, \ldots\))
- 자유도가 \(J - 1\) 와 \(n - J\) 로 일반화
- F 분포의 모수가 \(F_{J-1, n-J}\) 로 일반화
수식 형태는 동일하게 유지된다. 이것이 모형 비교 관점의 우아함 이다.
11 관련 주제
선행 지식
후속 주제 (Phase A)
다른 카테고리 연결
- SLR 최소제곱 — 회귀에서의 LSE
- 일원 ANOVA 가설
- SS 분해