1 정의
Mediator 의 효과 (X→M 또는 M→Y) 가 다른 변수 (W) 에 의존 (Buisson, 2021, Ch.12).
CD 의 4 가지 조합:
- First-stage moderation: W 가 X→M 효과를 modify
- Second-stage moderation: W 가 M→Y 효과를 modify
- Both stages: W 가 둘 다 modify
- Direct moderation: W 가 X→Y 직접 효과를 modify
각 case 의 회귀 form 다름.
비즈니스 사례:
- PA → VD → GP (mediation chain)
- Children 이 PA→VD 효과 modify (자녀 동반 customer 가 PA 효과 큼)
- Closing time 이 VD→GP 효과 modify (closing 가까우면 시간 효과 약함)
이 두 moderation 이 mediation chain 의 다른 단계에 작용.
→ 분석가가 단순 mediation 외 conditional 효과 측정.
2 First-Stage Moderation
2.1 CD
2.2 W 가 X→M 효과 modify
W ───→
↘
X ──→ M ──→ Y
수식:
Stage 1: M = α_0 + α_X X + α_W W + α_XW (X * W) + ε
Stage 2: Y = β_0 + β_X X + β_M M + ε
해석:
- W = 0 일 때 X 의 M 에 대한 효과 = \(\alpha_X\)
- W = 1 일 때 X 의 M 에 대한 효과 = \(\alpha_X + \alpha_{XW}\)
따라서 indirect effect 도 W 에 의존.
PA → VD → GP, with Children moderating PA → VD:
Children →
↘
PA ──→ VD ──→ GP
Children = 0: PA → VD = +5 분 Children = 1: PA → VD = +20 분
VD → GP = $2/분 (모든 customer 동일)
Conditional indirect:
- Children = 0: 5 × 2 = $10
- Children = 1: 20 × 2 = $40
→ 자녀 동반 customer 의 PA 효과가 4 배.
2.3 회귀 코드
import statsmodels.formula.api as smf
# Stage 1: M ~ X * W (interaction)
m_stage1 = smf.ols("visit_duration ~ play_area * children", data=df).fit()
# Stage 2: Y ~ X + M
m_stage2 = smf.ols("grocery_purchases ~ play_area + visit_duration", data=df).fit()
# Conditional indirect
beta_M = m_stage2.params["visit_duration"]
alpha_X = m_stage1.params["play_area"] # W=0 case
alpha_XW = m_stage1.params["play_area:children"] # interaction
print(f"Indirect at W=0: {alpha_X * beta_M:.2f}")
print(f"Indirect at W=1: {(alpha_X + alpha_XW) * beta_M:.2f}")해석:
- Children=0 의 indirect effect
- Children=1 의 indirect effect
- 차이가 moderated mediation 의 강도
3 Second-Stage Moderation
3.1 CD
3.2 W 가 M→Y 효과 modify
W
↓
X ──→ M ─────→ Y
수식:
Stage 1: M = α_0 + α_X X
Stage 2: Y = β_0 + β_X X + β_M M + β_W W + β_MW (M * W)
해석:
- W = 0 일 때 M → Y 효과 = \(\beta_M\)
- W = 1 일 때 M → Y 효과 = \(\beta_M + \beta_{MW}\)
VD → GP, Closing time 이 modify:
- Closing time 멀음: VD → GP = $2/분 (full effect)
- Closing time 가까움: VD → GP = $0.5/분 (가게 문 닫음, 못 사)
PA → VD → GP 의 indirect:
- Far from closing: $5 = $10
- Near closing: $5 = $2.5
→ Closing time 따라 mediation 강도 다름.
4 Both Stages — Full Moderated Mediation
수식:
Stage 1: M = α_0 + α_X X + α_W1 W1 + α_XW1 (X * W1)
Stage 2: Y = β_0 + β_X X + β_M M + β_W2 W2 + β_MW2 (M * W2)
Conditional indirect:
\[ \text{Indirect}(W_1, W_2) = (\alpha_X + \alpha_{XW1} W_1) \cdot (\beta_M + \beta_{MW2} W_2) \]
매우 복잡. Combinations 의 수가 많음.
복잡한 구조의 위험:
- 많은 parameter → multicollinearity
- 작은 sample 에서 unstable
- Interpretation 어려움
분석가의 default:
- 단순 mediation 부터 시작
- Moderated mediation 은 강한 도메인 가설 시만
- Bootstrap CI 로 robust 검증
비즈니스 보고:
- 단순한 cases (1 stage moderation) 우선
- Both stages 는 academic 분석
5 비즈니스 응용 — 시각화
5.1 Conditional Indirect Plot
5.2 W 별 indirect effect
import matplotlib.pyplot as plt
import numpy as np
# W 의 그리드
w_grid = np.linspace(0, 1, 11)
indirects = (alpha_X + alpha_XW * w_grid) * beta_M
plt.figure(figsize=(8, 5))
plt.plot(w_grid, indirects, "o-")
plt.xlabel("W (Children)")
plt.ylabel("Indirect Effect (PA → VD → GP)")
plt.title("Moderated Mediation: PA effect varies by Children")
plt.grid()
plt.savefig("mod_mediation.png", dpi=80)
plt.show()이 plot 이 conditional indirect 의 visual 보고.
W 별 indirect 의 의미:
- W = 0 (자녀 없음): indirect = $10
- W = 1 (자녀 동반): indirect = $40
매장 우선순위:
- 자녀 비율 높은 매장 → PA 의 mediation 효과 큼
- PA 우선 설치
- ROI 4 배
이 결정이 moderated mediation 의 비즈니스 가치.
6 코드 예시 — Bootstrap
def bootstrap_moderated_mediation(df, B=1000):
"""Conditional indirect effect 의 Bootstrap CI."""
ind_w0 = []
ind_w1 = []
for _ in range(B):
s = df.sample(len(df), replace=True)
m1 = smf.ols("VD ~ PA * W", data=s).fit()
m2 = smf.ols("Y ~ PA + VD", data=s).fit()
a_X = m1.params["PA"]
a_XW = m1.params["PA:W"]
b_M = m2.params["VD"]
ind_w0.append(a_X * b_M)
ind_w1.append((a_X + a_XW) * b_M)
return {
"W=0": np.percentile(ind_w0, [5, 95]),
"W=1": np.percentile(ind_w1, [5, 95]),
}가상 결과:
- W=0 indirect 90% CI: [$8, $12]
- W=1 indirect 90% CI: [$36, $44]
CI 가 겹치지 않음 → 두 segment 의 효과 명확히 다름.
→ Moderated mediation 의 robust 검증.
7 종합 — 분석가의 default
7.1 Moderated Mediation 의 결정
1. 단순 mediation 부터 (E-BUI12-1)
2. 도메인 직관:
- W 가 X → M 의 효과 modify? → First-stage
- W 가 M → Y 의 효과 modify? → Second-stage
3. CD 명시
4. 회귀 (interaction 추가)
5. Conditional indirect 계산
6. Bootstrap CI
7. 시각화 + 비즈니스 권장