삼중차분법(DDD)
이중차분으로도 남는 집단별 변화 차이를 한 번 더 차감합니다.
한 지방정부가 산업단지 주변의 야간 소음을 줄이기 위해 밤 10시 이후 공장 가동을 제한하는 정책을 시행했다고 가정해 보겠습니다. 정책 시행 이후 산업단지 인근 주민의 평균 수면시간이 늘어났습니다. 그렇다면 수면시간이 늘어난 이유가 야간 소음 규제 때문이라고 판단할 수 있을까요?
같은 기간에 주민들의 근무 형태가 바뀌거나 지역별 생활환경이 개선되었을 수도 있습니다. 또한 산업단지에서 멀리 떨어진 주민들도 비슷한 변화를 경험했을 가능성이 있습니다. 이중차분법(DID)은 정책 시행 지역과 미시행 지역의 전후 변화를 비교해 이러한 문제를 일부 줄일 수 있습니다.
그런데 정책의 직접적인 영향을 받는 사람과 거의 받지 않는 사람을 추가로 구분할 수 있다면 어떨까요? 예를 들어 산업단지에서 가까운 주민과 멀리 떨어진 주민을 나누어 비교할 수 있습니다.
이렇게 정책 시행 여부, 정책 시행 전후, 정책 영향 대상 여부라는 세 차원의 차이를 결합하여 정책 효과를 추정하는 방법이 삼중차분법(Difference-in-Difference-in-Differences, DDD)입니다.
삼중차분법은 이중차분법을 확장한 인과추론 방법으로, 집단별로 존재하는 추가적인 차이를 고려해야 하는 정책 평가에 활용됩니다. 이번 글에서는 삼중차분법의 기본 원리와 계산 과정, 실제 사례, 회귀모형, 식별 가정, DID와의 차이, 결과 해석과 주의사항을 살펴보겠습니다.
삼중차분법(DDD)이란 무엇인가요?
삼중차분법은 세 가지 기준에 따른 차이를 결합하여 정책이나 제도의 효과를 추정하는 방법입니다.
기본적인 DID에서는 두 가지 차이를 계산합니다. 첫째, 정책 시행 전과 후의 차이입니다. 둘째, 정책 시행 집단과 비교집단 사이의 차이입니다. DDD는 여기에 세 번째 비교 기준을 추가합니다.
예를 들어 소음 규제 정책에서는 다음과 같이 집단을 구분할 수 있습니다.
| 비교 기준 | 구분 |
|---|---|
| 정책 시행 여부 | 규제지역 / 비규제지역 |
| 정책 시행 시점 | 규제 이전 / 규제 이후 |
| 정책 영향 대상 | 산업단지 인접 주민 / 비인접 주민 |
이 세 가지 기준을 결합하면 총 8개의 집단·시점 조합이 만들어집니다. DDD는 이러한 조합에서 나타나는 결과변수의 차이를 비교합니다. 다만 세 가지 비교 기준을 사용한다고 해서 모든 교란요인이 자동으로 제거되는 것은 아닙니다.
정책이 없었을 경우 각 집단 간 격차가 어떻게 변화했을지에 관한 추가적인 식별 가정이 필요합니다.
DID와 DDD는 무엇이 다른가요?
DID는 처치집단과 비교집단의 정책 시행 전후 변화 차이를 이용합니다.
예를 들어 소음 규제가 시행된 지역과 시행되지 않은 지역에서 산업단지 인접 주민의 수면시간 변화를 비교할 수 있습니다. 하지만 두 지역에서 인접 주민의 생활환경 변화가 원래부터 달랐다면 DID 추정값에 편향이 발생할 수 있습니다. DDD는 산업단지에서 멀리 떨어진 비인접 주민을 추가 비교집단으로 활용합니다.
이를 통해 각 지역 내 인접 주민과 비인접 주민의 차이가 정책 전후 어떻게 변했는지를 비교할 수 있습니다.
| 구분 | DID | DDD |
|---|---|---|
| 비교 차원 | 2개 | 3개 |
| 주요 비교 | 처치·비교집단의 전후 변화 | 두 집단의 전후 변화 차이를 추가 집단과 비교 |
| 주요 결과 | 이중차분 추정값 | 삼중차분 추정값 |
| 핵심 조건 | 평행추세 가정 | 집단 간 격차 변화에 대한 평행추세 가정 |
| 장점 | 비교적 간단한 정책 효과 추정 | 추가적인 집단별 변화 요인 고려 가능 |
DDD는 DID보다 항상 우수한 방법은 아닙니다. 세 번째 비교집단이 적절하지 않거나 정책의 영향을 함께 받는다면 DDD 역시 편향될 수 있습니다. 따라서 추가 집단이 실제로 어떤 역할을 하는지 확인하는 것이 중요합니다.
실제 사례: 야간 소음 규제와 주민 수면시간
한 지방정부에서 산업단지의 야간 소음을 줄이기 위한 규제를 시행했다고 가정하겠습니다.
연구자는 규제가 주민들의 평균 수면시간에 미친 영향을 평가하려고 합니다. 규제가 시행된 A지역과 규제가 시행되지 않은 B지역의 주민들을 조사했습니다. 또한 두 지역에서 산업단지로부터 가까운 주민과 상대적으로 멀리 떨어진 주민을 구분했습니다.
연구 설계
| 항목 | 내용 |
|---|---|
| 정책 | 밤 10시 이후 산업단지 공장 가동 제한 |
| 규제지역 | A지역 |
| 비교지역 | B지역 |
| 정책 시행 시점 | 2024년 |
| 정책 이전 | 2023년 |
| 정책 이후 | 2025년 |
| 영향 대상 | 산업단지 인접 주민 |
| 추가 비교 대상 | 산업단지 비인접 주민 |
| 결과변수 | 하루 평균 수면시간(시간) |
이 예제에서는 A지역과 B지역의 산업단지 주변 환경이 유사하지만 A지역에만 규제가 도입되었다고 가정하겠습니다. 또한 비인접 주민은 규제의 직접적인 영향을 받지 않으며, 정책으로 인한 파급효과도 없다고 가정합니다. 연구 질문은 다음과 같습니다.
"야간 소음 규제 이후 규제지역의 산업단지 인접 주민은 다른 집단과 비교했을 때 수면시간이 얼마나 증가했는가?"
DDD는 실제로 어떻게 계산하나요?
삼중차분법은 각 집단의 정책 전후 변화를 계산한 뒤, 이를 세 차원에 걸쳐 비교합니다.
다음은 주민들의 평균 수면시간을 조사한 자료입니다.
정책 시행 전후 평균 수면시간
| 지역 | 주민 유형 | 시행 전 | 시행 후 | 변화 |
|---|---|---|---|---|
| A지역(규제) | 인접 주민 | 6.0시간 | 7.0시간 | +1.0시간 |
| A지역(규제) | 비인접 주민 | 6.8시간 | 7.1시간 | +0.3시간 |
| B지역(비규제) | 인접 주민 | 6.1시간 | 6.5시간 | +0.4시간 |
| B지역(비규제) | 비인접 주민 | 6.7시간 | 6.9시간 | +0.2시간 |
먼저 A지역에서 인접 주민과 비인접 주민의 변화 차이를 계산합니다.
DIDA = 1.0 − 0.3 = 0.7
A지역에서는 산업단지 인접 주민의 수면시간이 비인접 주민보다 0.7시간 더 증가했습니다. 다음으로 B지역에서 같은 차이를 계산합니다.
DIDB = 0.4 − 0.2 = 0.2
B지역에서는 인접 주민의 수면시간이 비인접 주민보다 0.2시간 더 증가했습니다. 마지막으로 두 지역의 DID 결과를 한 번 더 차감합니다.
DDD = 0.7 − 0.2 = 0.5
따라서 DDD 추정값은 +0.5시간, 즉 30분입니다. 이는 규제지역에서 산업단지 인접 주민의 수면시간 증가 폭이 추가 비교집단들의 변화까지 고려했을 때 30분 더 컸다는 의미입니다. 적절한 식별 가정이 성립한다면 이를 야간 소음 규제의 인과효과로 해석할 수 있습니다.
왜 세 번째 차이를 계산하나요?
앞선 예제에서 A지역 인접 주민의 수면시간은 1시간 증가했습니다.
하지만 이 1시간 전체가 소음 규제의 효과는 아닐 수 있습니다. A지역의 비인접 주민도 수면시간이 0.3시간 증가했습니다. 따라서 A지역에서 인접 주민에게 추가로 나타난 변화는 0.7시간입니다. 여기서 분석을 끝내면 A지역 내부에서 발생한 인접·비인접 주민 간 변화 차이를 정책 효과로 판단하게 됩니다.
하지만 B지역에서도 인접 주민의 수면시간이 비인접 주민보다 0.2시간 더 증가했습니다. 즉, 산업단지 인접 주민과 비인접 주민 사이에는 소음 규제와 관계없이 다른 변화가 존재할 수 있습니다. DDD는 이 추가적인 변화까지 차감합니다.
이처럼 DDD는 단순 전후 비교와 이중차분으로 제거되지 않은 특정 집단 간 변화 차이를 추가로 고려합니다. 그러나 이러한 차감이 실제 교란을 제거하는지는 세 번째 비교집단에 대한 가정의 타당성에 달려 있습니다.
DDD 회귀모형은 어떻게 구성하나요?
삼중차분법은 회귀분석으로도 추정할 수 있습니다.
세 가지 이항변수를 정의하겠습니다.
- Treati: 규제지역이면 1, 비규제지역이면 0
- Postt: 정책 시행 이후이면 1, 이전이면 0
- Neari: 산업단지 인접 주민이면 1, 비인접 주민이면 0
기본적인 DDD 모형은 다음과 같습니다.
Yit = β0 + β1Treat + β2Post + β3Near
+ β4(Treat × Post) + β5(Treat × Near) + β6(Post × Near)
+ β7(Treat × Post × Near) + εit
여기서 가장 중요한 것은 세 변수의 삼중 상호작용항 Treat × Post × Near 입니다. 이 항의 회귀계수 β7이 DDD 추정값입니다.
기본적인 선형모형에서 모든 하위 상호작용항이 포함되어 있고 동일한 가중 방식으로 집단 평균을 비교한다면, β7은 앞서 계산한 세 번째 차이에 대응합니다. 다만 추가적인 통제변수를 포함하거나 가중치를 적용하면 회귀계수의 계산 및 해석이 달라질 수 있습니다.
실제 DDD 회귀분석 결과는 어떻게 해석하나요?
앞선 소음 규제 자료를 이용하여 DDD 회귀분석을 실시했다고 가정하겠습니다.
주요 회귀분석 결과
| 변수 | 회귀계수(B) | 표준오차 | p값 |
|---|---|---|---|
| 규제지역 × 시행 후 | 0.30 | 0.17 | .078 |
| 인접 주민 × 시행 후 | 0.20 | 0.12 | .096 |
| 규제지역 × 시행 후 × 인접 주민 | 0.50 | 0.15 | < .001 |
앞선 집단 평균과 일치하도록 설정한 계수입니다. 표준오차와 p값은 설명용 수치로, 실제 표본에서 추정한 값이 아닙니다.
삼중 상호작용항의 회귀계수는 0.50으로 나타났습니다. 이는 다른 비교 차원에 따른 변화를 차감한 이후 규제지역 인접 주민의 평균 수면시간이 추가로 0.5시간 증가한 것으로 추정되었다는 의미입니다. 즉, 약 30분의 증가입니다.
다만 통계적으로 유의한 결과가 나타났다고 해서 인과적 식별 가정이 자동으로 충족되는 것은 아닙니다. 실제 연구에서는 정책이 없었을 경우 세 번째 차이가 어떻게 변화했을지를 뒷받침할 수 있는 연구 설계가 필요합니다.
DDD의 핵심 가정은 무엇인가요?
DDD에서 중요한 것은 정책이 없었을 경우 세 번째 차이가 0이었을 것이라는 가정입니다.
이를 삼중차분에 대한 평행추세 가정으로 이해할 수 있습니다. 앞선 예제에서 정책이 시행되지 않았더라면 A지역과 B지역에서 인접 주민과 비인접 주민 사이의 수면시간 격차가 비슷한 방식으로 변화했어야 한다는 의미입니다.
여기서 모든 집단의 수면시간 수준이 동일할 필요는 없습니다. 또한 네 집단이 각각 정확히 같은 추세를 보여야만 하는 것도 아닙니다. 중요한 것은 규제가 없었다면 A지역에서 나타나는 인접·비인접 주민 간 변화 차이가 B지역에서 나타나는 해당 차이와 같았을 것이라는 조건입니다.
예를 들어 A지역의 인접 주민이 정책과 관계없이 다른 지역보다 더 빠르게 수면시간이 증가할 상황이었다면 이 가정이 위반될 수 있습니다. 이 경우 DDD 추정값에는 정책 효과뿐 아니라 집단별로 서로 다르게 나타난 변화가 함께 포함될 수 있습니다.
평행추세는 어떻게 검토하나요?
DDD의 핵심 가정은 실제로 관찰할 수 없는 반사실적 결과에 관한 것이므로 완전히 검증할 수는 없습니다.
하지만 정책 시행 이전 여러 시점의 자료가 있다면 그 타당성을 검토할 수 있습니다. 예를 들어 정책 시행 전 3년 동안 네 집단의 수면시간을 조사했다고 가정해 보겠습니다. 각 연도에서 다음과 같은 격차를 계산할 수 있습니다.
Gt = (YA,인접,t − YA,비인접,t) − (YB,인접,t − YB,비인접,t)
이 값은 특정 시점에서 A지역과 B지역의 인접·비인접 주민 간 격차가 얼마나 다른지 나타냅니다. 정책 시행 이전에 Gt가 대체로 안정적으로 유지되었다면 DDD의 평행추세 가정을 뒷받침하는 하나의 근거가 될 수 있습니다.
반대로 정책 시행 전부터 이 격차가 지속적으로 커지거나 작아졌다면 정책 이후 차이를 규제 효과로 해석하기 어려울 수 있습니다. 여러 정책 시행 전 시점의 삼중 상호작용 효과를 추정하는 이벤트 스터디 방식도 활용할 수 있습니다.
다만 시행 전 계수가 통계적으로 유의하지 않다고 해서 가정이 입증되었다는 뜻은 아닙니다. 표본 수나 검정력의 영향을 고려해야 합니다.
DID보다 DDD가 더 좋은 방법인가요?
DDD는 비교 차원을 하나 더 추가하지만, 항상 DID보다 더 좋은 결과를 제공하는 것은 아닙니다.
추가 비교집단이 실제로 적절한 역할을 할 때 의미가 있습니다. 예를 들어 A지역의 비인접 주민은 소음 규제의 직접적인 영향을 받지 않지만 다른 지역 변화에는 비슷하게 영향을 받는 집단이라고 가정해 보겠습니다. 이러한 상황이라면 세 번째 차이를 이용해 정책 효과를 더 잘 분리할 수 있습니다.
하지만 비인접 주민도 규제 정책의 영향을 받는다면 문제가 발생할 수 있습니다.
예를 들어 소음 규제로 야간 교통량이 줄어들면서 비인접 지역의 소음도 감소했다면, 비인접 주민은 실제로 정책의 영향을 받은 집단일 수 있습니다.
이 경우 비인접 주민을 영향을 받지 않은 비교집단으로 취급하면 정책의 총효과와 다른 값을 추정하게 됩니다. 또한 세 차원을 비교하면 추정에 사용하는 집단이 더 세분화되므로 표본이 부족한 경우 불확실성이 커질 수 있습니다.
따라서 DDD를 선택할 때는 비교 차원이 많다는 사실보다 추가 집단의 인과적 역할을 설명할 수 있는지가 중요합니다.
표준오차와 정책 시행 단위를 고려해야 하는 이유
DDD 분석에서는 결과변수의 관측 단위와 정책 시행 단위가 다를 수 있습니다.
예를 들어 주민 2,000명을 조사했더라도 소음 규제는 개별 주민이 아니라 지역 단위로 시행됩니다. 같은 지역 주민들의 수면시간은 공통적인 환경의 영향을 받을 수 있으므로 독립적인 관측값으로 취급하기 어려울 수 있습니다. 따라서 정책 시행 단위에 맞는 군집강건 표준오차 등을 고려해야 합니다.
하지만 이 예제처럼 정책을 시행한 지역이 A지역 한 곳이고 비교지역도 B지역 한 곳뿐이라면 주의가 필요합니다. 주민 수가 많더라도 독립적인 정책 시행 단위는 매우 적기 때문입니다. 이러한 상황에서는 일반적인 지역 단위 군집강건 표준오차의 근사가 신뢰하기 어려울 수 있습니다.
또한 앞서 제시한 회귀분석 p값을 실제로 이러한 두 지역만을 이용해 안정적으로 산출할 수 있다고 가정해서는 안 됩니다. 실제 연구에서는 정책 시행 지역과 비교지역을 더 확보하거나, 연구 설계에 적합한 무작위화 기반 추론 또는 소수 집단을 고려한 추론 방법을 검토해야 합니다.
따라서 DDD의 결과를 보고할 때는 표본 수뿐 아니라 정책 시행 단위의 수도 함께 확인하는 것이 중요합니다.
DDD 분석에서 주의해야 할 점
추가 비교집단이 실제로 정책의 영향을 받지 않는지 확인해야 합니다.
세 번째 비교집단이 정책의 영향을 받는다면 추정 결과의 의미가 달라질 수 있습니다.
집단별 변화 추세를 확인해야 합니다.
정책 시행 이전부터 세 번째 차이가 변화하고 있었다면 정책 이후의 DDD 추정값을 인과효과로 해석하기 어려울 수 있습니다.
다른 정책이 동시에 시행되었는지 확인해야 합니다.
소음 규제와 같은 시점에 A지역 산업단지 인근에 새로운 주거환경 개선사업이 시작되었다면 수면시간 증가가 어느 정책에 의한 것인지 구분하기 어려울 수 있습니다.
집단 구성의 변화를 고려해야 합니다.
정책 시행 이후 수면환경이 좋은 지역으로 주민들이 이주했다면 각 집단의 평균 수면시간 변화에 인구 구성의 변화가 포함될 수 있습니다.
세 차원의 상호작용을 올바르게 설정해야 합니다.
DDD 회귀모형에는 일반적으로 세 변수의 개별항과 필요한 모든 하위 상호작용항을 포함해야 합니다. 단순히 삼중 상호작용항 하나만 추가하면 의도한 차이를 제대로 추정하지 못할 수 있습니다.
추정 결과의 일반화 범위를 확인해야 합니다.
산업단지 인근 주민에 대한 소음 규제 효과가 다른 지역이나 다른 유형의 산업단지에서도 동일하게 나타난다고 보장할 수 없습니다.
DDD 분석 결과는 어떻게 보고하나요?
DDD 결과를 보고할 때는 세 가지 비교 차원의 정의와 정책 시행 시점, 처치 대상, 결과변수, 각 집단의 전후 변화, 삼중차분 추정값과 불확실성 등을 제시하는 것이 좋습니다.
또한 추가 비교집단의 선정 근거와 평행추세 가정을 어떻게 검토했는지 설명해야 합니다. 앞서 살펴본 야간 소음 규제 사례를 이용하면 다음과 같이 작성할 수 있습니다.
결과 보고 예시
산업단지 야간 소음 규제가 인근 주민의 수면시간에 미친 영향을 추정하기 위해 삼중차분법(DDD)을 적용하였다. 규제지역과 비규제지역의 정책 시행 전후 수면시간을 비교하고, 각 지역의 산업단지 인접 주민과 비인접 주민을 추가 비교 차원으로 활용하였다. 분석 결과 규제지역의 인접 주민은 정책 시행 이후 평균 수면시간이 1.0시간 증가하였고, 비인접 주민은 0.3시간 증가하였다. 반면 비규제지역에서는 인접 주민의 수면시간이 0.4시간, 비인접 주민은 0.2시간 증가하였다. 이에 따른 삼중차분 추정값은 0.5시간으로 나타났다. 이는 세 차원의 변화 차이를 고려했을 때 규제지역 인접 주민의 평균 수면시간이 약 30분 추가로 증가한 것으로 추정되었음을 의미한다. 다만 이러한 결과를 정책의 인과효과로 해석하려면 삼중차분의 평행추세 가정과 비교집단의 적절성 등이 충족되어야 한다.
실제 연구에서는 적절한 추론 방법으로 계산한 표준오차와 신뢰구간을 추가해야 합니다.
특히 정책 시행 단위의 수가 적은 경우에는 일반적인 회귀분석 p값을 그대로 사용하기 어려울 수 있으므로, 추론 방법과 그 한계를 명확하게 보고해야 합니다.
DDD는 추가적인 집단 차이를 한 번 더 차감합니다.
삼중차분법(DDD)은 이중차분법(DID)을 확장하여 세 가지 비교 기준을 결합하는 인과추론 방법입니다.
정책 시행 여부와 시행 전후뿐 아니라 정책의 영향을 받는 집단과 받지 않는 집단을 추가로 비교합니다. 예를 들어 산업단지 소음 규제 사례에서는 규제지역과 비규제지역, 규제 전후, 산업단지 인접 여부를 함께 고려할 수 있습니다.
이러한 비교를 통해 정책 시행 지역에서 나타난 단순한 변화나 이중차분만으로 설명하기 어려운 집단별 변화 차이를 추가로 제거하려고 합니다. 하지만 비교 차원이 하나 늘어났다는 사실만으로 인과적 타당성이 높아지는 것은 아닙니다.
정책이 없었을 경우 세 번째 차이가 일정하게 유지되었을 것이라는 가정이 중요하며, 비교집단의 선정과 다른 정책의 동시 시행, 집단 구성 변화 등을 함께 검토해야 합니다.
DDD의 핵심은 변화의 차이를 한 번 더 계산하는 것 자체가 아니라, 추가 비교집단을 이용해 정책이 없었을 경우 나타났을 변화를 더 적절하게 추정하는 데 있습니다.