비직교 설계의 SS 유형 — Type I·II·III 의 차이와 선택

Maxwell Ch.7.3 Nonorthogonal Designs · Sequential vs Hierarchical vs Marginal SS

factorial 의 셀 표본 크기가 다르면 주효과·상호작용 SS 가 직교 분해되지 않는다. Type I (sequential), Type II (hierarchical), Type III (marginal) SS 의 정의·차이·언제 어느 것을 쓸지를 정리한다. Type III + unweighted means 가 일반 권장이지만 가정에 따라 Type II 가 적절한 경우도 있다.

Experimentation
DOE
저자

Kwangmin Kim

공개

2026년 05월 08일

1 정의

정의: Type I · II · III Sum of Squares

비직교 설계 (\(n_{jk}\) 가 셀별로 다른 factorial) 에서 효과 \(A\) 의 SS 는 어느 모형에 \(A\) 를 추가하는지에 따라 달라진다.

유형 정의 모형 비교
Type I (sequential) 모형에 효과를 사전 지정 순서 로 추가. SS 는 누적적. \(A\) 추가 직전 vs 직후
Type II (hierarchical) 같은 차수 또는 더 낮은 차수의 효과를 모두 포함 후 그 항을 추가. 상호작용은 그 부모 주효과를 모두 포함한 모형에서. \(\{B\}\) vs \(\{A, B\}\) for \(A\); \(\{A, B\}\) vs \(\{A, B, A \times B\}\) for \(A \times B\)
Type III (marginal) 다른 모든 항을 모형에 포함한 후 그 항만 제거 / 추가. \(\{A, B, A \times B\} \setminus \{A\}\) vs \(\{A, B, A \times B\}\)

등표본 직교 설계에서는 세 유형이 동일한 SS 를 산출한다. 비직교에서만 차이가 발생.

2 왜 비직교에서 SS 가 갈라지는가

직교 설계 (등표본) 에서 marginal 평균은 주효과만의 정보를, 셀 평균은 주효과 + 상호작용을 순수하게 담는다. 셀이 직교라 SS 가 가산된다.

비직교 (불균등 표본) 에서는 marginal 평균이 셀 표본 비율에 따라 가중되어 다른 효과의 정보를 일부 흡수한다. 결과적으로 효과 \(A\) 의 SS 가 효과 \(B\), \(A \times B\) 와 어떻게 관계 지어지는가를 명시해야 SS 가 정의된다.

직관: marginal 평균이 “오염”되는 메커니즘

\(2 \times 2\) 에서 셀 표본이 \((20, 5, 5, 20)\) 이라 하자. Drug Present 행의 marginal 평균 \(= (20 \times 168 + 5 \times 186) / 25 = 171.6\). Drug Absent 행 marginal \(= (5 \times 188 + 20 \times 190) / 25 = 189.6\). 차이 \(= 18\).

만약 셀이 \((5, 20, 20, 5)\) 였다면 marginal 차이가 다르게 나왔을 것이다 — 같은 셀 평균 (효과) 인데도 표본 분포가 marginal 을 흔든다. 이 때문에 “주효과” 의 정의가 모호해진다 — Type I/II/III 는 이 모호함을 다른 방식으로 해소한다.

3 Type I — Sequential SS

정의: 모형에 효과를 사전 지정 순서로 추가하고, 각 단계의 잔차 SS 차이를 그 효과의 SS 로 한다.

순서: A → B → A×B
SS_A           = E(없음)        - E(A)
SS_B           = E(A)           - E(A, B)
SS_{A×B}       = E(A, B)        - E(A, B, A×B)

문제: 순서에 따라 결과가 다르다. \(A\)\(B\) 가 상관 (비직교) 일 때 \(A\) 를 먼저 넣으면 SS_A 가 크고 SS_B 가 작아지고, 반대 순서면 그 반대.

언제 사용? 사전에 명확한 인과·논리 순서가 있을 때 (예: covariate 를 먼저 통제하고 처치 효과를 본다 — ANCOVA 의 정신). R 의 anova() 기본값이지만, factorial 분석에는 일반적으로 부적절.

4 Type II — Hierarchical SS

정의: 효과 \(X\) 의 SS 는 “자기와 같은 차수 이하의 모든 효과를 포함한 모형 vs 거기에 \(X\) 를 추가한 모형” 의 잔차 SS 차이.

SS_A           = E(B)           - E(A, B)
SS_B           = E(A)           - E(A, B)
SS_{A×B}       = E(A, B)        - E(A, B, A×B)

