1 정의
요인마다 levels 수가 다른 factorial. \(s_1 \times s_2 \times \ldots \times s_k\).
예: \(2 \times 3 \times 4\) — 첫 요인 2 수준, 둘째 3 수준, 셋째 4 수준. 셀 24 개.
대칭 factorial (\(s^k\)) 의 일반화. GF 처리 더 복잡. levels 수가 prime power 가 아닐 때 직교 구성 어려움.
두 단계 randomization: 1. Whole plot: 큰 단위에 한 요인 (whole-plot factor) 무작위 배정. 2. Sub plot: whole plot 안의 작은 단위에 다른 요인 (sub-plot factor) 무작위 배정.
농학 기원: 큰 plot 에 비료 종류 (whole), 작은 sub-plot 에 종자 품종 (sub).
산업: 큰 batch 단위의 변수 (예: 온도) 와 작은 단위의 변수 (예: 압력) 의 결합.
2 Asymmetrical Factorial 의 동기
2.1 왜 비대칭 인가
자연스러운 levels 수가 다름:
- 온도: 2 수준 (저/고).
- 시간: 4 수준 (5, 10, 20, 40 분).
- 농도: 3 수준 (저/중/고).
이를 강제 균등 (\(3^3\) 또는 \(4^3\)) 으로 맞추는 것은 부자연스럽고 자원 낭비.
자원 제약:
- 한 변수의 모든 levels 를 시험할 시간·예산 부족.
- 일부 변수만 더 많은 levels 시험.
2.2 비대칭의 어려움
대칭 \(s^k\) 는 finite field \(GF(s)\) 의 대수 구조 덕에 직교 분해가 자동.
비대칭 \(s_1 \times s_2\) 에서: - \(s_1\) 과 \(s_2\) 가 coprime 이면 일부 직교 구성 가능 (Chinese remainder theorem). - 합성수 (예: \(6 = 2 \times 3\)) 면 finite field 없어 분석 복잡.
실무는 통계 패키지의 자동 처리 (R aov, Python statsmodels).
3 Split-Plot 의 통계 모형
3.1 Whole-Plot + Sub-Plot 모형
요인 \(A\) (whole-plot, \(a\) levels), 요인 \(B\) (sub-plot, \(b\) levels), 각 whole plot 에 \(n\) replicates.
\[ Y_{ijk} = \mu + \alpha_j + \pi_{i(j)} + \beta_k + (\alpha\beta)_{jk} + \varepsilon_{ijk} \]
- \(\alpha_j\): whole-plot factor (fixed).
- \(\pi_{i(j)}\): whole plot \(i\) within \(A=j\) 의 random effect.
- \(\beta_k\): sub-plot factor (fixed).
- \((\alpha\beta)_{jk}\): interaction (fixed).
- \(\varepsilon_{ijk}\): sub-plot residual.
3.2 자유도와 EMS
| Source | \(df\) | EMS |
|---|---|---|
| Whole-plot | \(an - 1\) | |
| ┌ \(A\) | \(a-1\) | \(\sigma^2 + b\sigma^2_\pi + nb\theta_\alpha\) |
| └ Whole-plot error (\(\pi\)) | \(a(n-1)\) | \(\sigma^2 + b\sigma^2_\pi\) |
| Sub-plot | \(an(b-1)\) | |
| ┌ \(B\) | \(b-1\) | \(\sigma^2 + an\theta_\beta\) |
| │ \(A \times B\) | \((a-1)(b-1)\) | \(\sigma^2 + n\theta_{\alpha\beta}\) |
| └ Sub-plot error | \(a(b-1)(n-1)\) | \(\sigma^2\) |
3.3 검정 분모
| 효과 | 분모 |
|---|---|
| \(A\) (whole-plot) | Whole-plot error |
| \(B\) (sub-plot) | Sub-plot error |
| \(A \times B\) | Sub-plot error |
split-plot 데이터를 일반 factorial ANOVA 로 분석하면 모든 효과의 분모가 sub-plot error (작은 \(\sigma^2\)) 가 되어 \(A\) 의 검정이 inflated (false positive).
\(A\) 의 검정 분모는 whole-plot error (일반적으로 큼) 이어야 함.
→ 반드시 split-plot 모형 명시 또는 mixed model 로 적절한 random effect 지정.
R: aov(Y ~ A * B + Error(whole_plot_id/A)) 또는 lmer(Y ~ A * B + (1 | whole_plot_id)).
4 검정력 비교
Whole-plot factor (\(A\)) 의 검정력은 일반 factorial 보다 낮음: - 분모 자유도 작음 (\(a(n-1)\) vs \(abn(n-1)\)). - 분모 분산 큼 (\(\sigma^2 + b \sigma^2_\pi\)).
Sub-plot factor (\(B\)) 와 \(A \times B\) 의 검정력은 높음: - 분모 자유도 큼. - 분모 분산 작음 (\(\sigma^2\)).
→ 가장 관심 있는 효과를 sub-plot 에 배치 권장.
농학에서는 비료 (whole) × 품종 (sub) 일 때 비료 효과보다 품종 효과의 검정력이 높음. 연구자가 품종 효과에 더 관심이면 적절. 비료 효과에 더 관심이면 다른 설계 (RBD) 가 나음.
5 Whole-plot factor 의 두 단계 처리
5.1 일반 split-plot (CRD whole-plot)
whole plots 자체가 무작위 배정 (\(A\) levels 에).
whole plot 1: A=high
whole plot 2: A=low
whole plot 3: A=high
...
각 whole plot 에 sub-plot factor B 의 모든 levels 가 들어감.
5.2 Block 화된 split-plot (RBD whole-plot)
whole plots 가 block 으로 묶임. 각 block 안에서 \(A\) 의 모든 levels 가 등장.
농학: 각 농장 (block) 에 비료 A, B, C 모두 (각 plot 에 다른 비료).
6 Ch.4 의 5 단계
G-MON4-0 개관 (현재 글)
G-MON4-1 Asymmetrical + Confounded Asymmetrical
G-MON4-2 Construction Balanced Confounded
G-MON4-3 v×2² + Analysis
G-MON4-4 Split-Plot Analysis
↓
G-MON5 (Incomplete Block — BIB)
7 응용 — Asymmetrical Factorial
| 분야 | 요인 |
|---|---|
| 화학 공정 | 온도 (2) × 시간 (4) × 농도 (3) |
| 농학 | 비료 (3) × 관개 (2) × 시기 (4) |
| 식품 | 레시피 (3) × 온도 (2) × 시간 (5) |
| 약리 | 약물 (3) × 용량 (4) × 환자 type (2) |
| ML | optimizer (3) × lr (4) × batch (2) |
| IT MVT | UI 색 (4) × 위치 (2) × 사용자 segment (3) |
8 응용 — Split-Plot
| 분야 | Whole plot | Sub plot |
|---|---|---|
| 농학 | 비료 (큰 plot) | 종자 (작은 sub-plot) |
| 산업 | 온도 (oven 단위) | 압력 (개별 부품) |
| 임상 | 처치 (group 무작위) | 시점 (within-subject) |
| IT | 사용자 그룹 (큰 단위) | UI 변종 (개별 사용자) |
| 식품 | 가공 방법 (batch) | 보관 조건 |
| 교육 | 학교 (school-level) | 학생 (개인) |
split-plot 은 Maxwell Ch.12 의 split-plot (G-MAX12-2) 와 같은 구조. Montgomery 는 factorial 의 분수 분할 lens 로 다룸.
9 산업 사례 — 화학 공정
9.1 가상 실험
화학 반응의 수율 최적화. 두 변수: - \(A\) (whole-plot): 반응 온도 (3 levels: 60, 70, 80°C). 온도 변경에 시간 소요. - \(B\) (sub-plot): pH (4 levels: 5, 6, 7, 8). 짧은 시간에 변경 가능.
설계: - 각 온도에서 3 batches (whole plots) 진행. - 각 batch 안에서 4 sub-plots (4 pH 값). - 총 \(3 \times 3 \times 4 = 36\) runs.
실용적 이유로 split-plot — 온도 변경이 비싸 한 batch 에서 모든 pH 값 시험.
9.2 분석 (가상 결과)
| Source | \(SS\) | \(df\) | \(MS\) | \(F\) | \(p\) |
|---|---|---|---|---|---|
| Temperature (\(A\)) | 250 | 2 | 125 | \(125/15 = 8.3\) (whole-plot error) | 0.018 |
| Whole-plot error | 90 | 6 | 15 | — | — |
| pH (\(B\)) | 800 | 3 | 267 | \(267/5 = 53.4\) (sub-plot error) | \(<0.001\) |
| \(A \times B\) | 120 | 6 | 20 | \(20/5 = 4.0\) (sub-plot error) | 0.005 |
| Sub-plot error | 90 | 18 | 5 | — | — |
해석: - 온도 효과 marginal (whole-plot error 큼). - pH 효과 매우 강함. - 온도 × pH interaction 도 유의 — 온도에 따라 최적 pH 가 다름.
10 Python 코드 — Split-Plot 분석
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import mixedlm
np.random.seed(2026)
temperatures = [60, 70, 80]
pH_values = [5, 6, 7, 8]
n_batches = 3
# 진짜 효과
temp_eff = {60: 0, 70: 5, 80: 10}
pH_eff = {5: 0, 6: 8, 7: 15, 8: 12}
interaction = {(60, 5): 0, (60, 8): -3, (80, 5): 5, (80, 8): -2}
records = []
for t in temperatures:
for batch in range(n_batches):
# whole-plot effect
wp_eff = np.random.normal(0, 3)
for ph in pH_values:
mu = (50 + temp_eff[t] + pH_eff[ph]
+ interaction.get((t, ph), 0))
y = mu + wp_eff + np.random.normal(0, 2)
records.append({
"temperature": t, "batch": batch, "pH": ph,
"whole_plot_id": f"T{t}_B{batch}",
"Y": y
})
data = pd.DataFrame(records)
# Mixed model — split-plot 정통 분석
md = mixedlm("Y ~ C(temperature) * C(pH)", data=data,
groups=data["whole_plot_id"]).fit()
print("=== Split-Plot Mixed Model ===")
print(md.summary().tables[1])
print(f"\nWhole-plot variance: {md.cov_re.iloc[0, 0]:.3f}")
print(f"Sub-plot residual: {md.scale:.3f}")
# 잘못된 분석 — 일반 factorial ANOVA (비교용)
from statsmodels.formula.api import ols
md_wrong = ols("Y ~ C(temperature) * C(pH)", data=data).fit()
print("\n=== INCORRECT: 일반 factorial ANOVA ===")
print(sm.stats.anova_lm(md_wrong, typ=2).round(3))
print("\n주의: temperature 의 F 가 inflated (whole-plot error 무시)")11 가정과 한계
11.1 Asymmetrical Factorial
- levels 수의 결정: 사전 가설과 자원 trade-off.
- 셀 균등: 균등이면 표준 ANOVA, 비균등은 Type II/III SS.
- 양적 vs 명목 요인: 양적이면 직교 다항식 분해 (G-MAX6).
11.2 Split-Plot
- 두 단계 randomization 의 정확한 명시: 잘못된 분모 사용 위험.
- Whole-plot 자유도: 작으면 \(A\) 검정력 약 (\(a(n-1)\) — \(a=3\), \(n=2\) 면 자유도 3).
- Mixed model 권장: 일반 ANOVA 보다 명시적.
- Whole-plot vs sub-plot 의 적절한 식별: 어느 변수가 어느 level 에 있는지 명확.
12 ML 응용 — Hyperparameter Sweep 의 Split-Plot 시각
deep learning 에서 hyperparameter 검색 시 split-plot 구조:
- Whole plot (train run 단위): 같은 모델 architecture × seed 의 한 학습 run.
- Sub plot (training step 단위): 같은 run 내의 다른 시점에서 측정 (validation accuracy).
Whole-plot factor: model architecture, optimizer. Sub-plot factor: epoch (시간).
이는 자연스러운 split-plot. 다른 architecture 를 시험하려면 새 run 필요 (비싼 whole plot). 같은 run 내의 epoch 별 측정은 cheap (sub plot).
분석: split-plot mixed model. architecture × epoch interaction → “어느 architecture 가 학습이 빠른가” 의 정확한 검정.
13 관련 주제
선행 지식
후속 주제
- G-MON4-1: Asymmetrical + Confounded
- G-MON4-2: Construction Balanced Confounded
- G-MON4-3: v×2² Analysis
- G-MON4-4: Split-Plot Analysis
다른 카테고리 연결
14 더 읽을 거리
- Federer, W. T., King, F. (2007). “Variations on Split Plot and Split Block Experiment Designs.” Wiley — split-plot 의 종합 reference.
- Box, G. E. P., Jones, S. (1992). “Split-plot designs for robust product experimentation.” Journal of Applied Statistics 19(1): 3-26 — 산업 응용.
- Montgomery, D. C. (2017). “Design and Analysis of Experiments” (9th ed). Wiley — 표준 textbook.
- Cox, D. R. (1958). “Planning of Experiments.” Wiley — 정통 reference.
- Das, M. N., Giri, N. C. (1986). “Design and Analysis of Experiments” (2nd ed). Wiley Eastern — 본 시리즈의 source.