잔차끼리의 회귀: 이중 머신러닝(DML)의 수학과 401(k) 재추정

잔차끼리의 회귀: 이중 머신러닝(DML)의 수학과 401(k) 재추정 대표 이미지
이 글의 목차

지난 편은 하나의 경고로 끝났습니다. 지도학습은 예측의 도구이며, 예측 성능은 인과 타당성의 증거가 아니라는 것입니다. 그 글의 마지막 실험에서 우리는 같은 LASSO를 다르게 배치하는 것만으로 처치효과 추정의 편향이 참값 대비 +39%에서 절댓값 5% 이내로 줄어드는 것을 보았고, 그 아이디어를 일반화한 방법이 이중/편향 제거 머신러닝(double/debiased machine learning, 이하 DML)이라고 소개했습니다(Chernozhukov et al. 2018). 이번 글에서는 앞서 소개한 DML을 본격적으로 살펴봅니다. DML이 작동하는지를 수식으로 설명하고, 참값을 알고 있는 시뮬레이션에서 이론에서 구분한 오차 항 하나하나를 실제로 측정한 뒤, DML 원 논문의 대표 적용 사례인 401(k) 적격성이 순금융자산에 미치는 효과를 같은 데이터로 재추정합니다.

본 글의 구성은 이론의 전개 순서를 그대로 따릅니다. 1절은 90년 된 정리에서 출발합니다. 2절은 단순한(나이브) 결합이 실패하는 이유를 도함수 계산으로 보이고, 3절은 추정오차를 세 개의 항으로 분해해 “직교화가 줄이는 항”과 “교차적합이 줄이는 항”을 구분합니다. 4절은 이 보장에 추가 조건이 필요함을, 조건이 통제하는 나머지항을 인위적으로 키우는 스트레스 테스트로 확인합니다. 5절은 DML의 공식 정의와 추론 이론을, 6절과 7절은 401(k) 재추정과 그 결과의 불확실성 구조를 다루며, 8절은 이 도구가 보장하는 것과 보장하지 않는 것의 범위를 구분합니다. 지난 편과 마찬가지로 본 글의 모든 시뮬레이션·재추정 수치와 그림은 필자가 직접 계산한 결과이며, 재계산에 필요한 방법 정보는 글 끝의 부록에 정리했습니다.


1. 90년 된 정리: 잔차끼리의 회귀