특징: - 주효과 SS 는 다른 주효과를 통제한 결과 (서로 marginal). - 상호작용 SS 는 두 주효과를 통제한 결과. - 상위 차수의 상호작용을 무시하고 주효과 SS 를 정의 — “marginal modeling principle” (Nelder, 1977).

언제 사용? 상호작용이 0 이라는 가정이 합리적일 때. 상호작용이 큰 데이터에서는 주효과 검정이 잘못된 결과를 줄 수 있다.

5 Type III — Marginal SS

정의: 효과 \(X\) 의 SS 는 “전체 모형 vs \(X\) 만 빠진 모형” 의 잔차 SS 차이.

SS_A           = E(B, A×B)      - E(A, B, A×B)
SS_B           = E(A, A×B)      - E(A, B, A×B)
SS_{A×B}       = E(A, B)        - E(A, B, A×B)

특징: - 모든 효과가 다른 모든 효과를 통제한 후의 partial SS. - 셀 평균에 동등 가중치를 주는 “unweighted means analysis” 와 동치. - 비직교에서도 “주효과 = marginal mean 의 차이” 라는 원래 의미를 보존.

언제 사용? 일반 권장. 특히 셀 표본 차이가 무작위·편의에 의한 것일 때 (모집단 비율 반영 아님). SAS, SPSS, statsmodels 의 default.

함정: Type III 의 의미 있는 해석을 위한 조건

Type III 는 “다른 모든 항을 통제” 한 partial SS 이다. 주효과의 의미가 “marginal of other factors held at zero (effect coding) or at the average (sum-to-zero coding)” 인데, 이는 효과 부호화 (contrast coding) 에 의존한다. Sum-to-zero (effect) coding 이어야 unweighted means 와 일치한다. Treatment (dummy) coding 으로 Type III 를 계산하면 결과가 이상해진다 (cell mean intercept 의 영향).

→ R 에서 contrasts(x) <- contr.sum, statsmodels 에서 C(x, Sum) 로 명시.

6 세 유형의 비교 — 가상 비직교 데이터

\(2 \times 2\) 설계, 셀 표본 \((20, 5, 5, 20)\), 셀 평균 \((168, 186, 188, 190)\), \(MS_W = 62.5\).

효과 Type I (A 먼저) Type I (B 먼저) Type II Type III
\(A\) (Drug) 720.0 540.5 540.5 540.5
\(B\) (BF) 320.5 500.0 320.5 320.5
\(A \times B\) 195.0 195.0 195.0 195.0

(가상 수치 — 정확한 값은 데이터 분포에 의존. Type I 의 두 순서가 다른 결과를 주는 점, Type II/III 가 상호작용 통제 여부에서 갈라지는 점을 보여 주는 예.)

특징: - Type I 은 순서 의존적. - Type II 와 III 는 상호작용 SS 가 동일하지만 주효과 SS 의 정의가 다르다 (Type II 는 상호작용 무시, Type III 는 통제). - Type III 가 가장 보수적 (가장 강한 통제).

7 Unweighted Means Analysis

비직교 설계에서 marginal 평균을 셀 표본으로 가중하지 않고 단순 평균하는 방법.

\[ \bar Y_{\cdot k}^{(U)} = \frac{1}{a} \sum_j \bar Y_{jk} \]

이 marginal 평균의 차이가 unweighted main effect 이며 Type III SS 와 일치한다.

직관: Unweighted = “모든 셀이 동등”

표본이 모집단을 대표하지 않으면 (예: 셀 1 에 표본 20, 셀 2 에 표본 5 인 이유가 모집단 비율이 4:1 이라서가 아니라 모집단 비율은 1:1 인데 모집까지의 우연으로 발생) weighted marginal 은 거짓 비율을 강요한다. Unweighted 는 셀별 효과를 동등 취급해 “이 처치 조합 자체의 효과는 무엇인가” 를 묻는다.

반면 모집단 비율이 진짜 4:1 이고 우리가 그 비율 그대로 일반화하려면 weighted (Type I) 가 맞을 수 있다. 일반 권장이 Type III 인 이유는 (1) 표본이 모집단 비율 반영하는 경우가 드물고, (2) Type III 가 실험 설계 의도 (“처치 효과 자체” 를 보고자 함) 와 가장 가깝기 때문이다.

8 R 과 Python 의 default 차이

