어느 도시가 자전거 이용을 늘리기 위해 자전거 전용도로를 설치했다고 하자. 정책 시행 전 자전거 이용률은 30%였고, 시행 후에는 45%로 높아졌다.
단순히 전후 차이를 계산하면 15%포인트 증가다.
\[
45\%-30\%=15\%\mathrm{p}
\]
이 숫자만 보면 자전거도로 정책이 이용률을 15%포인트 높였다고 말하고 싶어진다.
그러나 같은 기간에 다음과 같은 변화가 있었다면 어떨까?
- 전국적으로 자전거 열풍이 불었다.
- 대중교통 요금이 인상되었다.
- 날씨가 예년보다 좋았다.
- 유가가 상승했다.
- 자전거 공유서비스가 확대되었다.
정책이 없었더라도 자전거 이용률이 증가했을 수 있다. 정책 시행 전후의 차이만으로는 정책효과와 시대적 변화를 구분하기 어렵다.
이때 정책을 시행하지 않은 비교도시를 함께 살펴볼 수 있다.
| 도시 | 정책 시행 전 | 정책 시행 후 | 변화 |
|---|---|---|---|
| 도시 A | 30% | 45% | 15%포인트 증가 |
| 도시 B | 25% | 30% | 5%포인트 증가 |
도시 B에서도 자전거 이용률이 5%포인트 증가했다. 이를 두 도시가 공통으로 경험한 시간적 변화라고 해석할 수 있다.
도시 A의 변화에서 도시 B의 변화를 한 번 더 빼면 다음과 같다.
\[
15\%\mathrm{p}-5\%\mathrm{p}=10\%\mathrm{p}
\]
이 10%포인트가 이중차이 추정치다.
하지만 이 숫자를 곧바로 정책의 ‘순수한 효과’라고 부르면 안 된다. 두 도시가 정책이 없었더라도 비슷한 추세를 보였을 것이라는 가정과 여러 추가 조건이 타당할 때 정책의 인과효과로 해석할 수 있다.
이중차이법은 단순히 네 개의 평균을 빼는 계산법이 아니다. 관찰할 수 없는 반사실을 비교집단의 변화를 이용해 추정하는 연구설계다.
정책효과를 알려면 일어나지 않은 결과가 필요하다
정책이 시행된 도시 A에서 실제로 관찰한 결과는 다음과 같다.
자전거도로를 설치한 뒤 자전거 이용률이 45%가 되었다.
정책효과를 알려면 같은 도시 A가 같은 시점에 자전거도로를 설치하지 않았을 때의 이용률도 알아야 한다.
하지만 하나의 도시는 같은 시점에 정책을 시행하면서 동시에 시행하지 않을 수 없다. 정책을 시행하지 않았을 때의 결과는 관찰할 수 없는 반사실이다.
도시 A의 정책 시행 후 결과를 다음처럼 두 가지로 생각할 수 있다.
- \(Y_1(1)\): 정책을 시행했을 때의 결과
- \(Y_1(0)\): 정책을 시행하지 않았을 때의 결과
도시 A의 정책효과는 다음과 같다.
\[
Y_1(1)-Y_1(0)
\]
첫 번째 값은 관찰할 수 있지만 두 번째 값은 관찰할 수 없다.
이중차이법은 통제집단의 전후 변화를 이용해 도시 A의 관찰되지 않은 \(Y_1(0)\)을 추정한다.
정책을 시행하지 않은 도시 B에서 자전거 이용률이 5%포인트 증가했다면, 도시 A도 정책이 없었을 때 5%포인트 정도 증가했을 것이라고 가정한다.
그러면 도시 A의 반사실적 이용률은 다음과 같이 추정된다.
\[
30\%+5\%\mathrm{p}=35\%
\]
실제로 관찰된 정책 시행 후 이용률은 45%이므로 추정된 정책효과는 다음과 같다.
\[45\%-35\%=10\%\mathrm{p}\]
이중차이의 핵심은 정책 시행 후의 통제집단 수준을 그대로 가져오는 것이 아니다. 통제집단에서 나타난 변화량을 처치집단의 반사실적 변화량으로 사용하는 것이다.
이중차이 추정치는 두 번의 차이로 계산한다
처치집단의 정책 전후 평균을 다음과 같이 나타내자.
- \(\bar{Y}_{T,0}\): 처치집단의 정책 시행 전 평균
- \(\bar{Y}_{T,1}\): 처치집단의 정책 시행 후 평균
통제집단의 평균은 다음과 같다.
- \(\bar{Y}_{C,0}\): 통제집단의 정책 시행 전 평균
- \(\bar{Y}_{C,1}\): 통제집단의 정책 시행 후 평균
처치집단의 전후 변화는 다음과 같다.
\[\bar{Y}_{T,1}-\bar{Y}_{T,0}\]
통제집단의 전후 변화는 다음과 같다.
\[
\bar{Y}_{C,1}-\bar{Y}_{C,0}
\]
이중차이 추정치는 두 변화량의 차이다.
\[
\hat{\delta}_{DID}
=
(\bar{Y}_{T,1}-\bar{Y}_{T,0})
–
(\bar{Y}_{C,1}-\bar{Y}_{C,0})
\]
자전거도로 사례에 적용하면 다음과 같다.
\[
\hat{\delta}_{DID}
=
(45-30)-(30-25)
\]
\[
\hat{\delta}_{DID}=15-5=10
\]
결과변수가 백분율이므로 효과의 단위는 10%가 아니라 10%포인트다.
상대적인 증가율로 표현하려면 별도의 기준이 필요하다. 정책이 없었을 때 예상 이용률 35%를 기준으로 하면 상대효과는 약 28.6%다.
\[
\frac{45-35}{35}\approx0.286
\]
절대효과와 상대효과는 서로 다른 정보를 제공하므로 어떤 효과를 보고하는지 명확하게 밝혀야 한다.
단순 전후 비교와 집단 간 비교는 왜 부족한가
정책평가에서 흔히 사용하는 비교는 세 가지다.
| 비교방법 | 계산 | 통제하는 차이 | 남는 문제 |
|---|---|---|---|
| 전후 비교 | 처치집단의 사후값 – 사전값 | 집단의 고정된 특성 | 공통 시간변화 |
| 사후 집단 비교 | 처치집단 사후값 – 통제집단 사후값 | 같은 시점의 공통 충격 | 집단의 기존 차이 |
| 이중차이 | 두 집단의 전후 변화량 차이 | 집단 고정차이와 공통 시간변화 | 집단별로 다른 추세와 충격 |
도시 A와 B의 정책 시행 전 자전거 이용률은 각각 30%와 25%였다. 두 도시의 수준은 처음부터 달랐다.
사후시점만 비교하면 차이는 15%포인트다.
\[45\%-30\%=15\%\mathrm{p}\]
하지만 이 차이에는 정책 전부터 존재했던 5%포인트의 격차가 포함되어 있다.
이중차이법은 시간에 따라 변하지 않는 집단 간 차이를 제거한다. 동시에 두 집단에 공통으로 작용한 시간변화도 제거한다.
다만 처치집단에만 발생한 다른 사건까지 제거하는 것은 아니다.
예를 들어 자전거도로 설치와 같은 시기에 도시 A에서 대중교통 요금을 올렸다면, 이중차이 추정치는 두 정책의 영향을 구분하지 못할 수 있다.
핵심은 평행추세 가정이다
이중차이법의 가장 중요한 조건은 평행추세 가정이다.
이를 직관적으로 표현하면 다음과 같다.
정책이 시행되지 않았더라도 처치집단과 통제집단의 결과변수는 평균적으로 비슷한 변화경로를 보였을 것이다.
잠재결과로 표현하면 다음과 같다.
\[
E[Y_1(0)-Y_0(0)\mid D=1]
=
E[Y_1(0)-Y_0(0)\mid D=0]
\]
여기서 \(D=1\)은 처치집단, \(D=0\)은 통제집단을 의미한다.
이 가정은 두 집단의 결과 수준이 같아야 한다는 뜻이 아니다.
도시 A의 이용률이 항상 도시 B보다 5%포인트 높더라도 두 도시의 정책 이전 추세가 비슷하고 정책이 없을 때도 그 차이가 유지되었을 것이라면 이중차이법을 사용할 수 있다.
중요한 것은 수준의 동일성이 아니라 정책이 없었을 때의 변화 추세다(Abadie, 2005; Lechner, 2011).
평행추세는 직접 관찰할 수 없다
평행추세 가정은 정책 시행 후 처치집단의 반사실적 결과에 관한 가정이다.
정책이 시행된 뒤 도시 A가 정책 없이 어떻게 변했을지는 관찰할 수 없다. 따라서 평행추세 가정을 데이터만으로 완전히 검증할 수는 없다.
정책 이전의 여러 시점에서 두 집단의 추세가 비슷했는지 확인할 수는 있다. 그러나 과거에 추세가 평행했다는 사실이 정책 이후에도 반드시 평행했을 것임을 증명하지는 않는다.
평행추세의 타당성은 다음 근거를 종합해 판단해야 한다.
- 정책 이전 추세
- 제도적 배경
- 비교집단의 선정과정
- 정책 도입 이유
- 동시기에 발생한 다른 사건
- 결과변수와 공변량의 변화
- 대안 비교집단을 사용한 분석
- 위약검정과 민감도 분석
Wing 등(2018)은 이중차이 연구에서 평행추세를 단순한 통계검정으로 처리하기보다 연구설계와 정책 맥락을 통해 정당화해야 한다고 강조한다.
정책 이전 추세가 유의하지 않으면 평행추세가 성립하는가
이벤트 스터디에서는 정책 이전 시점의 계수들이 0과 다른지 검정하는 경우가 많다.
정책 전 계수의 p값이 모두 0.05보다 크면 다음과 같이 결론 내리기 쉽다.
사전추세가 유의하지 않았으므로 평행추세 가정이 충족되었다.
이 결론은 지나치게 강하다.
정책 이전 자료가 짧거나 표본이 작으면 상당한 추세 차이가 있어도 통계적으로 발견하지 못할 수 있다. 사전추세 검정의 검정력이 낮을 수 있기 때문이다.
반대로 표본이 매우 크면 실질적으로 중요하지 않은 작은 차이도 통계적으로 유의할 수 있다.
Roth(2022)는 사전추세 검정을 통과한 연구만 선택하면 정책효과 추정과 신뢰구간이 왜곡될 수 있음을 보여주었다.
정책 이전 계수는 다음과 같이 살펴보는 것이 좋다.
- 점추정치의 방향과 크기
- 신뢰구간의 폭
- 경제적·정책적으로 중요한 추세 차이와의 비교
- 그래프의 전체적인 패턴
- 사전기간의 길이
- 대체 비교집단 결과
- 추세 위반에 대한 민감도
“통계적으로 유의하지 않음”은 “평행추세가 입증됨”과 같지 않다.
좋은 통제집단은 결과 수준보다 반사실적 추세가 중요하다
통제집단은 처치집단과 모든 면에서 똑같을 필요는 없다.
정책 전 결과 수준이 다르더라도 정책이 없었을 때 변화경로가 비슷할 것으로 기대할 수 있다면 유용한 비교집단이 될 수 있다.
하지만 현실에서는 다음과 같은 이유로 추세가 달라질 수 있다.
- 산업구조가 다르다.
- 인구구성이 다르게 변한다.
- 경기상황이 다르다.
- 정책 도입 직전 충격이 다르다.
- 지역별 다른 정책이 동시에 시행된다.
- 정책 도입이 결과변수의 악화 때문에 결정된다.
- 처치집단만 다른 장기추세를 가진다.
예를 들어 실업률이 급격하게 상승한 지역만 고용지원정책을 도입했다면 정책도입 자체가 기존 추세와 연결되어 있다.
정책 시행 직전의 일시적인 악화를 정책효과와 혼동할 수도 있다. 이를 평균으로의 회귀와 결합된 선택문제로 볼 수 있다.
좋은 통제집단은 단순히 지리적으로 가깝거나 규모가 비슷한 집단이 아니다. 정책이 없었을 때 처치집단의 결과변화를 대신 보여줄 수 있는 집단이어야 한다.
회귀모형으로 표현하면 상호작용항이 핵심이다
두 집단과 두 시점으로 구성된 기본 이중차이법은 다음 회귀모형으로 표현할 수 있다.
\[
Y_{it}
=
\beta_0
+
\beta_1 Treat_i
+
\beta_2 Post_t
+
\beta_3(Treat_i\times Post_t)
+
\epsilon_{it}
\]
각 변수의 의미는 다음과 같다.
- \(Y_{it}\): 집단 또는 개인 \(i\)의 시점 \(t\) 결과
- \(Treat_i\): 처치집단이면 1, 통제집단이면 0
- \(Post_t\): 정책 시행 후이면 1, 시행 전이면 0
- \(Treat_i\times Post_t\): 처치집단이면서 정책 시행 후이면 1
- \(\epsilon_{it}\): 모형으로 설명되지 않는 부분
계수는 다음과 같이 해석할 수 있다.
| 계수 | 의미 |
|---|---|
| \(\beta_0\) | 통제집단의 정책 시행 전 평균 |
| \(\beta_1\) | 정책 시행 전 두 집단의 평균 차이 |
| \(\beta_2\) | 통제집단의 전후 변화 |
| \(\beta_3\) | 처치집단의 추가적인 변화, 즉 이중차이 |
기본적인 2×2 설계에서 \(\beta_3\)는 네 개 평균으로 계산한 이중차이와 같다.
\[
\beta_3
=
(\bar{Y}_{T,1}-\bar{Y}_{T,0})
–
(\bar{Y}_{C,1}-\bar{Y}_{C,0})
\]
다만 회귀분석으로 표현했다고 인과성이 자동으로 생기는 것은 아니다. 인과해석은 평행추세와 연구설계의 타당성에서 나온다.
고정효과 모형은 여러 시점을 활용한다
정책 전후 시점이 여러 개이고 동일한 지역이나 개인을 반복 관찰한 패널자료에서는 단위 고정효과와 시간 고정효과를 포함할 수 있다.
\[
Y_{it}
=
\alpha_i
+
\lambda_t
+
\beta D_{it}
+
\epsilon_{it}
\]
여기서 다음과 같이 해석한다.
- \(\alpha_i\): 지역·기업·개인처럼 단위별로 변하지 않는 특성
- \(\lambda_t\): 모든 단위에 공통으로 작용하는 시점별 충격
- \(D_{it}\): 해당 단위가 해당 시점에 정책의 적용을 받았는지 여부
- \(\beta\): 이중차이 효과추정치
단위 고정효과는 시간에 따라 변하지 않는 집단 특성을 제거한다.
예를 들어 도시의 지리적 위치, 오래된 문화와 고정적인 산업구조를 통제할 수 있다.
시간 고정효과는 모든 도시에 공통으로 작용하는 연도별 변화를 제거한다.
예를 들어 전국 경기변화, 물가상승과 전국적 자전거 유행을 통제할 수 있다.
그러나 고정효과는 시간에 따라 변하면서 처치집단과 통제집단에 다르게 작용하는 요인을 자동으로 제거하지 않는다.
이중차이법이 인과효과가 되기 위한 추가 조건
평행추세가 가장 유명한 가정이지만 그것만으로 충분하지 않을 수 있다.
정책의 사전예고 효과가 없어야 한다
기업이나 주민이 정책 시행 전에 행동을 바꿀 수 있다.
최저임금 인상이 6개월 전에 발표되면 기업은 공식 시행 전에 채용을 줄이거나 가격을 조정할 수 있다.
이 경우 공식 시행일 직전의 자료도 이미 정책의 영향을 받은 상태일 수 있다.
정책 발표일과 시행일을 구분하고, 예상효과가 시작된 시점을 고려해야 한다.
통제집단이 정책의 영향을 받지 않아야 한다
도시 A의 자전거도로가 도시 B 주민의 통근경로에도 영향을 준다면 도시 B는 순수한 통제집단이 아니다.
최저임금 인상 후 기업이 인접지역으로 이동하거나 인접지역의 임금도 상승할 수 있다.
이러한 파급효과가 있으면 처치집단과 통제집단의 차이가 축소되거나 반대로 확대될 수 있다.
정책과 동시에 다른 차별적 충격이 없어야 한다
도시 A에서 자전거도로 설치와 동시에 주차요금이 크게 인상되었다면 이용률 증가는 두 정책의 결합효과일 수 있다.
이중차이법은 처치집단에만 발생한 동시기 충격을 정책효과와 구분할 수 없다.
표본구성이 안정적이어야 한다
정책 전에는 청년층이 많이 조사되고 정책 후에는 고령층이 많이 조사되었다면 결과변화가 정책이 아니라 표본구성 변화 때문일 수 있다.
반복 횡단면 자료에서는 연령, 성별, 지역과 산업구조가 시간에 따라 달라지는지 확인해야 한다.
결과 측정방식이 일관되어야 한다
정책 시행 후 설문문항, 측정기기 또는 행정자료 기록기준이 바뀌면 측정변화가 정책효과처럼 나타날 수 있다.
처치집단과 통제집단의 정책노출이 명확해야 한다
정책이 명목상 시행되었더라도 실제 집행강도가 지역마다 다를 수 있다. 단순한 0과 1 처치변수는 실제 노출차이를 충분히 표현하지 못할 수 있다.
이 경우 정책 시행 여부의 효과와 실제 정책강도의 효과를 구분해야 한다.
공변량을 추가하면 평행추세 문제가 해결되는가
회귀모형에 연령, 소득, 산업구조와 지역특성을 추가할 수 있다.
\[
Y_{it}
=
\alpha_i
+
\lambda_t
+
\beta D_{it}
+
\gamma X_{it}
+
\epsilon_{it}
\]
공변량을 포함하면 관찰된 특성이 같은 조건에서 평행추세가 성립한다는 조건부 평행추세를 사용할 수 있다.
그러나 공변량을 많이 추가한다고 인과성이 자동으로 높아지지는 않는다.
다음 문제를 확인해야 한다.
- 공변량이 정책 시행 전에 측정되었는가?
- 공변량이 정책의 영향을 받은 매개변수는 아닌가?
- 두 집단에 공통지원영역이 존재하는가?
- 모형의 함수형태가 적절한가?
- 시간에 따라 변하는 교란을 충분히 포착하는가?
정책 시행 후의 매개변수를 통제하면 정책의 전체효과 일부를 제거하거나 새로운 편향을 만들 수 있다.
Abadie(2005)는 관찰된 특성을 조건으로 한 평행추세 아래에서 가중치를 이용한 반모수적 이중차이 추정법을 제시했다. Sant’Anna와 Zhao(2020)는 결과모형이나 처치모형 가운데 하나가 올바르면 일관성을 가질 수 있는 이중강건 추정법을 발전시켰다.
공변량 조정은 평행추세를 대신하는 것이 아니라 평행추세 가정을 더 조건부인 형태로 바꾸는 것이다.
표준오차는 정책이 배정된 단위에서 군집화해야 한다
이중차이 자료에서는 같은 지역이나 기업을 여러 시점에 걸쳐 반복 관찰하는 경우가 많다.
같은 지역의 오차는 시간에 따라 서로 관련될 수 있다. 이를 독립적인 관측값으로 처리하면 표준오차가 지나치게 작게 계산되고 p값도 과도하게 작아질 수 있다.
Bertrand 등(2004)은 장기간 패널자료의 이중차이 분석에서 시계열 상관을 무시하면 거짓양성 문제가 심각해질 수 있음을 보여주었다.
일반적으로 표준오차는 정책이 배정되는 수준에서 군집화한다.
- 국가정책이 주별로 다르면 주 단위
- 학교정책이면 학교 단위
- 기업정책이면 기업 단위
- 지역정책이면 지역 단위
개인자료가 수십만 건 있어도 정책이 10개 지역에만 배정되었다면 독립적인 정책단위는 사실상 10개에 가깝다.
군집 수가 매우 적으면 일반적인 군집강건 표준오차도 부정확할 수 있다. 이때는 다음 방법을 검토할 수 있다.
- 야생군집 부트스트랩
- 무작위화 추론
- 소표본 보정
- 정책단위 수준의 집계
- 적은 처치집단에 맞는 추론법
Conley와 Taber(2011)는 처치집단의 수가 적은 이중차이 설계에서 일반적인 점근적 추론이 부적절할 수 있음을 설명한다.
이벤트 스터디는 정책효과의 시간경로를 보여준다
정책효과가 시행 직후 나타나는지, 시간이 지나면서 커지는지 또는 사라지는지 알고 싶다면 이벤트 스터디 형태로 확장할 수 있다.
정책 시행 시점을 0으로 두고 시행 전후의 상대시점별 효과를 추정한다.
\[
Y_{it}
=
\alpha_i
+
\lambda_t
+
\sum_{k\neq-1}\beta_k I(t-G_i=k)
+
\epsilon_{it}
\]
여기서 다음과 같이 해석한다.
- \(G_i\): 단위 \(i\)의 정책 시행시점
- \(k\): 정책 시행시점을 기준으로 한 상대시간
- \(I(t-G_i=k)\): 상대시간이 \(k\)이면 1인 지시변수
- \(\beta_k\): 정책 시행 1기 전을 기준으로 한 상대시점별 차이
정책 시행 1기 전인 \(k=-1\)을 기준시점으로 제외하는 경우가 많다.
정책 이전 계수들은 사전추세와 예상효과의 단서를 제공한다. 정책 이후 계수들은 효과의 동적 경로를 보여준다.
하지만 이벤트 스터디 그래프만으로 평행추세가 증명되지는 않는다. 정책 이전 계수가 정확하지 않을 수 있고, 정책 시행시점이 서로 다른 경우 전통적인 회귀모형이 잘못된 비교를 포함할 수 있다.
정책 도입시점이 서로 다르면 기존 고정효과 DID를 주의해야 한다
여러 지역이 서로 다른 연도에 정책을 도입하는 상황을 단계적 도입이라고 한다.
예를 들어 다음과 같은 구조다.
| 지역 | 정책 도입연도 |
|---|---|
| A | 2018 |
| B | 2019 |
| C | 2021 |
| D | 미도입 |
전통적인 양방향 고정효과 모형을 사용하면 이미 정책을 받은 지역이 나중에 정책을 받는 지역의 통제집단으로 사용될 수 있다.
정책효과가 시간에 따라 달라지거나 지역별로 다르면 문제가 발생한다.
Goodman-Bacon(2021)은 단계적 도입 양방향 고정효과 추정치가 여러 개의 2×2 이중차이 비교를 가중평균한 값임을 보여주었다. 이 과정에는 이미 처치된 집단과 새로 처치된 집단의 비교가 포함될 수 있다.
de Chaisemartin과 D’Haultfœuille(2020), Sun과 Abraham(2021)은 처치효과가 집단이나 시간에 따라 이질적일 때 전통적인 고정효과 회귀계수가 직관적인 평균효과와 달라지고 일부 비교가 음의 가중치를 가질 수 있음을 보였다.
단계적 도입에서는 다음과 같은 현대적 방법을 고려할 수 있다.
- 집단·시점별 평균처치효과 추정
- 아직 처치받지 않은 집단을 통제집단으로 사용
- 한 번도 처치받지 않은 집단을 통제집단으로 사용
- 코호트별 이벤트 스터디
- Callaway–Sant’Anna 추정법
- Sun–Abraham 상호작용 가중 추정법
Callaway와 Sant’Anna(2021)는 처치 시작시점별 집단과 시점에 대한 효과를 먼저 추정한 뒤 연구목적에 맞게 통합하는 방법을 제시했다.
정책 도입시점이 하나인 기본 DID와 단계적 도입 DID를 같은 방식으로 분석해서는 안 된다.
Card와 Krueger의 최저임금 연구는 무엇을 보여주었는가
Card와 Krueger(1994)는 1992년 뉴저지주의 최저임금 인상을 이용해 패스트푸드점 고용변화를 분석했다.
- 처치집단: 뉴저지 패스트푸드점
- 통제집단: 인접한 펜실베이니아 패스트푸드점
- 정책: 뉴저지 최저임금 인상
- 결과변수: 패스트푸드점 고용
연구진은 정책 전후 두 지역의 고용변화를 비교했고, 조사자료에서는 뉴저지의 상대적 고용감소를 발견하지 않았다. 오히려 일부 분석에서는 뉴저지의 고용이 상대적으로 증가한 것으로 나타났다(Card & Krueger, 1994).
이 연구는 이중차이법을 활용한 대표적인 자연실험으로 널리 알려졌다.
그러나 다음처럼 확대해석해서는 안 된다.
최저임금 인상은 언제나 고용을 감소시키지 않는다.
이 연구는 특정 시기, 특정 지역과 패스트푸드 산업을 대상으로 했다. 자료의 측정방식과 비교집단 선택을 둘러싼 후속 논쟁도 있었다.
Neumark와 Wascher(2000)는 급여자료를 이용한 재분석에서 고용감소를 보고했다. Card와 Krueger(2000)는 행정자료와 추가자료를 이용해 원래 결론과 대체로 일치하는 결과를 제시했다.
이 논쟁의 중요한 교훈은 이중차이 추정치 하나가 모든 상황에 적용되는 보편적 진실이 아니라는 점이다.
연구결과는 다음 요소에 따라 달라질 수 있다.
- 사용한 자료
- 결과변수 측정방식
- 비교집단
- 관찰기간
- 정책강도
- 산업과 지역
- 추론방법
이중차이 연구도 재현, 대안자료와 민감도 분석이 필요하다.
위약검정은 무엇을 확인하는가
위약검정은 실제 정책효과가 없어야 할 대상이나 시점에 가짜 정책을 설정해 효과가 나타나는지 확인하는 방법이다.
가짜 시행시점
실제 정책보다 이전 시점을 정책 시행일로 설정한다.
가짜 정책효과가 크게 나타난다면 기존 추세 차이나 모형오류가 있을 수 있다.
영향을 받지 않아야 할 결과변수
자전거도로 정책이 단기간에 영향을 주기 어려운 결과를 분석한다.
그 결과에서도 효과가 나타난다면 다른 동시기 충격이나 선택문제를 의심할 수 있다.
영향을 받지 않아야 할 집단
정책에 노출되지 않은 집단을 가짜 처치집단으로 설정한다.
위약검정에서 효과가 없다고 해서 원래 연구의 인과성이 증명되는 것은 아니다. 다만 특정한 대안설명을 배제하는 데 도움을 준다.
집단별 추세를 추가하면 문제가 해결되는가
처치집단과 통제집단의 정책 이전 추세가 다르면 집단별 선형추세를 회귀모형에 추가하는 경우가 있다.
\[
Y_{it}
=
\alpha_i
+
\lambda_t
+
\beta D_{it}
+
\gamma_i t
+
\epsilon_{it}
\]
이 방법은 각 집단이 고유한 선형추세를 가진다고 가정한다.
하지만 자동적인 해결책은 아니다.
- 정책 전 기간이 짧으면 추세를 불안정하게 추정한다.
- 실제 추세가 비선형일 수 있다.
- 정책효과의 일부를 장기추세로 흡수할 수 있다.
- 사후자료가 추세추정에 영향을 줄 수 있다.
- 결과가 추세모형 선택에 민감할 수 있다.
집단별 추세를 사용한다면 왜 선형추세가 타당한지 설명하고, 추세를 포함하지 않은 결과와 포함한 결과를 함께 비교하는 것이 좋다.
Rambachan과 Roth(2023)는 정책 후의 평행추세 위반이 정책 전 추세와 비교해 어느 정도까지 달라질 수 있는지를 명시하고, 그에 따른 민감도 구간을 제시하는 접근을 제안했다.
결과변수에 따라 DID 계수의 해석이 달라진다
연속형 결과
평균소득, 시험점수와 대기시간처럼 연속형 결과에서는 DID 계수를 원래 단위로 해석할 수 있다.
\[
\hat{\beta}=5.2
\]
결과변수가 시험점수라면 정책으로 인한 추가적인 평균변화를 5.2점으로 해석한다.
비율 결과
취업 여부나 구매 여부를 0과 1로 코딩하고 선형확률모형을 사용하면 DID 계수는 확률의 절대적인 변화, 즉 퍼센트포인트로 해석할 수 있다.
\[
\hat{\beta}=0.04
\]
이는 4%포인트의 추가 변화다.
로그 결과
결과변수에 자연로그를 사용하면 작은 계수는 근사적인 백분율 변화로 해석할 수 있다.
정확한 백분율 효과는 다음과 같다.
\[
100{\exp(\hat{\beta})-1}
\]
예를 들어 \(\hat{\beta}=0.10\)이면 정확한 효과는 약 10.5%다.
\[
100{\exp(0.10)-1}\approx10.5
\]
비선형 모형
로지스틱 회귀와 같은 비선형 모형에서는 상호작용항의 계수를 단순히 확률의 이중차이로 해석할 수 없다.
확률척도의 한계효과나 예측확률을 계산해야 한다.
연구자가 알고 싶은 효과척도에 맞게 모형과 보고방식을 선택해야 한다.
R로 기본 이중차이를 계산하기
앞의 자전거 이용률 자료를 R로 만들어보자.
did_table <- data.frame(
city = c("A", "A", "B", "B"),
treated = c(1, 1, 0, 0),
post = c(0, 1, 0, 1),
bicycle_rate = c(30, 45, 25, 30)
)
did_tableR처치집단의 전후 변화를 계산한다.
treated_before <- did_table$bicycle_rate[
did_table$treated == 1 &
did_table$post == 0
]
treated_after <- did_table$bicycle_rate[
did_table$treated == 1 &
did_table$post == 1
]
treated_change <-
treated_after - treated_beforeR통제집단의 변화를 계산한다.
control_before <- did_table$bicycle_rate[
did_table$treated == 0 &
did_table$post == 0
]
control_after <- did_table$bicycle_rate[
did_table$treated == 0 &
did_table$post == 1
]
control_change <-
control_after - control_beforeR두 변화량의 차이를 계산한다.
did_estimate <-
treated_change - control_change
c(
treated_change = treated_change,
control_change = control_change,
did_estimate = did_estimate
)R결과는 다음과 같다.
treated_change control_change did_estimate
15 5 10R이중차이 추정치는 10%포인트다.
R로 기본 회귀모형 추정하기
상호작용변수를 만든다.
did_table$treated_post <-
did_table$treated *
did_table$postR회귀모형을 추정한다.
simple_did_model <- lm(
bicycle_rate ~
treated +
post +
treated_post,
data = did_table
)
coef(
simple_did_model
)R계수는 다음과 같이 나타난다.
(Intercept) treated post treated_post
25 5 5 10R해석은 다음과 같다.
- 절편 25: 통제도시의 정책 전 이용률
treated5: 정책 전 두 도시의 차이post5: 통제도시의 전후 변화treated_post10: 이중차이 추정치
다만 이 자료는 네 개의 집계값만 있는 완전히 포화된 예제다. 잔차 자유도가 없으므로 표준오차와 유의성 검정을 위한 실증자료로 사용할 수 없다.
실제 연구에서는 개인·기업·지역 단위 관측값과 충분한 정책단위가 필요하다.
R로 패널 DID 모형 만들기
80개 지역을 2015년부터 2022년까지 관찰하는 가상자료를 만들어보자. 1번부터 40번 지역은 2019년에 정책을 시행한다고 가정한다.
set.seed(2026)
units <- 1:80
years <- 2015:2022
panel_data <- expand.grid(
unit = units,
year = years
)
panel_data <- panel_data[
order(
panel_data$unit,
panel_data$year
),
]R처치집단과 정책시행 이후를 정의한다.
panel_data$treated <-
as.integer(
panel_data$unit <= 40
)
panel_data$post <-
as.integer(
panel_data$year >= 2019
)
panel_data$treated_post <-
panel_data$treated *
panel_data$postR지역별 고정특성과 공통 시간추세를 생성한다.
unit_effect <- rnorm(
length(units),
mean = 0,
sd = 4
)
panel_data$outcome <-
30 +
unit_effect[
panel_data$unit
] +
1.2 *
(
panel_data$year - 2015
) +
5 *
panel_data$treated_post +
rnorm(
nrow(panel_data),
mean = 0,
sd = 3
)R이 가상자료에서는 실제 정책효과를 5로 설정했다.
R에서 고정효과 DID 추정하기
fixest 패키지를 사용하면 단위·시간 고정효과와 군집표준오차를 함께 지정할 수 있다.
# 최초 한 번만 실행
# install.packages("fixest")
library(fixest)R고정효과 모형을 추정한다.
did_model <- feols(
outcome ~ treated_post |
unit + year,
data = panel_data,
cluster = ~unit
)
summary(
did_model
)R모형에서 다음 부분이 사용된다.
outcome ~ treated_post | unit + yearR세로선 오른쪽의 unit + year는 지역 고정효과와 연도 고정효과를 뜻한다.
cluster = ~unitR은 지역 안에서 시간에 따른 오차상관을 허용하도록 표준오차를 지역 단위로 군집화한다.
가상자료를 생성할 때 실제 정책효과를 5로 설정했으므로 추정된 treated_post 계수는 대체로 5 근처에 나타난다.
표본변동 때문에 정확히 5가 나오지는 않는다.
R로 정책 전후 추세 그리기
집단과 연도별 평균을 계산한다.
group_year_mean <- aggregate(
outcome ~ year + treated,
data = panel_data,
FUN = mean
)
control_mean <- group_year_mean[
group_year_mean$treated == 0,
]
treated_mean <- group_year_mean[
group_year_mean$treated == 1,
]R추세를 그린다.
plot(
control_mean$year,
control_mean$outcome,
type = "l",
lty = 1,
ylim = range(
group_year_mean$outcome
),
xlab = "연도",
ylab = "평균 결과",
main = "처치집단과 통제집단의 평균 추세"
)
lines(
treated_mean$year,
treated_mean$outcome,
lty = 2
)
abline(
v = 2019,
lty = 3
)
legend(
"topleft",
legend = c(
"통제집단",
"처치집단",
"정책 시행"
),
lty = c(
1,
2,
3
),
bty = "n"
)R그래프에서는 정책 이전 추세의 방향과 기울기, 정책시행 직전 급격한 변화와 정책 후 효과의 지속성을 확인해야 한다.
그래프가 비슷해 보인다는 사실만으로 평행추세가 증명되는 것은 아니다.
R로 이벤트 스터디 추정하기
정책 시행연도인 2019년을 기준으로 상대시간을 만든다.
panel_data$event_time <-
panel_data$year - 2019R정책 시행 1년 전을 기준시점으로 이벤트 스터디를 추정한다.
event_model <- feols(
outcome ~
i(
event_time,
treated,
ref = -1
) |
unit + year,
data = panel_data,
cluster = ~unit
)
summary(
event_model
)R계수 그래프는 다음처럼 그릴 수 있다.
iplot(
event_model,
xlab = "정책 시행 기준 상대연도",
ylab = "효과 추정치",
main = "이벤트 스터디"
)R정책 이전 계수가 0 주변에 있는지, 신뢰구간이 얼마나 넓은지, 정책효과가 시행 후 어떤 경로로 나타나는지 살펴본다.
이 예제는 모든 처치지역이 같은 시점에 정책을 시행하는 단순한 구조다.
정책 도입시점이 지역마다 다르면 이 코드를 기계적으로 사용하지 말고 단계적 도입에 적합한 추정법을 사용해야 한다.
R에서 단계적 도입 DID를 추정하는 기본 틀
did 패키지는 Callaway–Sant’Anna 방식의 집단·시점별 효과를 추정할 수 있다.
자료에는 다음 변수가 있다고 가정한다.
outcome: 결과변수year: 시점unit: 단위 식별자first_treat: 최초 정책도입 연도- 미도입 단위의
first_treat: 0
# 최초 한 번만 실행
# install.packages("did")
library(did)R집단·시점별 효과를 추정한다.
att_result <- att_gt(
yname = "outcome",
tname = "year",
idname = "unit",
gname = "first_treat",
xformla = ~1,
data = staggered_data,
panel = TRUE
)R동적 효과로 통합한다.
dynamic_result <- aggte(
att_result,
type = "dynamic"
)
summary(
dynamic_result
)R그래프를 그린다.
ggdid(
dynamic_result
)R공변량을 조건으로 사용할 때는 xformla에 정책 이전 변수들을 지정할 수 있다.
xformla = ~ age + income + industryR그러나 정책의 영향을 받은 사후변수를 공변량으로 넣어서는 안 된다.
이중차이 분석에서 필요한 강건성 검토
하나의 회귀계수만 제시하기보다 여러 합리적인 분석에서 결론이 유지되는지 확인해야 한다.
| 검토방법 | 확인하려는 문제 |
|---|---|
| 정책 이전 추세 그래프 | 사전추세 차이와 예상효과 |
| 이벤트 스터디 | 동적 효과와 정책 전 계수 |
| 대안 통제집단 | 비교집단 선택의 민감성 |
| 가짜 시행시점 | 기존 추세가 정책효과처럼 나타나는지 |
| 위약 결과변수 | 다른 충격과 모형오류 |
| 공변량 조정 | 관찰된 구성차이 |
| 가중·매칭 DID | 공통지원영역과 구성차이 |
| 집단별 추세 | 다른 장기추세에 대한 민감성 |
| 표본기간 변경 | 특정 시점이 결과를 지배하는지 |
| 이상값 제외 | 특정 지역이나 기업의 영향 |
| 군집수준 변경 | 표준오차의 민감성 |
| 단계적 도입 추정법 | 처치시점 이질성 문제 |
| 민감도 분석 | 평행추세 위반에 대한 결론의 견고성 |
강건성 검토 결과가 서로 다르면 가장 유리한 결과만 선택해서는 안 된다.
결과가 달라지는 이유와 어떤 가정에서 결론이 성립하는지를 설명해야 한다.
DID 결과를 보고할 때 필요한 내용
연구보고서에 다음처럼만 쓰면 충분하지 않다.
이중차이 분석 결과 정책효과가 유의했다.
최소한 다음 정보를 제시해야 한다.
- 처치집단과 통제집단은 누구인가?
- 정책 시행시점은 언제인가?
- 정책 도입이 한 번에 이루어졌는가, 단계적으로 이루어졌는가?
- 결과변수의 단위는 무엇인가?
- 정책 전후 기간은 얼마나 되는가?
- 평행추세를 왜 타당하다고 보는가?
- 정책 이전 추세는 어떻게 나타났는가?
- 다른 동시기 정책이나 충격은 없었는가?
- 정책의 사전예고 효과는 없는가?
- 통제집단에 파급효과가 발생하지 않았는가?
- 단위·시간 고정효과를 사용했는가?
- 표준오차는 어느 수준에서 군집화했는가?
- 정책단위의 수는 충분한가?
- 공변량은 정책 이전 변수인가?
- 단계적 도입의 처치효과 이질성을 처리했는가?
- 효과추정치와 신뢰구간은 얼마인가?
- 결과는 원래 단위로 무엇을 의미하는가?
- 위약검정과 대안분석 결과는 어떠한가?
다음과 같이 보고할 수 있다.
정책 시행지역의 자전거 이용률은 시행 후 15%포인트 증가했고 비교지역에서는 같은 기간 5%포인트 증가했다. 이중차이 추정치는 10%포인트였으며, 지역과 연도 고정효과를 포함하고 지역 수준에서 군집화한 95% 신뢰구간을 함께 제시하였다. 정책 이전 4개 연도의 추세는 시각적으로 유사했지만, 평행추세는 직접 검증할 수 없는 식별가정이므로 대안 비교지역과 가짜 시행시점을 이용한 민감도 분석도 실시하였다.
이중차이법에서 자주 발생하는 오류
단순한 전후 차이를 정책효과라고 말한다
처치집단의 전후 변화에는 경기, 유행과 계절변화가 포함될 수 있다.
두 집단의 정책 전 수준이 다르면 DID를 사용할 수 없다고 생각한다
수준이 달라도 정책이 없을 때 변화추세가 같다면 사용할 수 있다. 핵심은 수준이 아니라 반사실적 추세다.
정책 이전 계수가 유의하지 않으면 평행추세가 증명되었다고 생각한다
비유의 결과는 검정력 부족 때문일 수 있다. 계수 크기, 신뢰구간과 제도적 근거를 함께 봐야 한다.
고정효과를 넣으면 모든 교란이 제거된다고 생각한다
고정효과는 시간에 따라 변하지 않는 단위특성과 공통 시간충격을 제거한다. 처치집단에만 발생한 시간가변 충격은 남는다.
개인 수준 표준오차를 사용한다
정책이 지역 수준에서 시행되었다면 지역 수준의 오차상관을 고려해야 한다.
통제집단도 정책의 영향을 받는데 그대로 사용한다
파급효과가 있으면 통제집단이 올바른 반사실을 제공하지 못한다.
단계적 도입에 전통적인 양방향 고정효과 회귀를 그대로 사용한다
처치효과가 이질적이면 이미 처치된 집단이 통제집단으로 사용되어 결과가 왜곡될 수 있다.
정책 후 변수를 통제한다
정책이 영향을 준 매개변수를 통제하면 전체 정책효과 일부를 제거하거나 편향을 만들 수 있다.
퍼센트와 퍼센트포인트를 혼동한다
30%에서 45%로의 증가는 15%포인트이며 상대적으로는 50% 증가다.
유의한 DID 계수를 순수한 정책효과라고 단정한다
인과해석은 p값이 아니라 평행추세, 비교집단, 파급효과와 동시기 충격에 관한 가정에 의존한다.
Card와 Krueger 연구를 모든 최저임금 정책의 결론으로 확대한다
한 연구의 추정치는 특정 시기와 대상에 관한 결과다. 다른 지역, 산업과 정책강도에서 효과가 달라질 수 있다.
분석 전에 확인할 질문
- 정책의 영향을 받은 집단은 누구인가?
- 정책을 받지 않은 비교집단은 누구인가?
- 정책이 없었을 때 두 집단의 추세가 비슷했을 근거는 무엇인가?
- 정책 이전 자료가 충분히 존재하는가?
- 정책이 결과 악화에 반응해 도입된 것은 아닌가?
- 정책 발표 전에 행동변화가 시작되지 않았는가?
- 통제집단에 파급효과가 없는가?
- 정책과 동시에 다른 제도가 시행되지 않았는가?
- 표본구성이 정책 전후에 달라지지 않았는가?
- 측정방식이 일관되어 있는가?
- 결과변수의 단위와 효과척도는 무엇인가?
- 정책이 어느 수준에서 배정되었는가?
- 표준오차를 같은 수준에서 군집화했는가?
- 정책을 받은 집단의 수가 충분한가?
- 정책 도입시점이 서로 다른가?
- 처치효과가 시간이나 집단에 따라 다를 수 있는가?
- 위약검정과 대안 통제집단 결과는 어떠한가?
- 평행추세 위반에 대한 민감도 분석을 했는가?
- 효과추정치와 신뢰구간을 함께 보고했는가?
- 결과를 어느 모집단과 시점까지 일반화할 수 있는가?
이중차이법은 비교를 통해 반사실을 만드는 방법입니다
이중차이법은 정책을 시행한 집단의 전후 변화에서 정책을 시행하지 않은 집단의 전후 변화를 빼는 방법이다.
단순한 전후 비교보다 한 단계 더 나아가 집단의 고정된 차이와 공통 시간변화를 제거한다.
하지만 계산된 차이가 자동으로 정책의 순수한 인과효과가 되는 것은 아니다.
비전공자는 다음 다섯 문장으로 기억할 수 있다.
정책 전후의 변화만으로는 정책효과를 알기 어렵다.
통제집단은 정책이 없었을 때의 변화량을 추정하기 위해 사용한다.
두 집단의 수준이 같을 필요는 없지만 반사실적 추세는 비슷해야 한다.
평행추세는 통계검정 하나로 증명할 수 없다.
정책 도입시점이 서로 다르면 전통적인 고정효과 DID를 기계적으로 사용하면 안 된다.
좋은 이중차이 분석은 처치집단과 통제집단을 회귀식에 넣는 데서 끝나지 않는다.
왜 그 통제집단이 적절한지, 정책이 없었더라도 추세가 비슷했을 이유가 무엇인지, 다른 사건이 결과를 만들지 않았는지 설명해야 한다.
이중차이법의 설득력은 복잡한 수식보다 비교의 타당성에서 나온다.
정책효과를 추정한다는 것은 두 숫자를 빼는 일이 아니다. 실제로 일어난 변화와 일어나지 않았을 변화를 비교할 수 있도록 연구를 설계하는 일이다.
참고문헌
Abadie, A. (2005). Semiparametric difference-in-differences estimators. The Review of Economic Studies, 72(1), 1–19. https://doi.org/10.1111/0034-6527.00321
Bertrand, M., Duflo, E., & Mullainathan, S. (2004). How much should we trust differences-in-differences estimates? The Quarterly Journal of Economics, 119(1), 249–275. https://doi.org/10.1162/003355304772839588
Callaway, B., & Sant’Anna, P. H. C. (2021). Difference-in-differences with multiple time periods. Journal of Econometrics, 225(2), 200–230. https://doi.org/10.1016/j.jeconom.2020.12.001
Card, D., & Krueger, A. B. (1994). Minimum wages and employment: A case study of the fast-food industry in New Jersey and Pennsylvania. The American Economic Review, 84(4), 772–793. https://www.jstor.org/stable/2118030
Card, D., & Krueger, A. B. (2000). Minimum wages and employment: A case study of the fast-food industry in New Jersey and Pennsylvania: Reply. The American Economic Review, 90(5), 1397–1420. https://doi.org/10.1257/aer.90.5.1397
Conley, T. G., & Taber, C. R. (2011). Inference with “difference in differences” with a small number of policy changes. The Review of Economics and Statistics, 93(1), 113–125. https://doi.org/10.1162/REST_a_00049
de Chaisemartin, C., & D’Haultfœuille, X. (2020). Two-way fixed effects estimators with heterogeneous treatment effects. The American Economic Review, 110(9), 2964–2996. https://doi.org/10.1257/aer.20181169
Goodman-Bacon, A. (2021). Difference-in-differences with variation in treatment timing. Journal of Econometrics, 225(2), 254–277. https://doi.org/10.1016/j.jeconom.2021.03.014
Lechner, M. (2011). The estimation of causal effects by difference-in-difference methods. Foundations and Trends in Econometrics, 4(3), 165–224. https://doi.org/10.1561/0800000014
Neumark, D., & Wascher, W. (2000). Minimum wages and employment: A case study of the fast-food industry in New Jersey and Pennsylvania: Comment. The American Economic Review, 90(5), 1362–1396. https://doi.org/10.1257/aer.90.5.1362
Rambachan, A., & Roth, J. (2023). A more credible approach to parallel trends. The Review of Economic Studies, 90(5), 2555–2591. https://doi.org/10.1093/restud/rdad018
Roth, J. (2022). Pretest with caution: Event-study estimates after testing for parallel trends. American Economic Review: Insights, 4(3), 305–322. https://doi.org/10.1257/aeri.20210236
Sant’Anna, P. H. C., & Zhao, J. (2020). Doubly robust difference-in-differences estimators. Journal of Econometrics, 219(1), 101–122. https://doi.org/10.1016/j.jeconom.2020.06.003
Sun, L., & Abraham, S. (2021). Estimating dynamic treatment effects in event studies with heterogeneous treatment effects. Journal of Econometrics, 225(2), 175–199. https://doi.org/10.1016/j.jeconom.2020.09.006
Wing, C., Simon, K., & Bello-Gomez, R. A. (2018). Designing difference in difference studies: Best practices for public health policy research. Annual Review of Public Health, 39, 453–469. https://doi.org/10.1146/annurev-publhealth-040617-013507