계량경제학의 오래된 정리 하나에서 시작합니다. 선형회귀 \(Y = \theta_0 D + X'\beta + \varepsilon\)에서 \(\theta_0\)의 최소제곱 추정치는, 다음의 2단계 절차로도 정확히 같은 값을 얻을 수 있습니다. 먼저 \(Y\)를 \(X\)에 회귀하여 잔차 \(\tilde{Y}\)를 얻고, \(D\)를 \(X\)에 회귀하여 잔차 \(\tilde{D}\)를 얻은 뒤, 잔차를 잔차에 회귀하는 것입니다. 이것이 Frisch and Waugh (1933)와 Lovell (1963)의 이름을 딴 FWL 정리입니다. 통제변수를 “통제한다”는 말은 수학적으로는, 관심 변수와 결과 변수 양쪽에서 통제변수가 설명하는 부분을 걷어내고 남은 변동끼리 비교한다는 뜻입니다.

FWL 정리는 선형 모형에서 성립합니다. 그런데 통제해야 할 \(X\)가 수십, 수백 개이고 \(X\)가 결과에 미치는 영향이 비선형이라면 어떻게 해야 할까요? “\(Y\)에서 \(X\)의 효과를 걷어낸다”와 “\(D\)에서 \(X\)의 효과를 걷어낸다”는 두 작업은 본질적으로 예측 문제입니다. \(E[Y \mid X]\)와 \(E[D \mid X]\)를 잘 근사하면 되기 때문입니다. 그리고 예측은 지난 편에서 본 대로 지도학습이 가장 잘하는 일입니다. 그렇다면 두 예측을 머신러닝에 맡기고 잔차끼리 회귀하면, FWL의 비선형·고차원 일반화가 되지 않을까요?

방향은 정확히 맞습니다. 다만 두 가지 함정이 있고, 그 함정을 정확히 짚어 해결한 것이 DML입니다. 하나는 정규화 편향(regularization bias, 여기서 정규화는 복잡도 규제를 뜻합니다)이고, 다른 하나는 과적합이 추정에 미치는 영향입니다. 전자는 “예측을 한 번만 하는” 절차에서, 후자는 “자기 표본으로 예측하는” 절차에서 추정의 타당성을 해칩니다. 해결책은 각각 직교화(orthogonalization)와 교차적합(cross-fitting)입니다. 이 글의 앞 절반은 이 두 문장을 수식으로 확인하는 작업입니다.

이하에서 사용할 모형을 적어 둡니다. Robinson (1988)의 부분선형회귀(partially linear regression, PLR)입니다.

$$ Y = D\,\theta_0 + g_0(X) + U, \qquad E[U \mid X, D] = 0, $$ $$ D = m_0(X) + V, \qquad E[V \mid X] = 0. $$

첫 번째 식은 결과 방정식입니다. \(D\)는 관심 있는 처치(정책) 변수이고 \(\theta_0\)는 우리가 추정하려는 관심 모수이며, \(X\)가 결과에 미치는 영향 \(g_0\)에는 특정한 함수형을 미리 가정하지 않습니다. 두 번째 식은 처치 방정식입니다. \(m_0(X)\)는 \(X\)에 따른 처치의 조건부 평균이고, \(V\)는 \(X\)로 설명되지 않는 처치의 변동입니다. \(D\)가 \(X\)에 조건부로 외생적이면 \(\theta_0\)를 처치효과로 해석할 수 있습니다. 이 모형에서 장애모수(nuisance parameter, 여기서는 모수가 함수입니다)는 \(\eta_0 = (g_0, m_0)\) 혹은 아래에서 쓰는 \((\ell_0, m_0)\)이고, 관심 모수는 오직 \(\theta_0\) 하나입니다. DML의 목표는 고차원이거나 복잡한 장애모수를 머신러닝으로 추정하면서도, 저차원 관심 모수에 대해서는 \(\sqrt{N}\) 수렴과 타당한 신뢰구간을 확보하는 것입니다.


2. 단순히 결합하면 왜 실패하는가: 도함수가 보여 주는 문제

머신러닝을 인과 추정에 끌어들이는 가장 자연스러운 시도는 이렇습니다. \(g_0\)를 머신러닝으로 추정해 \(\hat{g}\)를 얻고, \(Y - \hat{g}(X)\)를 \(D\)에 회귀하는 것입니다. 심지어 표본을 반으로 나눠 보조표본에서 \(\hat{g}\)를 학습하고 별도의 주표본(크기 \(n\))에서 \(\theta_0\)를 추정해 과적합 경로를 차단하더라도, 다음 추정량

$$ \hat{\theta} \;=\; \Big(\tfrac{1}{n}\textstyle\sum_{i} D_i^2\Big)^{-1} \tfrac{1}{n}\textstyle\sum_{i} D_i\big(Y_i - \hat{g}(X_i)\big) $$

는 일반적으로 \(\sqrt{n}\) 수렴에 실패합니다. 정확히 말하면, 정규화 편향이 \(m_0\) 방향의 성분을 같은 차수로 남기는 전형적인 경우 \(|\sqrt{n}(\hat{\theta} - \theta_0)| \to_P \infty\)로 발산합니다(Chernozhukov et al. 2018, 1절의 서술도 이 전형적 경우에 대한 것입니다). 어디가 문제인지는 오차를 두 조각으로 나누면 보입니다. \(Y_i - \hat{g}(X_i) = D_i\theta_0 + (g_0 - \hat{g})(X_i) + U_i\)를 대입하면 정확한 항등식

$$ \begin{aligned} \hat{\theta} - \theta_0 \;&=\; a_n + b_n, \qquad \widehat{Q}_D = \tfrac{1}{n}\textstyle\sum_i D_i^2,\\[4pt] a_n \;&=\; \big(n\widehat{Q}_D\big)^{-1} \textstyle\sum_i D_i\, U_i \quad (\text{확률적 선도항}),\\ b_n \;&=\; \big(n\widehat{Q}_D\big)^{-1} \textstyle\sum_i D_i\, \big(g_0 - \hat{g}\big)(X_i) \quad (\text{정규화 편향 항}) \end{aligned} $$

을 얻습니다. 두 항은 \(\theta\) 단위의 오차 기여분이며, 표기 단순화를 위해 이후 첨자 \(n\)을 생략합니다. \(\sqrt{n}\,a\)는 표준적인 정칙 조건에서 정규분포로 수렴하는, 추론의 기준이 되는 항입니다. 문제는 \(b\)입니다. \(D_i = m_0(X_i) + V_i\)이므로 \(b\)의 중심을 좌우하는 것은 \(m_0(X_i)(g_0 - \hat{g})(X_i)\)들의 표본 평균인데, 이 항들은 일반적으로 평균이 0이 아닙니다. 머신러닝 추정량 \(\hat{g}\)는 분산을 줄이기 위해 통상 정규화(벌점, 가지치기, 조기 종료)를 쓰고, 정규화는 대개 편향을 남깁니다. \(\hat{g}\)의 수렴률을 \(n^{-\varphi_g}\)라 하면 머신러닝에서는 통상 \(\varphi_g < 1/2\)이므로, \(\sqrt{n}\,b\)는 \(\sqrt{n}\cdot n^{-\varphi_g}\) 차수까지 커질 수 있고, 수렴률은 상한만 주므로 편향의 평균 \(E[m_0(X)(g_0-\hat g)(X)]\)가 실제로 이 차수로 남는 한 발산합니다. 예측으로서는 훌륭한 \(\hat{g}\)의 작은 편향이, \(\sqrt{n}\) 척도에서는 무시할 수 없을 만큼 커져 추론을 왜곡하는 것입니다.

이 문제를 점수함수와 모멘트 조건으로 표현하면 DML의 핵심 개념이 나옵니다. 위의 나이브 추정량은 점수함수(score function)

$$ \varphi(W; \theta, g) \;=\; \big(Y - \theta D - g(X)\big)\,D $$

의 표본 평균을 0으로 만드는 해입니다. 이 점수의 문제는 장애모수 \(g\)의 오차에 1차적으로 민감하다는 점입니다. \(g_0\)에서 임의의 방향 \(h\)로의 가토(Gateaux) 도함수를 직접 계산해 보면,

$$ \partial_r\, E\big[\varphi(W; \theta_0, g_0 + r\,h)\big]\Big|_{r=0} = -\,E\big[D\,h(X)\big] = -\,E\big[m_0(X)\,h(X)\big] $$

입니다(마지막 등호는 \(E[V \mid X]=0\)). 직교성은 이 도함수가 모든 방향에서 0일 것을 요구하는데, \(m_0\)가 항등적으로 0이 아닌 한 그럴 수 없습니다. 예컨대 \(h = m_0\) 방향에서 도함수는 \(-E[m_0(X)^2] < 0\)입니다. 이는 교란 여부와는 별개의 조건이어서, 처치가 무작위여도 \(m_0(X) = p \neq 0\)이면 이 점수는 직교하지 않습니다. 도함수가 0이 아닌 방향이 존재하므로, \(\hat{g}\)의 오차 중 그 방향의 성분은 모멘트 조건에 1차 오차로 남아 \(\theta\) 추정에 전파됩니다.

해결책은 점수함수를 바꾸는 것입니다. 장애모수의 오차에 1차적으로 둔감한 점수, 즉

$$ \partial_\eta\, E\big[\psi(W; \theta_0, \eta_0)\big]\big[\eta - \eta_0\big] \;=\; 0 $$

을 만족하는 점수를 쓰는 것이며, 이 성질을 네이만 직교성(Neyman orthogonality)이라 부릅니다(Neyman 1959; 1979의 이름을 딴 명칭입니다). PLR에서 직교 점수는 정확히 FWL의 구조를 갖습니다. 본 글이 구현에 사용하는 잔차화(partialling-out) 형태는

$$ \psi\big(W; \theta, (\ell, m)\big) \;=\; \Big(\,\underbrace{Y - \ell(X)}_{\text{결과의 잔차}} \;-\; \theta\,\underbrace{(D - m(X))}_{\text{처치의 잔차}}\Big)\big(D - m(X)\big), \qquad \ell_0(X) = E[Y \mid X] $$

입니다. 부분선형 모형에서는 \(E[Y\mid X]\)와 \(E[D \mid X]\)라는 두 예측 문제를 푸는 형태가 되고, “이중(double)” 머신러닝이라는 이름도 이 대표 사례의 구조를 가리킵니다. 다만 일반 DML의 요체는 예측의 횟수가 아니라 직교 점수와 교차적합이라는 두 원리이며, 모형이 달라지면 직교 점수의 형태도 달라집니다(6절의 IRM이 그 예입니다). 직교성은 계산으로 확인할 수 있습니다. \(Y - \ell_0(X) = \theta_0 V + U\)이므로,

$$ \partial_\ell\colon\; -\,E\big[(D - m_0(X))\,(\ell - \ell_0)(X)\big] = -\,E\big[\underbrace{E[V \mid X]}_{=0}\,(\ell-\ell_0)(X)\big] = 0, $$ $$ \partial_m\colon\; E\big[\theta_0\,V\,(m - m_0)(X)\big] \;-\; E\big[U\,(m - m_0)(X)\big] = 0. $$

첫 줄은 결과 잔차화의 오차가, 둘째 줄은 처치 잔차화의 오차가 각각 1차에서 소거됨을 보입니다. 요컨대 직교 점수는 모형의 두 조건부 평균 제약 \(E[V \mid X] = 0\)과 \(E[U \mid X, D] = 0\)을 이용해 장애모수 추정 오차의 1차 효과를 없애는 설계이고, 잔차화 점수에서는 이 소거가 자연스럽게 성립합니다. 이것이 FWL 구조가 머신러닝 기반 추론에서도 중요한 이유입니다.

덧붙이면, 직교화는 DML만의 발명품이 아닙니다. 고전 계량경제학의 도구변수 추정, 준모수 추론의 유효 점수(efficient score), 그리고 지난 편에서 다룬 이중 선택(Belloni, Chernozhukov, and Hansen 2014)이 모두 같은 원리의 다른 구현입니다. DML의 기여는 이 원리를 임의의 머신러닝 학습기와 결합할 수 있는 일반 절차로 정리하고, 그 결합이 타당해지는 조건을 명시한 데 있습니다.


3. 세 가지 오차와 두 가지 해결책

직교 점수로 바꾸면 무엇이 어떻게 좋아질까요? 잔차화 점수의 표본 해는

$$ \check{\theta} \;=\; \frac{\sum_i \hat{V}_i\,\big(Y_i - \hat{\ell}(X_i)\big)}{\sum_i \hat{V}_i^2}, \qquad \hat{V}_i = D_i - \hat{m}(X_i) $$

입니다. 추정오차를 전개하면 이번에는 세 개의 항이 나옵니다. \(e_\ell = \hat{\ell} - \ell_0\), \(e_m = \hat{m} - m_0\), \(\widehat{Q} = \tfrac{1}{n}\sum_i \hat{V}_i^2\)이라 쓰면, 대수적 항등식으로서 정확히

$$ \begin{aligned} \check{\theta} - \theta_0 \;&=\; a_n^* + c_n^* + b_n^*,\\[4pt] a_n^* \;&=\; \big(n\widehat{Q}\big)^{-1} \textstyle\sum_i V_i\, U_i,\\ c_n^* \;&=\; \big(n\widehat{Q}\big)^{-1} \textstyle\sum_i \big( -V_i\, e_\ell(X_i) + \theta_0\, V_i\, e_m(X_i) - e_m(X_i)\, U_i \big),\\ b_n^* \;&=\; \big(n\widehat{Q}\big)^{-1} \textstyle\sum_i \big( e_m(X_i)\, e_\ell(X_i) - \theta_0\, e_m(X_i)^2 \big) \end{aligned} $$

이 성립합니다. 세 항은 모두 \(\theta\) 단위의 오차 기여분입니다(본문과 그림의 수치도 이 단위이며, 2절의 \(a, b\)도 같은 단위로 제시합니다). 표기 단순화를 위해 이후 첨자 \(n\)을 생략하고 \(a^*, c^*, b^*\)로 부릅니다. 세 항의 성격이 전부 다릅니다.

  • \(a^*\)는 오라클 선도항입니다. 장애모수를 전혀 추정할 필요가 없었다면 남았을 항으로, \(\sqrt{n}\,a^*\)가 중심극한정리에 의해 정규분포로 수렴합니다. 이 항이 추론의 비교 기준입니다(준모수 효율 한계와의 관계는 5절에서 조건과 함께 다룹니다).
  • \(b^*\)는 정규화 편향에서 생기는 항입니다. 나이브 추정량의 \(b\)항과 핵심 차이가 있습니다. \(b\)는 추정오차 \((g_0-\hat g)\)에 1차였지만, \(b^*\)는 추정오차의 2차 곱(\(e_m e_\ell\)과 \(e_m^2\))으로만 이루어져 있습니다. 직교화가 1차 항을 소거했기 때문에 곱만 남은 것입니다. 수렴률 \(n^{-\varphi_m}, n^{-\varphi_\ell}\)로 쓰면 \(\sqrt{n}\,b^*\)의 크기는 \(\sqrt{n}\,(n^{-(\varphi_m+\varphi_\ell)} + n^{-2\varphi_m})\) 수준이므로, 두 장애모수가 각각 \(n^{-1/4}\)보다 빠르기만 하면 \(\sqrt{n}\) 척도에서도 사라집니다. 각각은 \(n^{-1/2}\)보다 훨씬 느려도 된다는 뜻이고, 이것이 머신러닝의 “느린” 수렴률이 허용되는 수학적 이유입니다.
  • \(c^*\)는 구조 오차와 추정 오차의 교차항입니다. \(V_i e_\ell(X_i)\)처럼 모형의 잡음과 학습기의 오차가 곱해진 형태입니다. 이 항이 사라지는 근거는 아래에서 보듯 “학습에 쓰지 않은 관측치의 잡음은 학습된 오차 함수와 곱했을 때 평균이 0”이라는 조건부 기대 논증인데, \(\hat{\ell}\)을 관측치 \(i\)를 포함한 표본으로 학습했다면 이 논증이 무너집니다. 평가 관측치를 학습에 포함하면 \(e_\ell(X_i)\)가 \(V_i, U_i\)에 의존할 수 있기 때문입니다.

두 장치의 역할은 서로 다릅니다. 직교화는 1차 오차를 \(b^*\)의 2차 곱 형태로 바꾸지만 \(c^*\)는 직접 제거하지 못하고, 교차적합은 \(c^*\)를 처리하지만 \(b^*\)는 직접 제거하지 못합니다. 교차적합의 원리는 단순합니다. 표본을 \(K\)개 폴드로 나누고, \(k\)번째 폴드의 잔차를 계산할 때는 그 폴드를 빼고 학습한 장애모수를 씁니다. 논증을 정확히 적어 두면 이렇습니다. 학습에 쓰인 자료 \(\mathcal{D}_{-k}\)와, 확률적 학습기라면 그 시드까지 조건으로 하면 \(e_\ell\)은 더 이상 확률적 대상이 아니라 고정된 함수이고, 관측치 \(i\)가 \(\mathcal{D}_{-k}\)와 독립이므로

$$ E\big[\,V_i\, e_\ell(X_i) \mid \mathcal{D}_{-k}\,\big] \;=\; E\big[\,e_\ell(X_i)\,\underbrace{E[V_i \mid X_i]}_{=0}\,\big] \;=\; 0 $$

이 됩니다. 모형의 조건 \(E[V \mid X]=0\)이 그대로 평균 0을 보장하는 것이며, \(V_i\)와 \(e_\ell(X_i)\)가 독립이 될 필요는 없습니다(둘 다 \(X_i\)에 의존해도 무방합니다). 여기에 조건부 분산을 통제하면 \(c^*\)형 항은 체비쇼프 부등식만으로 소멸합니다(Chernozhukov et al. 2018, 1절). 이때 조건부 분산은 \(E[V^2 e_\ell(X)^2 \mid \mathcal{D}_{-k}]\) 수준이며, \(\mathrm{Var}(V \mid X)\)가 유계라는 적률 조건 아래 \(\|e_\ell\|^2\)와 함께 0으로 수렴합니다. 도구는 초등적이지만 결과는 강력합니다. 표본 분할 없이 같은 결론을 얻는 전통적 준모수 이론의 경로는 학습기가 속하는 함수공간의 복잡도를 돈스커류(Donsker class) 조건으로 제한하는 것인데, 그 조건은 차원이 표본과 함께 커지는 머신러닝 환경에서 일반적으로 성립하지 않습니다. 분할은 이 복잡도 조건을 요구하지 않게 합니다.

이론에서 구분한 세 항을 직접 측정하면

여기까지가 이론적 설명입니다. 본 글의 첫 번째 실험은 이론에서 구분한 각 항을 직접 측정합니다. 위의 분해는 점근 근사가 아니라 유한표본에서 성립하는 항등식이므로, 참 함수를 알고 있는 시뮬레이션에서는 \(a^*, b^*, c^*\)를 관측치별로 직접 계산할 수 있습니다. 원 논문의 그림 1·2가 절차별 추정치의 분포를 나란히 보이는 데서 멈추는 것과 달리, 본 실험은 항등식의 각 항을 직접 계산해 각 방법이 어느 항을 줄였는지 수치로 확인합니다. 실제로 아래 결과에서 세 항의 합은 매 반복에서 추정오차와 기계 정밀도 수준(\(10^{-15}\) 이하)에서 일치합니다. 분해가 근사가 아니라 항등식이라는 뜻입니다.

설계는 이렇습니다. 부분선형 모형에서 \(\theta_0 = 0.5\), \(n = 1{,}000\), 몬테카를로 500회. 장애모수는 두 식이 같은 방향(같은 변수의 시그모이드)을 공유하도록 설정하여, 평활화 편향이 실제로 \(m_0\)와 상관되도록 했습니다(전체 명세는 부록). 네 개의 절차를 비교합니다.

  • 오라클: 참 \(\ell_0, m_0\)를 아는 가상의 추정량으로, \(a^*\)만 남는 기준점
  • A. 비직교 + 분할: 나이브 점수, 표본 분할은 허용. \(b\)가 남는다
  • B. 직교 + 결과모형 자기표본 적합: 직교 점수를 쓰되 결과 쪽 잔차화 \(\hat\ell\)을 자기 관측을 포함한 전체 표본으로 학습. \(c^*\)가 남는다 (과적합 경로를 결과 모형으로 한정하기 위해 \(\hat m\)의 교차적합은 유지했으며, 이는 원 논문 그림 2의 실험과 같은 구조입니다)
  • C. DML: 직교 점수 + \(K=5\) 교차적합(DML2). 두 오차 경로를 모두 통제

결과가 그림 1입니다.

세 절차의 분포

오라클의 평균 편향은 -0.001, 95% 신뢰구간 포함률은 95.2%로 명목값 95%에 가깝습니다. 세 절차는 제각각의 방식으로 이 기준에서 이탈하거나 도달합니다.

절차 A는 오른쪽으로 밀립니다. 평균 편향 +0.080은 이 추정량의 중위 표준오차(0.054)의 1.5배에 이르고, 포함률은 65.2%까지 내려갑니다. 명목상 반복의 95%에서 참값을 포함해야 하는 구간이 실제로는 65.2%에서만 참값을 포함한 것입니다. 절차 B의 실패는 더 흥미롭습니다. 평균 편향 -0.193으로 A보다 크게 밀리는데, 분포의 폭은 오히려 오라클보다 좁습니다(표준편차 0.029 대 0.042). 과적합한 \(\hat\ell\)이 잔차에서 잡음까지 흡수해 버렸기 때문에 추정량은 대단히 정밀해 보이고, 그 좁은 구간이 전부 참값을 비켜 갑니다. 포함률 0%, 즉 500번 중 단 한 번도 참값을 담지 못했습니다. 틀린 답을 자신 있게 내는 추정량입니다. 반면 절차 C는 평균 편향 -0.008, 포함률 94.8%로 오라클과 거의 구분되지 않습니다.

이제 각 오차 항을 살펴봅니다. 그림 2는 500회 각각에서 항등식의 항을 직접 계산한 결과입니다.

오차 항별 분해

숫자가 이론의 예측과 정확히 일치합니다. A의 편향 +0.080 가운데 +0.077, 즉 97%가 \(b\)항(정규화 편향)에서 나옵니다. B의 편향 -0.193 가운데 -0.173, 90%가 \(c^*\)항(과적합 교차항)에서 나오고, 곱 항 \(b^*\)는 -0.019에 그칩니다. C에서는 세 항이 모두 0에 가까워집니다(\(a^*\) -0.0005, \(c^*\) +0.0005, \(b^*\) -0.008). C에 남은 -0.008의 잔여 편향은 전부 \(b^*\)에서 나오는데, 이는 유한표본에서 장애모수 추정 오차의 곱이 충분히 작아지지 않아 남은 값입니다. 다만 크기가 표준오차의 5분의 1 수준이고, 이 실험에서 포함률은 94.8%로 유지됐습니다. 요컨대 직교화가 줄이는 항과 교차적합이 줄이는 항이 다르며, 그 역할 분담이 유한표본 결과에서 항 단위로 확인됩니다.

덧붙일 결과가 하나 있습니다. 절차 B에서 결과 쪽만이 아니라 처치 쪽 \(\hat m\)까지 같은 방식으로 자기 표본에 과적합시키면, 두 흡수 효과가 반대 방향으로 작용해 평균 편향이 -0.010까지 줄어들고 포함률도 93.6%로 돌아옵니다. 얼핏 “분할 없이도 괜찮다”는 증거처럼 보이지만, 이는 두 과적합 효과가 우연히 상쇄된 결과일 뿐, 분할 없는 절차의 타당성을 뒷받침하지 않습니다.


4. 곱-수렴률 조건이 필요한 이유

직교화와 교차적합만으로 추론의 타당성이 자동으로 확보되는 것은 아닙니다. 장애모수 추정치는 곱-수렴률 조건도 충족해야 합니다. 본 글이 쓰는 잔차화 점수의 경우, 일치성에 더해 (표기를 단순화하면)

$$ \big\|\hat{m} - m_0\big\|_{2} \times \Big( \big\|\hat{m} - m_0\big\|_{2} + \big\|\hat{\ell} - \ell_0\big\|_{2} \Big) \;=\; o\big(n^{-1/2}\big) $$

이 요구됩니다(Chernozhukov et al. 2018, Assumption 4.1). 3절의 오차 분해와 이 조건, 두 식은 정확히 대응합니다. \(b^*\)의 두 성분이 \(e_m e_\ell\)과 \(e_m^2\)이었으므로, 조건도 \(\|e_m\|(\|e_m\| + \|e_\ell\|)\)의 형태가 됩니다. 두 장애모수가 모두 \(o(n^{-1/4})\)로 수렴하면 충분하고(그래서 흔히 “\(n^{-1/4}\) 조건”으로 불립니다), 처치식 쪽이 빠르면 결과식 쪽은 그만큼 느려도 됩니다. 예컨대 처치 배정 규칙이 단순해서 \(m_0\)를 빨리 배울 수 있다면 \(\ell_0\) 쪽 학습기는 상당히 둔해도 타당한 추론이 가능합니다. LASSO의 희소성 조건으로 표현하면, 본 글의 잔차화 점수에서는 (로그 인자를 무시하면) \((s^m)^2 + s^m s^\ell \ll N\)이면 됩니다. 처치식의 희소성이 \(s^m = o(\sqrt{N})\)이기만 하면, 결과식의 \(s^\ell\)은 그 여유만큼 커도 좋다는 뜻입니다. 결과식 잔차화를 거치지 않는 다른 직교 점수 \(\psi = (Y - D\theta - g(X))(D - m(X))\)라면 같은 계산이 \(s^g s^m \ll N\)이 되는데, 원 논문은 이를 분할 없는 방법들의 전형적 요구인 \((s^g)^2 + (s^m)^2 \ll N\)과 대비합니다. 어느 쪽이든 조건이 제곱합에서 곱으로 완화됩니다.

이 실험이 확인할 수 있는 범위를 먼저 분명히 하겠습니다. \(o(n^{-1/4})\)는 \(n \to \infty\)의 점근 명제라서, 표본 크기 하나를 고정한 실험으로 “위반”을 실증할 수는 없습니다. 그러나 이 조건이 통제하려는 대상은 유한표본에서도 잴 수 있는 구체적인 양, 곧 3절 항등식의 2차 나머지항(크기로는 \(\sqrt{n}\,\|e_m\|(\|e_m\|+\|e_\ell\|)\))입니다. 그래서 두 번째 실험은 이 나머지항의 스트레스 테스트입니다. 장애모수가 2차 다항 사전(dictionary) 안에 정확히 들어 있는 희소 설계, 즉 CV로 조율한 LASSO 아래에서 나머지항이 작아지기 쉬운 설정을 만들고, 벌점을 CV 최적값의 \(c\)배로 인위적으로 올려 학습을 둔화시킵니다. \(c\)가 커질수록 \(\hat m, \hat\ell\)은 참 함수에서 멀어지고 직접 계산한 곱-통계가 커지며, 이론대로라면 \(b^*\)와 함께 편향은 증가하고 신뢰구간 포함률은 낮아져야 합니다. 극한도 예측 가능합니다. \(c \to \infty\)에서 두 학습기는 폴드별 학습표본 평균이라는 상수 예측으로 퇴화하므로, “잔차”는 폴드별 평균을 뺀 원변수가 되고, 고정 \(K\)의 대표본에서 DML은 공변량 미조정 회귀의 모집단 기울기, 즉 그 누락변수 편향으로 수렴해야 합니다.

결과가 그림 3입니다.

곱-수렴률 조건 스트레스 테스트

왼쪽 그림이 포함률입니다. CV 최적 벌점(\(c=1\))에서는 편향 +0.001에 포함률 95.4%로 명목 포함률 95%에 부합합니다. \(c=3\)에서 87.4%로, \(c=10\)에서 0.6%로 낮아지며, \(c=30\) 이후로는 0%입니다. 오른쪽 그림은 포함률 저하의 원인을 보여줍니다. 반복별로 직접 계산한 편향 항 \(b^*\)가 곱-통계와 함께 자라나는데, 실제로 \(b^*\)의 평균은 전 구간에서 총편향과 사실상 일치합니다(\(c=10\)에서 편향 +0.258 대 \(b^*\) +0.261). 그 원인이 \(b^*\)임을 항등식이 다시 확인해 주는 것입니다.

극한값과 비교해도 결과가 일치합니다. \(c=100\)에서 두 학습기는 사실상 상수 예측으로 퇴화하고, 추정치의 평균 편향은 +0.839가 됩니다. 이 설계에서 공변량 미조정 회귀의 누락변수 편향은 가우스 적률로 해석적으로 계산되며 정확히 \(0.7775/0.925 = +0.8405\)입니다. \(c=100\)의 평균 편향 +0.8389는 이 극한과 몬테카를로 오차 범위(평균의 표준오차 약 0.003) 안에서 부합합니다. 벌점을 충분히 크게 하면 DML은 대표본 극한에서 공변량 미조정 회귀에 수렴합니다. “머신러닝으로 통제한다”는 말의 실질은 결국 장애모수를 얼마나 잘 배우는가에 걸려 있으며, \(o(n^{-1/4})\)는 장애모수 추정 정확도에 요구되는 점근 조건입니다.


5. DML의 정의와 보고 방법

이제 절차를 공식화합니다. 관측치 \(\{W_i\}_{i=1}^N\)를 크기 \(n = N/K\)의 \(K\)개 폴드 \((I_k)_{k=1}^K\)로 무작위 분할하고, 각 \(k\)에 대해 해당 폴드를 제외한 자료 \(I_k^c\)만으로 장애모수 추정치 \(\hat{\eta}_k\)를 학습합니다. 마지막 결합 방식은 두 가지입니다(Chernozhukov et al. 2018, Definition 3.1–3.2).

  • DML1: 폴드별로 \(E_{n,k}[\psi(W; \theta, \hat{\eta}_k)] = 0\)을 풀어 \(\check{\theta}_k\)를 얻고 평균 \(\tilde{\theta} = \frac1K \sum_k \check{\theta}_k\)를 취합니다.
  • DML2: 폴드를 합친 하나의 방정식 \(\frac1K \sum_k E_{n,k}[\psi(W; \theta, \hat{\eta}_k)] = 0\)을 풉니다.

원 논문은 실무적으로 다음을 권합니다. \(K\)는 4–5가 2보다 대체로 낫고(장애모수를 더 많은 자료로 배울 수 있으므로), 결합 방식으로는 모든 폴드의 모멘트 조건을 합쳐 푸는 DML2가 모든 폴드의 야코비안을 함께 사용하므로 더 안정적이어서 권장됩니다. 다만 IRM의 ATE 점수는 \(\psi(W;\theta,\eta) = \phi(W;\eta) - \theta\) 꼴이어서 \(\theta\)의 계수가 모든 관측치와 폴드에서 상수 \(-1\)이고, 이 경우에는 DML1과 DML2가 정확히 일치합니다. 본 글의 구현도 \(K=5\)의 DML2입니다. 이론의 결론은 다음과 같습니다. 장애모수 추정의 일치성, 적률의 유계, 분산의 비퇴화 같은 표준적인 정칙 조건이 필요합니다. 여기에 곱-수렴률 조건을 더한 가정(원 논문 Assumption 4.1) 아래에서

$$ \sigma^{-1}\sqrt{N}\,\big(\tilde{\theta} - \theta_0\big) \;\rightsquigarrow\; N(0, 1), \qquad \sigma^2 = \big(E[V^2]\big)^{-1} E\big[V^2 U^2\big] \big(E[V^2]\big)^{-1} $$

이고, \(\sigma^2\)를 표본 추정량으로 바꿔도 신뢰구간의 타당성이 분포 집합에 대해 균일하게 유지됩니다(같은 논문, Theorem 4.1). 조건부 동분산(\(E[U^2 \mid X, D] = E[U^2]\)) 아래에서 \(\sigma^2\)는 \((E[V^2])^{-1}E[U^2]\)로 줄어드는데, 이는 이 모형의 준모수 효율 한계(semiparametric efficiency bound)와 같습니다. 즉 DML은 편향을 줄이는 데 그치지 않고, 앞의 조건 아래에서 이 준모수 모형이 허용하는 최소 점근분산을 달성합니다.

정의에서 하나 더 주목할 것은 무작위 분할 자체가 추정량의 일부라는 점입니다. 같은 자료, 같은 학습기라도 폴드를 어떻게 나눴는지에 따라 \(\tilde\theta\)는 달라집니다. 원 논문은 이를 유한표본의 실질 문제로 인정하고, 분할을 \(S\)회 반복해 중위수로 집계할 것을 권합니다(3.4절). 점추정은 \(\tilde{\theta}^{\text{med}} = \operatorname{median}_s \tilde{\theta}^s\)로, 표준오차는 (모수 단위의 분할별 표준오차 \(\widehat{\mathrm{se}}_s\)를 써서)

$$ \widehat{\mathrm{se}}^{\,2}_{\text{med}} \;=\; \operatorname{median}_s\Big\{ \widehat{\mathrm{se}}_s^{\,2} + \big(\tilde{\theta}^s - \tilde{\theta}^{\text{med}}\big)^2 \Big\} $$

로 보고하는 것입니다(두 항이 같은 모수 단위라는 점에 유의하시기 바랍니다. 원 논문 3.4절의 \(\hat\sigma^2\) 조정식을 표준오차 척도로 옮긴 것이며, 본 글의 계산도 이 형태입니다). 둘째 항이 분할 변동을 표준오차에 더한다는 점이 중요합니다. 분할 변동도 보고해야 할 불확실성에 포함한다는 뜻입니다. 7절에서 이 원칙을 401(k) 자료에 그대로 적용해 봅니다.


6. 401(k): 미조정 차이 $19,559에서 재추정까지

이제 DML을 401(k) 자료에 적용합니다. DML 원 논문이 대표 실증 사례로 택한 질문은 401(k) 퇴직연금 적격성이 가구의 순금융자산에 미치는 효과입니다. 401(k)는 미국의 고용주 제공 퇴직저축 계좌로, 가입 자격 자체가 “어느 회사에 다니는가”로 결정됩니다. 여기에는 선택 편향 가능성이 있습니다. 401(k)를 제공하는 회사에 다니는 사람들은 애초에 저축 성향이 다를 수 있습니다. 식별 가정은 Poterba, Venti, and Wise (1994; 1995)에 근거합니다. 제도 도입 초기인 1991년 시점에는 사람들이 401(k) 제공 여부를 보고 직장을 고르지는 않았을 것이므로, 소득 등 직업 선택과 관련된 관측 변수를 조건으로 하면 적격성은 외생으로 볼 수 있다는 논증입니다. 원 논문은 이 전략을 그대로 받아들이되, 조건부 평균의 함수형을 연구자가 미리 정하지 않고 머신러닝으로 추정합니다. 자료는 1991년 SIPP(Survey of Income and Program Participation)에서 구축된 \(N = 9{,}915\) 가구이고(Chernozhukov and Hansen 2004와 동일 자료), 결과변수 \(Y\)는 순금융자산, 처치 \(D\)는 적격성 지표, 통제 \(X\)는 나이·소득·교육연수·가구원수·기혼·맞벌이·확정급여연금·IRA 가입·자가보유의 9개 기본 변수입니다.

먼저 미조정 평균 차이를 확인합니다. 아무것도 통제하지 않으면 적격 가구와 비적격 가구의 순금융자산 차이, 곧 공변량을 조정하지 않은 평균 차이(이하 “미조정 차이”)는 $19,559(표준오차 1,413)입니다. 필자가 공개 데이터로 재계산한 값은 $19,559.3 (HC0 기준 1,412.8)로 원 논문 보고치와 자릿수까지 일치하며, 이는 원 논문과 동일한 자료를 사용했음을 확인하는 검증 기준점이 됩니다. 물론 이 $19,559는 인과 효과가 아니라 선택 효과가 섞인 미조정 차이입니다. 기본 9개 변수를 선형으로만 통제한 OLS에서는 이 값이 $5,896 (1,524)까지 줄어듭니다. 그렇다면 함수형을 머신러닝으로 추정하는 유연한 조정에서는 추정치가 어떻게 달라질까요?

추정에는 두 개의 모형을 씁니다. 하나는 지금까지의 PLR이고, 다른 하나는 IRM(interactive regression model)입니다. 둘은 추정 대상 자체가 다릅니다. IRM의 설정은 \(D \in \{0,1\}\), \(Y = g_0(D, X) + U\), \(E[U \mid D, X] = 0\)입니다. 즉 \(g_0(d, x) = E[Y \mid D = d, X = x]\)는 관측 자료의 조건부 평균이고 \(m_0(x) = P(D = 1 \mid X = x)\)는 성향점수입니다. 추정 대상 \(\theta_0 = E[g_0(1,X) - g_0(0,X)]\)는 그 자체로는 조건부 평균 차이의 평균이며, 일관성·비교란(조건부 외생성)과 아래에서 정의할 겹침(positivity) 가정 아래에서 비로소 평균처치효과(ATE)로 식별됩니다(식별 조건은 8절에서 다시 설명합니다). IRM의 직교 점수는

$$ \psi(W;\theta,\eta) = g(1,X) - g(0,X) + \frac{D\,(Y - g(1,X))}{m(X)} - \frac{(1-D)\,(Y - g(0,X))}{1 - m(X)} - \theta $$

로, 회귀 조정과 성향점수 역확률 가중을 결합한 이중 강건(doubly robust) 구조입니다(Robins and Rotnitzky 1995의 영향함수에 기초). 이 점수는 직교할 뿐 아니라 효율적이어서, 모집단 겹침(어떤 \(\varepsilon > 0\)에 대해 \(\varepsilon \le m_0(X) \le 1-\varepsilon\)이 확률 1로 성립)과 적률 조건, 그리고 IRM 장애모수의 곱-수렴률 조건 아래에서 추정량은 Hahn (1998)의 준모수 효율 한계에 도달합니다(같은 논문, Theorem 5.1). 성향점수가 0이나 1에 가까운 관측치의 역확률 가중치가 지나치게 커지는 것을 막기 위해 원 논문을 따라 성향점수 예측치를 [0.01, 0.99]로 클리핑합니다. 즉 구간 밖 값을 가장 가까운 경곗값으로 바꾸며, 관측치를 제거하지는 않습니다. 클리핑은 유한표본 안정화 장치이지 겹침 가정을 대신해 주는 것이 아니며, 참 성향점수가 클리핑 구간 안에 있어 클리핑이 점근적으로 비활성인 경우에는 효율성에도 영향을 주지 않습니다. 한편 처치효과가 \(X\)에 따라 달라질 때 PLR 잔차화 점수의 해가 무엇을 추정하는지는 한 줄 계산으로 확인됩니다. 이진 처치에서 \(E[V\,Y \mid X] = m_0(X)(1-m_0(X))\,\tau(X)\), \(E[V^2 \mid X] = m_0(X)(1-m_0(X))\)이므로(\(\tau(X)\)는 조건부 처치효과), 잔차화 점수의 모집단 해는

$$ \theta_{\mathrm{PLR}} \;=\; \frac{E\big[w(X)\,\tau(X)\big]}{E\big[w(X)\big]}, \qquad w(X) = m_0(X)\big(1 - m_0(X)\big) $$

처치 배정이 가장 불확실한 가구에 큰 가중치를 주는 가중 평균입니다. IRM의 ATE(모집단 분포 \(P_X\)에 따른 평균 \(E[\tau(X)]\))와는 추정하는 평균이 다르므로, 두 열의 값이 다른 것은 오류의 신호가 아니라 모형 정의에서 비롯된 결과입니다.

필자의 재추정 결과가 표 1과 그림 4입니다. 절차는 5절의 권고 그대로입니다. DML2와 \(K=5\)를 쓰고, 학습기 시드는 고정한 채 분할만 100회 반복해 중위수법으로 집계했습니다. 학습기는 LASSO(2차 다항 사전), 랜덤포레스트, 그레이디언트 부스팅의 3종입니다(사양은 부록).

표 1. 401(k) 적격성의 순금융자산 효과 추정치 (달러; 괄호 안은 분할 조정 표준오차)

모형·출처LASSO랜덤포레스트부스팅
PLR — 본 글9,924 (1,340)8,610 (1,342)8,759 (1,374)
PLR — 원 논문8,187 (1,558)9,247 (1,328)9,110 (1,328)
IRM — 본 글8,182 (1,277)7,786 (1,166)7,854 (1,205)
IRM — 원 논문7,170 (1,398)8,105 (1,299)7,713 (1,177)

401(k) 추정치 비교

결과는 세 가지로 요약됩니다. 첫째, 추정치의 감소 폭입니다. 여섯 개의 추정치는 $7,786–$9,924로, 미조정 차이의 약 40–51%, 대략 절반 수준입니다. 조건부 외생성 가정 아래에서 관측 공변량을 유연하게 조정하면 미조정 차이의 절반 안팎만 남는다는 뜻이고, 그 가정이 성립하는 만큼만 감소분을 “선택 효과의 제거”로 읽을 수 있습니다(식별 조건은 8절에서 다시 설명합니다). 흥미로운 것은 선형 통제 OLS($5,896)보다는 모두 높다는 점인데, 함수형을 머신러닝으로 추정한 결과가 손으로 고른 선형 명세와 다른 추정치를 산출했으며, 이는 함수형 선택이 결과에 영향을 미쳤음을 보여 줍니다.

둘째, 원 논문과의 대조입니다. 랜덤포레스트와 부스팅은 원 논문 보고치와의 차이가 수백 달러 이내입니다(표준오차의 절반 이내). 가장 큰 차이는 LASSO에서 나타나, PLR에서 이 글의 추정치가 약 $1,700 높습니다. 다만 사전 구성·벌점 규칙·분할이 모두 원 논문과 다르므로, 어느 요인 때문인지는 이 실험만으로 특정할 수 없습니다. 함수 사전과 조율을 연구자가 설계하는 학습기가 구현 차이에 가장 크게 노출된다는 일반적 교훈과 부합하는 양상이라고만 적어 둡니다.

셋째, IRM 열이 PLR 열보다 낮게 나왔습니다(본 글과 원 논문의 5-fold 결과 공통). 위에서 본 대로 두 열은 서로 다른 가중 평균을 추정하므로 이 차이에 이론적 필연은 없습니다. 가능한 해석은, \(\theta_{\mathrm{PLR}} > \theta_{\mathrm{ATE}}\)가 처치 배정이 불확실한 가구들에서 조건부 효과가 상대적으로 컸을 가능성을 시사한다는 것입니다. 덧붙이면, 클리핑 대상이 된 성향점수 예측치는 사실상 없었습니다(비중 0.01% 미만). 극단 성향점수로 인한 불안정성이 이 클리핑 기준에서는 드러나지 않았다는 뜻이며, 겹침(overlap) 가정 자체를 검증한 것은 아닙니다.

같은 분할에서 학습기만 바꿨을 때의 추정치 차이도 측정했습니다. 각 분할에서 세 학습기 추정치의 최댓값과 최솟값 차이를 구하면, 그 차이의 중위수가 PLR에서는 $1,379(표준오차와 맞먹는 크기)인 반면, IRM에서는 $479에 그칩니다. 이 자료에서는 IRM 추정치가 학습기 선택에 덜 민감했습니다. 다만 이중 강건성이 이러한 결과를 일반적으로 보장한다는 뜻은 아닙니다.


7. 분할을 바꾸면 추정치는 얼마나 달라지는가

6절의 표에는 짧지만 중요한 각주가 붙어 있습니다. “분할 100회, 중위수법.” 5절에서 본 대로 교차적합 DML의 추정치는 폴드를 어떻게 나눴는가에 의존합니다. 같은 자료, 같은 학습기, 같은 코드라도 분할 시드 하나가 다르면 다른 숫자가 나옵니다. 통상의 논문 표에서 이 변동은 각주로만 처리되지만, 본 글은 이 변동을 본문 분석 대상으로 삼습니다. 학습기 시드를 고정한 채 분할 시드만 바꿔, 분할만 달리해 얻은 100개 추정치 전부를 그대로 보이는 것입니다. 이 반복 설계를 이 글에서는 이른바 ‘분할 다중우주’라 부르겠습니다.

실험 설계에서는 두 종류의 무작위성을 구분했습니다. DML 파이프라인에는 무작위성이 분할 말고도 있습니다. 랜덤포레스트는 부트스트랩 표본을, 우리가 쓴 부스팅 구현은 조기 종료용 내부 검증 표본을 무작위로 나눕니다. 분할 시드 하나로 파이프라인 전체를 통제하는 흔한 구현에서는 이 두 산포가 섞여 버려, “분할 변동”이라 부르는 양이 실은 파이프라인 전체의 무작위성이 됩니다. 그래서 본 글은 분할 시드와 학습기 시드를 분리해, 그림 5는 분할만 바꾼 순수한 분할 변동을 측정하고, 학습기 내부 무작위성은 뒤에서 별도로 측정합니다.

분할에 따른 추정치 분포

그림 5는 이 100개 추정치의 분포를 보여 줍니다. 분할 산포(100개 추정치의 표준편차)는 모형·학습기 조합에 따라 $127–$337로, 분할별 표준오차 중위수의 11–25%입니다. 분산 기준으로는 1–6%라서, 중위수법이 표준오차에 추가하는 정도도 이 자료에서는 +0.4–+1.8%에 그칩니다. 즉 이 사례에서 분할 변동은 지배적 불확실성이 아닙니다. 다만 그것은 재어 보았기 때문에 할 수 있는 말입니다. 전체적인 변동은 작지만 개별 편차는 무시하기 어렵습니다. PLR·부스팅에서는 분할 시드만 바꿨는데 추정치가 $7,942에서 $9,557까지, 최대 $1,616 움직였습니다. 시드 하나로 점추정 한 번을 돌려 얻은 점추정치에는 이만큼의 분할 변동이 포함될 수 있다는 뜻입니다. 원 논문이 남긴 관찰(분할 조정 표준오차가 LASSO에서 유독 불어난다는 +20%의 기록)은 우리 구현에서는 재현되지 않았습니다. 두 모형 모두에서 분할에 가장 민감한 것은 부스팅이었고(분할 SD $337·$250), LASSO는 PLR에서 가장 안정적($153)이었으나 IRM에서는 $230으로 부스팅과 비슷했으며, 조정폭도 모든 조합에서 +2% 미만이었습니다. 학습기의 분할 민감도 순위조차 구현과 모형에 따라 달라진다는 뜻입니다.

남는 질문은 변동의 원천입니다. 분할을 고정하고 학습기 시드만 100회 바꾸면 어떻게 될까요? LASSO의 PLR 파이프라인은 내부 무작위성이 없는 결정론적 절차라 100회 모두 정확히 같은 값이 나왔고(IRM 쪽은 로지스틱 최적화의 내부 순서 때문에 표준편차 $3 수준의 미세 변동만 남습니다), 랜덤포레스트에서는 $50 안팎(PLR $50, IRM $44)의 표준편차가 나타났습니다. 부스팅은 달랐습니다. 내부 무작위성만으로 $270(PLR)·$229(IRM), 분할 변동에 맞먹는 크기입니다. 두 변동 원천을 비교하기 위해, 내부 무작위성이 있는 두 학습기(랜덤포레스트·부스팅)를 대상으로 분할 시드 10 × 학습기 시드 10의 교차 설계를 실시해 분산을 성분별로 나눈 것이 그림 6입니다.

분산 성분

분해는 두 학습기에서 서로 다른 결과를 보여 줍니다. 랜덤포레스트에서는 분할 성분이 지배하고(PLR $169, IRM $99), 학습기 무작위성의 가법적 주효과는 0으로 추정되며, 부트스트랩 잡음은 특정 분할×시드 조합에 고유한 잔여(약 $40)로만 남습니다. 부스팅에서는 상호작용·잔여 성분이 가장 큽니다(PLR $269, IRM $199). 조기 종료용 내부 검증 분할의 효과가 외부 분할의 구성에 따라 달라진다는 뜻입니다. 세 실험은 서로 일관된 결과를 보이기도 합니다. 예컨대 PLR·부스팅에서 분할만 바꾼 실험의 산포 $337은 교차 설계에서 계산한 \(\sqrt{207^2 + 269^2} \approx \$339\)와 일치하고, 나머지 조합들도 비슷한 크기에서 부합합니다(10×10 설계라 성분 추정 자체의 표집 오차가 작지 않다는 점은 감안해야 합니다). 요점은 변동의 원천이 하나가 아니라는 사실 자체입니다. 확률적 학습기를 쓰는 DML 추정치에서 분석 절차가 만드는 무작위성에는 분할 성분과 학습기 내부 무작위성 성분이 함께 기여하고, 두 성분의 비율은 학습기와 구현에 따라 다릅니다. 이번 검증 과정에서 배운 교훈을 하나 적어 두면, 시드 하나로 파이프라인 전체를 묶는 구현은 이 두 성분을 구분할 수 없게 만듭니다. 어떤 학습기가 “분할에 민감하다”는 진단은 두 시드를 분리한 설계에서만 평가할 수 있는 판단입니다.

이 절의 실무 교훈은 명확합니다. 교차적합 DML 연구에서는 분할 반복 결과와 중위수법 집계를 기본적으로 보고해야 합니다. 확률적 학습기를 사용한다면 학습기 내부 무작위성과 분할 변동을 분리해 확인할 필요가 있습니다. 단일 시드에서 얻은 두 추정치를 비교할 때는 그 차이가 이 두 변동의 범위 안에 있는지 먼저 살펴야 합니다.


8. 무엇이 보장되고, 무엇이 보장되지 않는가

이 글의 결과를 과대해석하지 않기 위해, DML이 해 주는 일과 해 주지 않는 일, 곧 보장의 범위를 구분하겠습니다.

DML이 보장하는 것은 통계적 성질입니다. 정칙 조건과 곱-수렴률 조건(IRM이라면 모집단 겹침 조건까지)이 충족될 때, 장애모수를 머신러닝으로 추정했음에도 점수가 정의하는 모수에 대해 \(\sqrt{N}\) 수렴하는 추정량과 타당한 신뢰구간을 줍니다. 이 보장 자체는 그 모수를 인과 효과로 읽는 것과 별개이며, 인과 해석에는 다음 문단의 조건부 외생성이 별도로 필요합니다. 함수형을 데이터에 맞게 유연하게 추정하면서도 통계적 추론의 기준은 지키는 것, 이것이 DML이 제공하는 통계적 보장의 범위입니다.

DML이 보장하지 않는 것은 식별입니다. “소득을 조건으로 하면 적격성은 외생”이라는 전제 자체는 어떤 학습기도, 어떤 교차적합도 검증해 주지 않습니다. 관측되지 않는 교란, 예컨대 저축 성향 그 자체가 남아 있다면, DML은 그 교란이 만든 연관을 매우 정밀하게 추정할 뿐입니다. 원 논문도 이 점을 각주에서 명시했습니다. 비교란 가정이 없으면 같은 통계량은 평균처치효과가 아니라 평균예측효과(average predictive effect)로 읽어야 한다는 것입니다. 지난 편의 언어로 돌아가면, DML은 \(\hat{\beta}\)의 문제에서 추정의 품질을 높이는 도구일 뿐, 예측 문제를 인과 문제로 바꿔 주지는 않습니다. 식별은 여전히 연구 설계가 해결해야 할 문제입니다.

한국 자료에 대한 함의를 읽을 때도 같은 구분이 필요합니다. 국가데이터처(옛 통계청)의 마이크로데이터나 행정자료처럼 통제변수가 풍부한 환경은 DML의 곱-수렴률 조건을 충족할 여지가 큰 자료입니다. 다만 그 변수들과 결과·처치의 관계가 희소성이나 평활성 같은 학습 가능한 구조를 가진다는 전제가 붙습니다. 그러나 어떤 변수를 조건으로 해야 처치가 외생이 되는지의 논증, 곧 401(k) 사례에서 Poterba, Venti, and Wise가 했던 그 작업은 자료의 크기로 대신할 수 없습니다. 자료와 추정 도구가 정교해져도 식별 가정을 뒷받침할 연구 설계의 중요성은 줄지 않습니다.


맺으며

이번 편의 결론을 세 문장으로 요약합니다. 첫째, 머신러닝의 예측력을 인과 추정에 쓰는 타당한 방법은 직교 점수와 교차적합의 결합이며, 부분선형 모형에서 그 틀은 예측을 두 번 하고 잔차끼리 회귀하는 것, 곧 90년 된 FWL 정리의 현대적 일반화가 됩니다. 둘째, 그 절차는 두 장치가 서로 다른 오차 항을 줄이기 때문에 작동합니다. 직교화는 1차 편향을 2차 곱 항으로 바꾸고(\(b^*\)), 교차적합은 과적합에서 생기는 교차항을 줄이며(\(c^*\)), 이 역할 분담을 본 글은 오차 항등식의 각 항을 직접 측정해 확인했습니다. 셋째, 여기에 필요한 조건은 곱-수렴률 조건과 식별 가정이며, 전자는 나머지항 스트레스 테스트에서 본 대로 실제 추론 성능을 제약하고, 후자는 어떤 알고리즘으로도 대체할 수 없습니다.

다음 편에서는 예고했던, 종속변수 없이 구조를 찾는 비지도학습의 경제학을 다룹니다. 차원축소가 거시경제학의 요인모형과 만나는 지점, 그리고 군집화와 텍스트 분석이 경제 데이터에서 무엇을 찾아내고 무엇을 찾아내지 못하는지를 살펴보겠습니다.


부록: 방법 및 재계산 정보

방법·실행 환경·실험 설정 (펼쳐 보기)

결과의 재계산에 필요한 방법 정보를 정리해 둡니다. 본 글의 분석 스크립트, 원자료 출처와 해시 정보, 산출물은 사이트 저장소의 재현 패키지(docs/03-analysis/dml-401k)에 보존되어 있으며, 실행 환경과 무작위수 생성 방식의 차이에 따라 세부 수치는 달라질 수 있습니다.

  • 공통: Python 3.13.9, NumPy 2.3.5, pandas 2.3.3, scikit-learn 1.7.2, SciPy 1.16.3, Matplotlib 3.10.6. 무작위수 생성은 NumPy default_rng를 사용했습니다. DML은 전용 패키지(DoubleML·EconML 등)를 쓰지 않고 원 논문의 정의(DML2, 잔차화 점수, IRM ATE 점수)를 직접 구현했습니다. 신뢰구간은 본문 5절의 분산 공식(정리 4.1) 기준 95%입니다.
  • 실험 1 (세 절차, S1): \(p=10\), \(X \sim N(0, \Sigma)\), \(\Sigma_{jk} = 0.5^{|j-k|}\)입니다. \(m_0(x) = \sigma(3x_1) - 0.5 + 0.25x_2\), \(g_0(x) = 3\sigma(3x_1) + 0.5x_2x_3\) (\(\sigma\)는 로지스틱 함수), \(\theta_0 = 0.5\), \(V \sim N(0, 0.75^2)\), \(U \sim N(0,1)\), \(n=1{,}000\), 500회입니다. 학습기는 모든 절차에서 랜덤포레스트(나무 200그루, 잎 최소 5)를 사용했습니다. 절차 A는 50/50 분할 후 보조표본에서 \(\hat\theta\) 오프셋을 3회 갱신하며 \(\hat g\)를 적합하고, 주표본에서 비직교 점수로 추정했습니다. 절차 B는 \(\hat\ell\)을 전체 표본으로 적합해 같은 표본에서 예측(자기 관측 포함, 표본 내 결정계수 평균 0.84)하고 \(\hat m\)은 \(K=5\)로 교차적합했습니다. 과적합 경로를 결과 모형으로 한정한 설계이며, 본문에서 덧붙인 대칭 변형(양쪽 모두 자기 표본 적합)도 같은 설정으로 함께 계산했습니다. 절차 C는 \(K=5\) 교차적합의 DML2입니다. 항별 분해는 본문 3절의 항등식을 참 함수로 계산했습니다.
  • 실험 2 (나머지항 스트레스 테스트, S2): 같은 \(X\) 설계에서 \(m_0(x) = 0.5x_1 + 0.3x_2x_3\), \(g_0(x) = x_1 + 0.8(x_2^2 - 1) + 0.6x_4\). 두 함수 모두 2차 다항 사전 안의 희소 신호입니다. 장애모수는 2차 다항식으로 확장하고 표준화한 변수에 적용한 LASSO로 추정하되, 기준 벌점은 각 학습 폴드 \(I_k^c\) 안에서 5-fold LassoCV로 선택(검증 폴드 누수 차단)하고 거기에 \(c \in \{1, 3, 10, 30, 100\}\)을 곱해 같은 폴드에서 재적합했습니다. \(K=5\) 교차적합 유지, \(n=1{,}000\), 500회입니다. 곱-통계는 \(\sqrt{n}\,\widehat{\mathrm{rmse}}_m(\widehat{\mathrm{rmse}}_m + \widehat{\mathrm{rmse}}_\ell)\)로, 참 함수 대비 표본 RMSE로 계산했습니다. \(c \to \infty\) 극한의 누락변수 편향 \(\mathrm{Cov}(m_0, g_0)/\mathrm{Var}(D) = 0.7775/0.925\)는 가우스 적률로 해석적으로 계산했습니다(대규모 몬테카를로 표본으로 교차 확인).
  • 401(k) 재추정 (E1·E2):
    • 자료: DML 원 논문 저자 공개 저장소의 sipp1991.dta (1991 SIPP, \(N = 9{,}915\); SHA256 1123d5f0…57b4b2, 2026-08-04 취득)를 사용했습니다. \(Y\)=net_tfa, \(D\)=e401, \(X\)=age, inc, educ, fsize, marr, twoearn, db, pira, hown (기본 9종)입니다.
    • 설계: DML2, \(K=5\)입니다. 외부 분할 시드와 학습기 시드를 분리하여 세 실험을 실행했습니다. ⓐ학습기 시드 고정·분할 시드 100회(본문 표·그림의 기준, 중위수법 집계) ⓑ분할 고정·학습기 시드 100회 ⓒ분할 10 × 학습기 시드 10의 교차 설계(반복 없는 2원 분산분석으로 분산 성분 추정; 내부 무작위성이 있는 랜덤포레스트·부스팅 대상)입니다.
    • 학습기: ①LASSO는 2차 다항식으로 확장하고 표준화한 변수에 적용한 LassoCV(5-fold)이며, IRM 성향점수는 L1 벌점 로지스틱(LogisticRegressionCV, liblinear)입니다. ②랜덤포레스트는 나무 200그루, 잎 최소 20이며, 성향점수는 분류기의 확률 예측입니다. ③부스팅은 HistGradientBoosting(최대 200회, 검증 15% 조기 종료)입니다.
    • 클리핑·비교 기준: IRM 성향점수는 원 논문을 따라 [0.01, 0.99]로 클리핑했습니다(구간 밖 예측치를 경곗값으로 치환). 원 논문과 학습기 구현·조율이 다르므로(원 논문은 트리·신경망·앙상블 포함 6종) 수치의 정확한 일치는 기대하지 않으며, 본문의 대조는 그 취지에서 읽어야 합니다. 미조정·선형 통제 OLS의 표준오차는 이분산 로버스트(HC0·HC1)입니다.

🔗 참고문헌

인용 문헌 12건 (펼쳐 보기)

🔍 함께 읽기


본 글은 필자 개인의 의견으로, 소속 기관의 공식 입장과 무관합니다.

AIEconLab

운영진 코멘트

코멘트는 이 페이지에서 누구나 읽을 수 있습니다. 작성은 등록된 운영진 GitHub 계정만 가능합니다.

아래 입력창에서 GitHub로 로그인한 뒤 바로 작성하세요. 저장소 협업자 계정의 코멘트만 등록됩니다.