도구 함수 기본 SS 유형 Type III 옵션
R anova() Type I car::Anova(model, type=3) + contr.sum
R aov() Type I 상동
Python statsmodels anova_lm Type I (typ=1) typ=3 + C(x, Sum) 코딩
SAS PROC GLM Type III default
SPSS Univariate ANOVA Type III default

비직교 설계의 ANOVA 표를 인용하거나 재현할 때 어느 유형인지 반드시 명시 한다. “ANOVA 결과가 다르다” 의 흔한 원인이 SS 유형 불일치이다.

9 Python 코드

import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols
from patsy.contrasts import Sum

# 비직교 데이터 — 셀 표본이 다름
np.random.seed(42)
cells = {
    ("yes", "yes"): (168, 8, 20),  # mean, sd, n
    ("yes", "no"):  (186, 8, 5),
    ("no",  "yes"): (188, 8, 5),
    ("no",  "no"):  (190, 8, 20),
}

records = []
for (drug, bf), (mean, sd, n) in cells.items():
    sbp = np.random.normal(mean, sd, n).round(0)
    for v in sbp:
        records.append({"drug": drug, "bf": bf, "sbp": v})
data = pd.DataFrame(records)

# Cell summary
print("Cell sizes & means:")
print(data.groupby(["drug", "bf"])["sbp"].agg(["count", "mean", "std"]).round(2))

# Type III 를 위한 sum-to-zero coding
model = ols("sbp ~ C(drug, Sum) * C(bf, Sum)", data=data).fit()

# 세 유형 비교
print("\n=== Type I SS (sequential, drug first) ===")
print(sm.stats.anova_lm(model, typ=1).round(2))

print("\n=== Type II SS (hierarchical) ===")
print(sm.stats.anova_lm(model, typ=2).round(2))

print("\n=== Type III SS (marginal) ===")
print(sm.stats.anova_lm(model, typ=3).round(2))

# Type I 순서 변경
model_b_first = ols("sbp ~ C(bf, Sum) * C(drug, Sum)", data=data).fit()
print("\n=== Type I SS (sequential, bf first) ===")
print(sm.stats.anova_lm(model_b_first, typ=1).round(2))

기대 결과 — 비직교 설계에서 Type I 이 순서에 따라 다르고, Type II/III 가 비슷하지만 다른 값을 가진다. 직교 (등표본) 설계로 바꾸면 세 유형이 모두 일치한다.

10 결정 절차

설계가 직교 (등표본) 인가?
├── Yes → 세 유형 모두 동일. 어느 것을 써도 무방.
└── No  → 셀 표본이 모집단 비율을 반영하는가?
          ├── Yes (드물게) → Type I 또는 weighted
          └── No  → Type III (default 권장)
                    └── 단, 상호작용이 0 이라는 사전 가정이 강하면 Type II
함정: Type 별로 결론이 다르면 그 자체가 신호

Type I 과 Type III 의 결과가 크게 다르면 비직교성이 심각한 것이다. 이 경우 단순히 한 유형의 결과를 채택하기보다, 셀 표본 불균등의 원인 을 검토한다 (랜덤 손실? selection bias? 모집단 비율?). 원인에 따라 적절한 SS 유형이 달라진다.

11 결측 셀 (empty cell)

표본이 0 인 셀이 있으면 일부 효과가 식별 불가능 (non-identifiable). 분석 옵션:

  1. 결측 셀을 모형에서 제외 후 partial factorial 로 분석 (자유도 손실).
  2. NULL hypothesis 를 cell 평균 단위로 재정의 하고 가능한 가설만 검정.
  3. 새 데이터 수집 으로 균형 회복.

자동 ANOVA 표는 결측 셀을 만나면 NaN 또는 오류를 낸다. 사전에 셀 표본 점검 필수.

12 가정과 한계 — 종합

  • 비직교 설계 = 셀 표본 불균등: 직교 설계는 표본 균등으로 만든다.
  • 상호작용 가정: Type II 는 “상호작용 = 0” 가정에 의존, Type III 는 가정 없음.
  • Coding 일관성: Type III 는 sum-to-zero (effect) coding 필수. treatment coding 결과는 무의미.
  • 검정력 손실: 비직교 설계는 직교 대비 검정력이 낮다. 가능한 한 균형 설계를 유지하는 것이 우선.

13 관련 주제

선행 지식

후속 주제

다른 카테고리 연결

Subscribe

Enjoy this blog? Get notified of new posts by email: