๐ ์ธ๊ณผ์ถ๋ก ๊ฐ์ธ ๊ณต๋ถ์ฉ ํฌ์คํธ ๊ธ์ ๋๋ค. ์ถ์ฒ๋ ์ฒจ๋ถํ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!
https://ysyblog.tistory.com/307
๐ ์ ๋ฆฌ
• DID ํ์ฉ ๋ชฉ์ ๋ฐ ์์
• DID estimator ์ถ์
• Parallel trend ๊ฐ์
• ์ง๊ณ๋ ๋ฐ์ดํฐ์์์ DID estimator
โ DiD ๊ฐ ํ์ํ ์ด์
โฏ DiD ๊ฐ ํ์ํ ์ํฉ
• ์จ๋ผ์ธ ๋ง์ผํ ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ๊ณ ๊ฐ์ด ์ด๋ค ๊ด๊ณ ๋ฅผ ๋ณด์๋์ง ์ ์ ์๊ณ , ์ฟ ํค๋ฅผ ์ฌ์ฉํด ๊ณ ๊ฐ์ด ๋ฐฉ๋ฌธ ํ์ด์ง์ ๋๋ฌํ๋์ง ๋๋ ๋ค์ด๋ก๋ ๋ฒํผ์ ํด๋ฆญํ๋์ง ํ์ธํ ์ ์๋ค. ๋ํ ๋จธ์ ๋ฌ๋์ ์ด์ฉํด ๊ณ ๊ฐ๊ณผ ๋งค์ฐ ์ ์ฌํ ์ ์ฌ ๊ณ ๊ฐ์ ์ฐพ๊ณ ํด๋น ๊ณ ๊ฐ์๊ฒ๋ง ๊ด๊ณ ๋ฅผ ๋ ธ์ถ์ํฌ ์ ์๋ค. ์ด๋ฌํ ์๋ฏธ์์ ์จ๋ผ์ธ ๋ง์ผํ ์ ๋งค์ฐ ์ ํํ๋ค.
• ๋ฐ๋ฉด, ๊ด๊ณ ํ๊ณผ TV ๊ด๊ณ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ง์ผํ ์ด ์ผ๋ง๋ ํจ๊ณผ์ ์ธ์ง ์๊ธฐ๊ฐ ํจ์ฌ ๋ ์ด๋ ต๋ค. ๋ฌผ๋ก , ๊ด๊ณ ํ์ ์ด๋๊ฐ์ ๋ฐฐ์นํ๊ธฐ ์ ํ์ ๊ตฌ๋งค๋ ๋ฑ์ ์ธก์ ํ ์๋ ์๋ค. ์งํ์ ์ฆ๊ฐ๊ฐ ์๋ค๋ฉด ๋ง์ผํ ์ ์ํด์ ๊ทธ๋ฐ ๊ฒ์ผ ์ ์์ง๋ง, ์ ํ ์ธ์ง๋์ ์ํ ์์ฐ์ค๋ฌ์ด ์ถ์ธ์ผ ์๋ ์๋ค. ์ฆ๊ฐ์ ์์ธ์ด ๊ด๊ณ ํ์ ์ค์นํ ๊ฒ์ธ์ง ํ์ธํ๊ธฐ ์ํด์ counterfactual Y0 (์ ์ด์ ๊ด๊ณ ํ์ ์ค์นํ์ง ์์๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น) ๋ฅผ ์ดํด๋ณด์์ผ ํ๋ค โจ DiD
โฏ DiD ํ์ฉ
• DID ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฑฐ์์ ๊ฐ์ (macro interventations) ์ ํจ๊ณผ๋ฅผ ํ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
โช ex. ์ด๋ฏผ์ด ์ค์ ์ ๋ฏธ์น๋ ์ํฅ, ๋ฒ์ฃ์จ์ ๋ํ ์ด๊ธฐ๋ฒ ๋ณ๊ฒฝ์ ์ํฅ, ๋ง์ผํ ์บ ํ์ธ์ผ๋ก ์ธํ ์ ์ ์ฐธ์ฌ ์ฐจ์ด๋ฅผ ์ถ์
• DID ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ๊ฐ์ ์ ํ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฉฐ ์ผ๋ฐ์ ์ธ ์ถ์ธ์์ ๊ฐ์ ์ ์ํฅ์ ํ์ ํ๊ณ ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
โฏ ์์ ๋ฐ์ดํฐ ์ค๋ช
• ๊ด๊ณ ํ์ด ๋ง์ผํ ์ฑ๋๋ก ์ผ๋ง๋ ์ข์์ง ์์๋ณด๊ธฐ ์ํด ๋ธ๋ผ์ง์์ ๊ฐ์ฅ ๋ฐ์ ๋ ์ง์ญ (ํธ์์ ์ฝ์๋ก) PA ์ 3๊ฐ์ ๊ด๊ณ ํ์ ์ค์นํ๋ค. ๋์กฐ๊ตฐ์ผ๋ก๋ ๋ค๋ฅธ ์ง์ญ์ธ (ํธ์์ ์ฝ์๋ก) FL ์ ์ดํด๋ณธ๋ค.
• FL ์ ๋์กฐ๊ตฐ์ผ๋ก ํ์ฌ PA ์ ๋น๊ตํ์ ๋, counterfactual ์ ์ถ์ ํด๋ณผ ์ ์๋ค. 6์ ํ ๋ฌ ๋์ PA ์ง์ญ์ ๊ด๊ณ ํ์ ๋ฐฐ์นํ๋ค.
โช deposits (์๊ธ) : Outcome variable ๋ก ๊ด๊ณ ํ์ ํตํด ๋๋ฆฌ๋ ค๊ณ ํ๋ ๋ณ์
โช poa : PA ์ง์ญ ์ฌ๋ถ์ธ์ง์ ๋ํ Dummy variable. 0์ด๋ฉด FL ์ง์ญ์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ์์ ์๋ฏธ
โช jul : 7์๋ก, ์ฌํ ๊ฐ์ธ ๊ธฐ๊ฐ (post intervention period) ์ ๋ํ ๋๋ฏธ๋ณ์์ด๋ฉฐ, ๊ฐ์ด 0์ด๋ฉด ๊ฐ์ ์ ๊ธฐ๊ฐ (pre-intervention period) ์ธ 5์ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ค.
โก DiD Estimator
โฏ DID estimator
• D : treatment ํ๊ธฐ
• T : time ํ๊ธฐ
• Y_D(T) : ๊ธฐ๊ฐ T์ ์ฒ์น D์ ๋ํ ์ ์ฌ์ ๊ฒฐ๊ณผ
โช ๋ฐ์ฌ์ค์ ๊ด์ฐฐํ ์ ์๋ ์ด์์ ์ธ ์ธ๊ณ์์ ์๋์ ๊ฐ์ด ๊ฐ์ ์ ๋ํ ์ฒ์นํจ๊ณผ๋ฅผ ์ถ์ ํด ๋ณผ ์ ์๋ค.
โช ์ธ๊ณผํจ๊ณผ = ๊ฐ์ ํ ๊ธฐ๊ฐ์ ์ฒ์น๋ฅผ ๋ฐ์ ๋์์ ๊ฒฐ๊ณผ์์ ๊ฐ์ ํ ๊ธฐ๊ฐ์ ์ฒ์น๋ฅผ ๋ฐ์ง ์์ ๋์์ ๊ฒฐ๊ณผ๋ฅผ ๋บ ๊ฐ์ผ๋ก ๋ณผ ์ ์๋ค. ๊ทธ๋ฌ๋ Y_0(1) ์ counterfactual ์ด๊ธฐ ๋๋ฌธ์ ๊ด์ธกํ ์ ์๋ค โจ ์ธ๊ณผ์ถ๋ก ์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์
โฏ ์ ๊ทผ1. ์ฒ์น ์ง๋จ์ ๋ํด, ๊ธฐ๊ฐ ์ ํ ๋น๊ต
• ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ํ ๋น๊ต์ด๋ค. ๊ด๊ณ ํ์ ๋ฐฐ์นํ๊ธฐ ์ ๊ณผ ํ์ POA ์ ํ๊ท ์๊ธ์ก์ ๋น๊ตํด๋ณธ๋ค.
poa_before = data.query("poa==1 & jul==0")["deposits"].mean()
poa_after = data.query("poa==1 & jul==1")["deposits"].mean()
poa_after - poa_before
41.04775
โช ๊ฐ์ ํ (PA ์ง์ญ์ ๊ด๊ณ ํ์ ์ค์นํ๋ฉด) ์๊ธ์ด $41.04 ์ฆ๊ฐํ ๊ฒ์ผ๋ก ์์
โช ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋น๊ต๋, deposit ๋ณ์๊ฐ ์ด๋ค ์ข ๋ฅ์ ์ถ์ธ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ํ์ ๋ ์ฑ๋ฆฝํ์ง ์์ ์ ์๋ค. ๊ฐ๋ น PA ์ง์ญ์์ ๊ฐ์ ์ด ์๋๋ผ๋ ์๊ธ์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ฐจ ์ฆ๊ฐํ๋ ์ถ์ธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๊ฐ์ ์ ์ํฅ์ด๋ผ๊ณ ๋งํ๊ธฐ ์ด๋ ต๋ค.
โฏ ์ ๊ทผ2. ๊ฐ์ ์ดํ ๊ธฐ๊ฐ์ ๋ํด, ์ฒ์น์ง๋จ๊ณผ ๋์กฐ์ง๋จ์ ๋น๊ต
• ๊ฐ์ ํ ๊ธฐ๊ฐ์ PA ์ง์ญ์ deposit ์ FL ์ง์ญ์ ์๊ธ๊ณผ ๋น๊ต
fl_after = data.query("poa==0 & jul==1")["deposits"].mean()
poa_after - fl_after
-119.10175000000001
โช ์บ ํ์ธ์ด ๊ธ์ ์ ์ธ ํจ๊ณผ๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํ๊ณ , ์๋น์๋ค์ ์๊ธ์ด $119.1 ๊ฐ์ํ ๊ฒ์ด๋ผ๊ณ ์์ธก
โช ๊ทธ๋ฌ๋ ์ด๋ฌํ ๊ฐ์ ์ PA ์ง์ญ๊ณผ FL ์ง์ญ์ ์์ค์ด ๋งค์ฐ ์ ์ฌํ ๊ฒฝ์ฐ์๋ง ์ฑ๋ฆฝํ๋ค. ๊ฐ๋ น FL ์ง์ญ์ด PA ์ง์ญ๋ณด๋ค ๋ณธ๋ deposit ๊ท๋ชจ๊ฐ ํจ์ฌ ๋ง์๋ค๋ฉด ์์ ์์ ๋ง์ง ์๊ฒ ๋๋ค.
โฏ ๊ฒฐ๋ก . Space ์ Time ๊ธฐ์ค์ ๋ชจ๋ ์ฌ์ฉํ์
• ๊ด์ธกํ ์ ์๋ counterfactual ์ ๋์ฒดํด ํจ๊ณผ๋ฅผ ์ถ์ ํ ์ ์๋ค.
• ๊ฐ์ ์ ์ฒ์น๋ ๊ทธ๋ฃน E[Y1(0) | D=1] ์ ์ถ์ธ ๊ตฌ์ฑ์์๋ฅผ ์ถ๊ฐ๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค. ๋์กฐ๊ตฐ Y0 ์ ์ฌ์ฉํด ์ถ์ ํ๊ณ ์๋๋ฐ, ์ฆ ๊ฐ์ ํ ์คํ๊ตฐ์ด ๋ง์ฝ ์ฒ์น๋ฅผ ๋ฐ์ง ๋ชปํ๋ค๋ฉด, ์ฒ์น ์ ์คํ๊ตฐ์ ๋์กฐ๊ตฐ์ ์ฑ์ฅ๊ณผ ๋์ผํ ์ฑ์ฅ์์๋ฅผ ๋ํ ๊ฒ์ฒ๋ผ ๋ณด์ผ ๊ฒ์ด๋ค.
โฏ DID estimator
• DID ์ถ์ ๋์ ์์ ์๊ณผ ๊ฐ๋ค.
fl_before = data.query("poa==0 & jul==0")["deposits"].mean()
diff_in_diff = (poa_after-poa_before)-(fl_after-fl_before)
diff_in_diff
6.524557692307688
• ์์ ์์ ํตํด ์ถ์ ํ DID ๋ ์๊ธ์ด ๊ณ ๊ฐ ๋น $6.52 ๋งํผ ์ฆ๊ฐํ ๊ฒ์ด๋ผ๊ณ ์์
โป ๋ ๋์ ๊ฐ์ ์ฑ์ฅ ํจํด์ด ๋์ผํ๋จ ๊ฐ์
โฏ DID ์๊ฐํ
plt.figure(figsize=(10,5))
plt.plot(["May", "Jul"], [fl_before, fl_after], label="FL", lw=2)
plt.plot(["May", "Jul"], [poa_before, poa_after], label="POA", lw=2)
plt.plot(["May", "Jul"], [poa_before, poa_before+(fl_after-fl_before)],
label="Counterfactual", lw=2, color="C2", ls="-.")
plt.legend();
• ๋นจ๊ฐ์ ๊ณผ ๋ ธ๋์ ์ ์ ์ ์ฐจ์ด = PA ์ ๋ํ ์ฒ์นํจ๊ณผ
โฏ ํ๊ท์
• β0 : ๋์กฐ๊ตฐ์ ๋ํ ๊ธฐ์ค์ = 5์์ FL ์ ์๊ธ ์์ค
• β1 : POAi = 1 ์ธ ๊ฒฝ์ฐ. ๋์กฐ๊ตฐ์์ ์ฒ์น๋ ๊ทธ๋ฃน์ผ๋ก ์ด๋ํด ์ป์ ์ ์๋ ์ฆ๋ถ
โช β0 + β1 ์ ๊ฐ์ ์ 5์์ PA ๊ธฐ์ค์ ์ด๊ณ , β1 ์ FL ์์ PA ๊ธฐ์ค์ ์ ์ฆ๊ฐ๋ถ์ด๋ค.
• β2 : ๋์กฐ๊ตฐ์ ์ถ์ธ. ๊ฐ์ ์ ๊ธฐ๊ฐ์์ ๊ฐ์ ํ ๊ธฐ๊ฐ์ผ๋ก ์ด๋ํ์ฌ ์ป๋ ์ฆ๋ถ
• β0 + β2 : PA ๋๋ฏธ๋ณ์๊ฐ 0์ด๊ณ 7์ ๋๋ฏธ๋ณ์๊ฐ 1์ธ ๊ฒฝ์ฐ๋ก, ๊ฐ์ ๊ธฐ๊ฐ ํ 7์ FL ์ง์ญ์์์ ์์ค
• β3 : 5์์์ 7์๋ก FL ์์ PA ๋ก ์ด๋ํ ๋์ ์ฆ๋ถ ์ํฅ โจ DID ์ถ์ ๋
• β0 + β1 + β2 + β3 : ๊ฐ์ ํ PA ์ ์์ค
smf.ols('deposits ~ poa*jul', data=data).fit().summary().tables[1]
โข Non-Parallel Trends
โฏ ํํ์ถ์ธ ๊ฐ์
• ํํ ์ถ์ธ ๊ฐ์ ์ ๋ง์กฑ์ํค๊ธฐ๋ ์ด๋ ต๋ค.
• ์ฒ์น๋ฅผ ๋ฐ์ ๊ทธ๋ฃน์ ์ฆ๊ฐ ์ถ์ธ๊ฐ ๋์กฐ๊ตฐ์ ๊ฒฝํฅ๊ณผ ๋ค๋ฅด๋ฉด DID๋ ํธํฅ๋ ๊ฒ์ด๋ค.
• ํํ ์ถ์ธ ๊ฐ์ ์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๊ณผ๊ฑฐ ๊ธฐ๊ฐ์ ์ด์ฉํด ์ถ์ธ๋ฅผ ๊ทธ๋ ค๋ณด๋ ๊ฒ์ด๋ค.
โช ์ด๋ฌํ ๊ฒฝ์ฐ๋ผ๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ตฌํ DID ์ถ์ ๋์ ์ ๋ขฐํ๊ธฐ๊ฐ ์ด๋ ค์ !
โจ Synthetic control์ด๋ผ๋ ๋ฐฉ๋ฒ์ ํตํด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณผ ์์
โช ๋์์ ์ถ์ธ๋ฅผ ๋ฐ์ ํ๊ฒ ๋ฐ๋ฅด๋ ์ธ์์ ์ธ ๋์๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ก
โฏ ์ง๊ณ๋ ๋ฐ์ดํฐ๋ ์ถ์ ๋์ ์ ๋ขฐ๊ตฌ๊ฐ์ ๋ ์ ์๋ค.
• DID ์ถ์ ๋์ ์ ๋ขฐ ๊ตฌ๊ฐ์ ๋ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํด์ผ ํ๋ค.
• ์๋ฅผ๋ค์ด FL ๋๋ PA ์ง์ญ์ ๊ฐ ๊ณ ๊ฐ๋ค์ ๋ํ ๋ฐ์ดํฐ๋ ์๊ณ , ๋์ ์ ๊ฐ์ ์ ํ์ ํ๊ท ์๊ธ์ ๋ํ ์ง๊ณ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ํ๋ค๋ฉด, ์ธ๊ณผํจ๊ณผ๋ฅผ ์ถ์ ํ ์๋ ์์ง๋ง ์ถ์ ๋์ ๋ํ ๋ถ์ฐ์ ์ ์ ์๋ค. ๋ฐ์ดํฐ์ ๋ชจ๋ ๋ณ๋์ฑ์ด ์ง๊ณ๋ฅผ ํตํด ์ ๊ฑฐ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
'1๏ธโฃ AIโขDS > ๐ฅ Casual inference' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
two-way fixed effects model (0) | 2023.08.14 |
---|---|
[The Brave and True] 14. Panel data and fixed effects (0) | 2023.07.26 |
[The Brave and True] 12. Doubly Robust Estimation (0) | 2023.07.14 |
[The Brave and True] 11. Propensity score (0) | 2023.07.13 |
[The Brave and True] 10. Matching (0) | 2023.07.11 |
๋๊ธ