\(3^k\) Factorial 실험 — 3 수준 요인 설계

Montgomery Ch.3.8 Three-level Factorials

\(3^k\) factorial 의 정의, 셀 구성, 효과 분해 (선형·이차 직교 다항식 또는 GF(3) 그룹화) 를 정리한다. 양적 요인의 비선형성 검출에 적합한 도구. ML hyperparameter sweep 에서 3 수준 검색의 정수형 응용.

Experimentation
DOE
저자

Kwangmin Kim

공개

2026년 05월 08일

1 정의

정의: \(3^k\) Factorial Design

\(k\) 요인 각 3 수준 (low, mid, high). 총 \(3^k\) 셀. 각 요인 자유도 2.

코딩: \(\{-1, 0, +1\}\) 또는 \(\{0, 1, 2\}\) (GF(3) 처리).

효과 분해: - 양적 요인이면 선형·이차 직교 다항식 (G-MAX6-2). - 명목 요인이면 GF(3) 그룹화 (G-MON3-2).

2 왜 3 수준인가

\(2^k\) 의 한계: 양적 요인의 비선형성 (이차) 을 못 잡음. 2 수준은 선형 추세만 추정.

\(3^k\) 의 이점: - 각 요인의 선형·이차 효과 동시 추정. - Response surface 분석의 기초 (G-MON7). - ML 의 hyperparameter 의 최적값 (역 U 자) 검출.

단점: 셀 수 폭증 (\(3^k = 3, 9, 27, 81, 243, ...\)).

직관: 2 수준 vs 3 수준 의 차이

2 수준: low/high 의 직선 추정만.

3 수준: low/mid/high 의 곡선 추정. 최적이 mid 근처면 mid 의 응답이 가장 좋음 → 이차 곡률 검출.

ML 의 learning rate 같은 hyperparameter: - 2 수준 (1e-4 vs 1e-2): 어느 쪽이 좋은지만. - 3 수준 (1e-4, 1e-3, 1e-2): 최적이 1e-3 근처인지 확인 가능.

3 수준이 양적 요인의 최적화에 필수.

3 효과 분해 — \(3^2 = 9\)

\(A, B\) 각 3 수준. 효과 자유도 8:

  • \(A\) 주효과: 자유도 2 (linear \(A_L\) + quadratic \(A_Q\)).
  • \(B\) 주효과: 자유도 2 (\(B_L + B_Q\)).
  • \(A \times B\) 상호작용: 자유도 4 = \(A_L \times B_L + A_L \times B_Q + A_Q \times B_L + A_Q \times B_Q\).

4 직교 다항식 코딩

\(x \in \{-1, 0, 1\}\) 으로 코딩하면:

  • Linear: \(x\).
  • Quadratic: \(x^2 - 2/3\) (centered, 직교).

또는 정수 형태: - Linear: \((-1, 0, +1)\) - Quadratic: \((+1, -2, +1)\)

직교성 검증: \(\sum_x \text{lin}(x) \cdot \text{quad}(x) = -1 \cdot 1 + 0 \cdot (-2) + 1 \cdot 1 = 0\). ✓

5 가설 데이터 — \(3^2\)

요인 \(A\) = 농도 (low, mid, high), \(B\) = 시간 (1h, 2h, 3h). \(n = 5\).

가상 셀 평균:

\(B\) low \(B\) mid \(B\) high
\(A\) low 30 35 38
\(A\) mid 40 50 53
\(A\) high 45 60 65

(농도와 시간 모두 증가에 따라 응답 ↑, 비선형 패턴.)

5.1 분석

\(A\) 의 trend: - \(A_L\) 강함 (선형 증가). - \(A_Q\) 약함 (거의 선형).

\(B\) 의 trend: - \(B_L\) 강함. - \(B_Q\) 약함 (mid 근처 곡률 약).

\(A \times B\): - \(A_L \times B_L\) 약간 (시너지). - 다른 interaction 작음.

해석: 두 요인 모두 선형 효과 dominant. 약한 시너지.

6 직교 분해의 SS

각 1 자유도 contrast: \[ SS_{\psi} = \frac{n \, \hat\psi^2}{\sum c^2} \]

\(\sum c^2\): - Linear (3 수준): \(1 + 0 + 1 = 2\). - Quadratic (3 수준): \(1 + 4 + 1 = 6\).

각 contrast 별로 \(F\) 검정.

7 Python 코드

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

np.random.seed(2026)
levels = [-1, 0, 1]
n = 5
cell_means = {
    (-1,-1):30, (-1,0):35, (-1,1):38,
    ( 0,-1):40, ( 0,0):50, ( 0,1):53,
    ( 1,-1):45, ( 1,0):60, ( 1,1):65,
}

records = []
for (a, b), mu in cell_means.items():
    for _ in range(n):
        records.append({"A": a, "B": b, "Y": np.random.normal(mu, 3)})
data = pd.DataFrame(records)

