매개 × 조절 결합 — Moderated Mediation 의 분석 (Buisson Ch.12.3)

Mediator 의 효과가 다른 변수에 의존, 3-way path analysis

Buisson (2021) Ch.12 의 mediation × moderation 결합 절을 자세히 정리한다. Moderated Mediation 의 정의와 CD, 두 변수가 mediator 의 효과를 modify 하는 시나리오, Conditional Indirect Effect 의 추정, C-Mart 사례의 단계별 시연을 다룬다.

Experimentation
Causal Inference
저자

Kwangmin Kim

공개

2026년 05월 08일

1 정의

정의: Moderated Mediation

Mediator 의 효과 (X→M 또는 M→Y) 가 다른 변수 (W) 에 의존 (Buisson, 2021, Ch.12).

CD 의 4 가지 조합:

  1. First-stage moderation: W 가 X→M 효과를 modify
  2. Second-stage moderation: W 가 M→Y 효과를 modify
  3. Both stages: W 가 둘 다 modify
  4. Direct moderation: W 가 X→Y 직접 효과를 modify

각 case 의 회귀 form 다름.

직관 — Mediation + Moderation 의 결합

비즈니스 사례:

  • 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 에 의존.

직관 — C-Mart 사례

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 회귀 코드

R / Python
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}\)
직관 — C-Mart Closing Time

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

두 단계 모두 modify

수식:

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]),
    }
직관 — Bootstrap 결과

가상 결과:

  • 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. 시각화 + 비즈니스 권장

8 관련 주제

Subscribe

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