# Standard ANOVA (factorial)
model = ols("Y ~ C(A) * C(B)", data=data).fit()
anova = sm.stats.anova_lm(model, typ=2)
print("=== 3^2 ANOVA (factorial) ===")
print(anova.round(3))

# Trend decomposition (orthogonal polynomials)
data["A_lin"] = data["A"]
data["A_quad"] = data["A"]**2 - 2/3
data["B_lin"] = data["B"]
data["B_quad"] = data["B"]**2 - 2/3

model_trend = ols(
    "Y ~ A_lin + A_quad + B_lin + B_quad + A_lin:B_lin + A_lin:B_quad + A_quad:B_lin + A_quad:B_quad",
    data=data
).fit()
print("\n=== Trend decomposition ===")
print(sm.stats.anova_lm(model_trend, typ=2).round(3))

# 각 contrast 의 effect size
print("\n=== Effects ===")
for col in ["A_lin", "A_quad", "B_lin", "B_quad",
            "A_lin:B_lin", "A_lin:B_quad", "A_quad:B_lin", "A_quad:B_quad"]:
    if col in model_trend.params.index:
        print(f"  {col}: β = {model_trend.params[col]:+.3f}")

8 \(3^k\) 의 셀 수와 fractional 필요

\(k\) \(3^k\) 효과 수
2 9 8 (4 그룹)
3 27 26 (13 그룹)
4 81 80 (40 그룹)
5 243 242 (121 그룹)

\(k \ge 4\) 부터 fractional factorial 필수.

9 \(3^{k-p}\) Fractional Factorial

\(3^k\) 의 1/3, 1/9 fraction: - \(p = 1\): \(3^{k-1}\) runs. - \(p = 2\): \(3^{k-2}\) runs.

각 효과가 다른 효과와 alias. 자세는 Wu-Hamada (2009).

10 \(3 \times 3\) vs \(2 \times 4\) 비교

측면 \(3^2\) \(2^k\) (4 cells)
셀 수 9 4
양적 요인 선형 + 이차 가능 선형만
명목 요인 가능 가능
검정력 작음 (자유도 분배)
적합 비선형성 검출 단순 비교

3 수준은 비선형성 검출에 필수, 2 수준은 단순 비교에 효율적.

11 Mixed Levels

\(2^a \times 3^b\) 같은 mixed:

  • 일부 양적 요인 (3 수준).
  • 일부 명목 또는 binary (2 수준).

예: 2 광고 디자인 × 3 색 × 3 가격 = \(2 \times 3 \times 3 = 18\) runs.

분석은 일반 factorial.

12 가정과 한계

  • 셀 수 ↑: 큰 \(k\) 에 fractional.
  • 양적 요인 권장: 명목 3 수준은 GF(3) 그룹화로 대체.
  • 수준의 등간격: 비등간격은 직교 다항식 재계산 (G-MAX6-3).
  • 곡률 검출의 자유도: 자유도 1 → 검정력 약. \(n\) 충분 필요.

13 응용

13.1 1. 화학 공정

\(3^3 = 27\) 화학 공정 실험. 온도·pH·농도 각 3 수준. 비선형 곡률 검출.

13.2 2. ML hyperparameter

learning rate 의 3 수준 (1e-4, 1e-3, 1e-2): - 선형 효과: lr 이 클수록 좋은가? - 이차 효과: 중간이 최적인가?

3 수준이 단조 vs 곡률 구분 가능.

13.3 3. 농학

비료 농도 (low, mid, high) × 관개 (low, mid, high). 최적 조합 검색.

13.4 4. 식품

설탕·소금·버터 농도 각 3 수준. 맛 평가의 곡률 검출.

14 ML 매핑

매핑: ML 의 RSM 시작점

ML hyperparameter 의 \(3^k\) factorial 은 RSM (G-MON7) 의 시작점.

3^3 = 27 runs.
factor: lr, dropout, weight_decay (각 3 수준).

분석: - 선형 효과로 가장 영향력 큰 hyperparameter 식별. - 이차 효과로 최적 영역 검출. - \(A \times B\) interaction 으로 hyperparameter 간 시너지.

다음 단계: CCD (G-MON7-4) 로 정밀 RSM. 또는 Bayesian optimization 으로 자동화.

15 본 시리즈

G-MON3-0  Factorial 개관
G-MON3-1  2^k Factorial
G-MON3-2  Finite Fields + Grouping
G-MON3-3  Confounding
G-MON3-4  3^k Factorial  ← 현재 글
G-MON3-5  General Construction
G-MON3-6  Fractional Factorial

16 관련 주제

선행 지식

후속 주제

17 더 읽을 거리

  • Box, G. E. P., Hunter, W. G., Hunter, J. S. (2005). “Statistics for Experimenters.”
  • Wu, C. F. J., Hamada, M. S. (2009). “Experiments: Planning, Analysis, and Optimization” (2nd ed). Wiley.
  • Montgomery, D. C. (2017). “Design and Analysis of Experiments” (9th ed). Wiley.
  • Kempthorne, O. (1952). “The Design and Analysis of Experiments.” Wiley.

Subscribe

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