Skip to content

Conversation

Soyoung-JUN
Copy link
Contributor

@Soyoung-JUN Soyoung-JUN commented Sep 20, 2025

캘리포니아 금연 캠페인(Proposition 99) 데이터를 사용하여, SDID의 모델 검증 및 통계적 추론을 구현했습니다.

주요 구현 내용

  1. synthdid 패키지 활용:
  • synthdid 라이브러리를 사용하여 SDID, SC(합성 대조법), DID(이중 차분법) 모델을 각각 적합시키고 결과를 비교 분석했습니다.
  1. 재현성 검증:
  • pysynthdid 노트의 재현 과정을 참고하여, 모델의 핵심 파라미터(Omega/Lambda 가중치)를 추출하고 확인하는 절차를 포함했습니다.
  • 실제 정책이 없었던 기간을 대상으로 AA 테스트를 수행하여 모델이 거짓된 효과를 탐지하지 않음을 검증했습니다.
  1. 강건성 및 통계적 추론:
  • Handbook을 참고하여, 모든 주(state)를 대상으로 플라시보 테스트를 실행하여 모델의 평균 예측 오차(RMSE)를 비교하고 SDID의 적합성을 확인했습니다. 최종적으로 플라시보 효과의 분포를 직접 시각화하고, 이를 통해 주 효과(ATT)의 통계적 유의성을 검증하였습니다.

참고 자료

  1. Original Paper: Arkhangelsky, D., Athey, S., Hirshberg, D. A., Imbens, G. W., & Wager, S. (2021). Synthetic difference-in-differences. American Economic Review, 111(12), 4088-4118. https://www.aeaweb.org/articles?id=10.1257/aer.20190159
  2. Primary Package: synthdid Python package. https://github.com/d2cml-ai
  3. Replication Reference: pysynthdid repository's example notebook. https://github.com/MasaAsami/pysynthdid/blob/main/notebook/ReproductionExperiment_CaliforniaSmoking.ipynb
  4. Matheus Facure's "Python Causality Handbook" 25 - Synthetic Difference-in-Differences

@Soyoung-JUN Soyoung-JUN requested a review from jhkimon September 20, 2025 23:37
Copy link
Contributor

@jhkimon jhkimon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리뷰 작성하였습니다. 덕분에 새로운 내용들을 공부할 수 있는 좋은 기회였습니다. 감사합니다!

"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"df = california_prop99()\n",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재는 synthdid.get_data에서 california_prop99 데이터셋을 가져오고 있는데, 코드 통일을 위해 미리 저장된 ../data/matheus_data/smoking.csv 에서 데이터를 가져와도 좋을 것 같습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋은 제안 감사합니다! 말씀해주신 대로, 프로젝트의 코드 통일성을 위해 저장된 파일을 사용하도록 수정하는 것이 좋겠습니다. 다음 커밋에 바로 수정하여 반영하겠습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저장된 파일의 데이터 형식이 기존과 달라, 라이브러리가 요구하는 'long format'으로 데이터를 변환하고 treated 컬럼을 새로 생성하는 등 전체 코드에 필요한 데이터 전처리 작업을 모두 완료했습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다만, 현재 데이터의 'state' 컬럼이 이름이 아닌 숫자 ID로 되어 있어, 어떤 주인지 직관적으로 파악하기 어려운 점이 있습니다.

혹시 이 분석의 가독성을 높이기 위해, 원본 데이터 파일에 주 이름을 매핑하는 새로운 컬럼을 추가하거나, ID와 주 이름을 매핑하는 별도의 파일을 프로젝트에 추가하는 방안에 대해 어떻게 생각하시는지 의견 여쭙고 싶습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지난주 일요일 미팅에서 논의한 점을 참고하여 데이터셋 수정 없이 State ID를 유지하였습니다.

],
"source": [
"# 합성 대조군(SC) 결과와 비교\n",
"fit_sc = Synthdid(df, \"State\", \"Year\", \"treated\", \"PacksPerCapita\").fit(synth=True)\n",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

주피터노트북 상으로 해당 부분의 plot을 확인해보면, control과 treatment가 겹치지 않는 것을 확인할 수 있습니다.
기존 SC라면 처치 전의 두 plot이 겹쳐야 하는데, 혹시 다른 방법론에 대한 그림은 아닌지 확인이 필요할 것 같습니다.

코드는 분명 맞는데 .. 실행 과정의 오류 같습니다.

Copy link
Contributor Author

@Soyoung-JUN Soyoung-JUN Sep 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SC 그래프에 대해 추가적으로 확인하고 고민한 내용을 공유해 드립니다.

말씀해주신 대로 그래프가 겹치지 않는 문제를 해결하려 했으나, 사용중인 synthdid 패키지의 소스 코드를 확인해 본 결과, fit(synth=True) 옵션은 SDID 분석의 안정성을 위해 약간의 정규화(regularization)를 기본적으로 포함하여 SC를 계산하는 것으로 확인되었습니다. 이 때문에 고전적인 SC 구현과 달리 정책 이전 기간에 완벽한 오버랩이 나타나지 않는 것이 이 패키지의 고유한 특징이었습니다.

따라서 코드 수정보다는 이 현상에 대해 주석을 추가하는 방향으로 정리했습니다. 다만, 리뷰어님 말씀처럼 이 그래프가 고전적인 SC와는 달라 직접적인 비교가 어려운 점이 있어, 이 비교 부분을 그대로 남겨두는 것이 맞을지 조금 고민이 됩니다. 아니면, 더 정확한 비교를 위해, pysynthdid와 같은 다른 라이브러리를 사용하여 '고전적인' SC 그래프를 추가로 구현하고 synthdid의 SC 결과와 나란히 비교하는 것도 방법이 될 것 같습니다. 이 부분에 대해 의견 주시면 감사하겠습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분을 수정할수 있는 파라미터를 추가하여 plot을 수정하였습니다. 이제 control과 treatment가 겹치는 것을 확인하실 수 있습니다.

"output_type": "display_data"
}
],
"source": [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

세 방법론을 모두 적용하여 분석 자체의 robustness를 확인하는 것도 좋지만, 평행추세 가정이나 실무의 관점에서 어떤 방법론이 해당 세팅에서 권장되는지 확인도 필요할 것 같습니다. 예를 들어, SC-DID는 강건하다는 장점이 있지만 extrapolation을 허용하기에 한계점도 존재합니다.

예를 들어, 참고논문 Fig1 을 보면 평행추세 가정을 시각화하여 세 방법론을 비교하여 보여주고, 또 donor pool에 대한 결과도 시각화하는 것을 볼 수 있습니다.

아래에 구현 코드도 첨부드립니다.
구현 코드 1

구현 코드 2

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋은 제안 정말 감사합니다! 말씀대로 세 방법론을 단순히 나열하기보다, 평행추세 가정과 모델 구성 방식을 시각적으로 비교하여 왜 SDID가 이 분석에 가장 적합한지에 대한 논리적 근거를 보충하는 것이 중요하다고 생각합니다.

제안해주신 Figure 1을 모범 답안으로 삼아, 분석의 핵심인 2. 핵심 SDID 분석 및 다른 방법론과 비교 파트에 다음 두 가지 비교 시각화 자료를 추가했습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Figure 1을 기준으로 plot을 나열하는 코드를 작성하였으나, 앞선 코드들이 반복되고 패키지 특성상 figure 을 나열하기 어려워 코드가 장황해진다는 문제가 있었습니다. 따라서 방법별로 figure를 보여주는 코드를 유지하되, weight plot도 확인할 수 있도록 코드 수정하였습니다.

},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAHMCAYAAAD/MFOMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACPfUlEQVR4nOzdd3iT5frA8e+T0bTpnrQUaMsoo0xRpgqiyNCj4sC9GE7cOI8KqKgc9+J3kOE87gUucOAGEVH2KKtQoIvumTbJ8/ujNFJooYW0SZv7c11cNG/evLnvvGly93mfobTWGiGEEEIIL2LwdABCCCGEEIeSAkUIIYQQXkcKFCGEEEJ4HSlQhBBCCOF1pEARQgghhNeRAkUIIYQQXkcKFCGEEEJ4HSlQhBBCCOF1pEARQgghhNeRAkUIIZpJYmIiiYmJng7juCilGD58uKfDOKLhw4ejlPJ0GOI4SYEiDjNz5kyUUiil2LJlS4Mf97///c/1uG+++aZRz5mYmOh6bEP+TZ8+vZFZHd2PP/7o9mOnpaUdFrvJZKJNmzacddZZfP311257rmNRE9Pxev3111FK8frrrx9/UC1YS/xiPPR3z2AwEBYWxpAhQ3jllVew2+2eDlH4KJOnAxDeRWvNvHnzUEqhtWbu3Lk8/fTTDXrsq6++6nrcq6++yplnntng57399tspKCiote31119n165dXH311Yf91entf8EdKjQ0lNtvvx2AiooK1qxZw1dffcVXX33FCy+8wK233urZAEWz+P777z0dQr1uu+02wsLCcDgc7Ny5k48//pjly5fz/fff88knn3g6POGLtBAHWbx4sQb0Nddco2NjY3VUVJS22WxHfdzmzZs1oM844wzdv39/bTabdWZm5nHFMmzYMA3oH3744biO01A//PCDBvS0adPcdsydO3dqQCckJBx234IFCzSgAwMDdWlpqdueszEA7Y6Pgddee00D+rXXXjv+oFqwmvdsS5KQkKABvXPnzlrb169frwMCAjSgf/zxR9d2QA8bNqx5g2yklngexOHkEo+oZe7cuQBMnjyZyy+/nP379/Ppp582+HHXXnst11xzDVVVVU3a3L9582auueYa2rdvj5+fH23atOGyyy6r85JUVlYWU6dOpWvXrgQGBhIWFkbXrl255ppr2LFjBwDXXHMNp512GgAzZsyo1eT9448/NkkO11xzDYGBgZSWlrJhwwbXNqUUO3bs4KWXXqJ3794EBATUajHKy8vj/vvvp3v37gQEBBAaGsrpp5/e6Mtq9am5LHXNNdeQlpbGJZdcQlRUFP7+/px44ol88cUXtfYfPnw41157LVB9/g9+7dLS0lz72e12Zs+ezaBBgwgJCcFqtdKvXz9efvllnE5nvTGkpqZy8cUXExMTg8Fg4Mcff6Rbt274+fmxf//+OnOYNWsWSilefvnlWtv37NnDlClT6NixIxaLhcjISM455xxWrlx52DGmT5/uOv8fffQRAwYMwGq1EhERwSWXXMLevXsPi/enn34CqPUaHHzu6uuDYrPZePLJJ+nVqxdWq5WQkBBOOeUUPvjgg+M+P8cqJSXFFfsff/xxxH337dvHI488wtChQ4mNjcXPz4+2bdty2WWXsXHjxnof98cff3DxxRcTHx+PxWIhLi6OM888s868V6xYwYUXXug6fvv27bn++uvZt29fvce32Ww8+OCDJCUlYbFY6NSpEzNmzKCysrLO/b///ntGjx5NREQEFouF5ORk7rvvPgoLC4+Yv2ginq6QhPfIzMzUZrNZJycna621XrdunQb0iBEjjvg4m82mo6KidGhoqC4rK9O5ubnaz89Pd+7cWTudzmOOp74WlK+//loHBARok8mkx40bp++++2596aWXaovFokNCQvSqVatc+5aWlupOnTppQI8cOVLfdddd+s4779QXXHCBDgsL059//rnWWutPP/1UX3311a6/DqdNm+b6d/BflvX9tVmfI7WgOJ1ObbVaNaBXrlyptdauGM4++2wdGhqqL7vsMn3vvffqBx54QGutdVpamk5MTNSAPuWUU/Ttt9+uJ0+erOPi4rRSSr/66qsNf4F13S0oNTEPHz5cR0dH64EDB+rbb79dX3XVVdpisWiDwaCXLl3q2v+1117T5557rgb0ueeeW+u1y8/P11prXVlZqUeNGqUB3bVrV3399dfr2267Tffu3VsD+oorrqgzhpNPPlmHhYXpAQMG6Ntvv11ff/31etWqVfrxxx/XgH7xxRfrzKt79+7az89P5+bmuratWrVKR0ZGaqWUHj16tL7rrrv01VdfrUNDQ7Wfn5/+8ssvax1j2rRpGtAXXXSRtlgs+qKLLtJTp07Vp5xyigZ0t27ddEVFhdZa6/z8fD1t2jTX++Pg1+DgVqWEhITD3gs2m831Xu/WrZueOnWqvummm3RMTIwG9P33339c5+dojvSeHj16tAb0U0895dpGHS0o7777rg4ICNBjx47VN910k77nnnv0uHHjtNls1oGBgXr16tWHHfvVV1/VRqNR+/n56QsvvFDff//9euLEibpPnz6HHX/+/PnaaDRqq9WqL7nkEn333Xfr8847TxsMBh0XF6d37dpVa/+a1/Occ87RcXFx+pZbbtF33nmn67Pg7LPPPuyz6b///a9WSumgoCB97bXX6nvvvVcPHDhQA7pHjx6u97JoPlKgCJcnnnhCA/rxxx93bevfv79WSumtW7fW+7h3331XA/q6665zbbvgggs0oL/77rtjjqeuAiUvL0+HhYXpyMhIvWHDhlr7r1u3TgcGBup+/fq5ti1atEgD+vbbbz/s+DabTRcVFbluN+QSjzsLlPnz57su8ZSVlWmt/ylQ2rZtq3fs2HHYY4YNG6aVUvrdd9+ttT0/P1/36dNH+/v7N+rS2pEKFEBPnz691n01lwDHjBlTa/vRLvHUfNlPmTJF2+1213a73a4nTJigAf3ZZ5/VGcOhX9Baa52enq4NBoPu37//Yff98ccfGtDnn3++a1tVVZXu1KmTtlgstS5XaK313r17ddu2bXVsbKyr4Dg45uDgYL127dpaj7n00ks1oN9///1a2492aaGuAqWm2BozZoyuqqpybc/KynK933777bc6X5uGnp8jacglnp9//tm1va4CJSsrq9bvUo3Vq1frwMBAPXr06FrbN2zYoE0mkw4PD9fr168/7HHp6emun7ds2aLNZrPu1KmT3rNnT639vvvuO20wGPR5551Xa3vNeejSpYvOy8tzbS8vL9eDBg3SgH7zzTdd29PS0rSfn58ODg7WmzZtqnWsG2+8UQN68uTJh8UpmpYUKEJrXf3XfKdOnbTBYKj1IfDSSy9pQN9zzz31PnbEiBEa0MuWLXNt+/zzzzWgx48ff8wx1VWgPP/88xrQL7/8cp2Puf322zXgKl5qCpS6vuQO1ZACZdu2bXrTpk26srKyQTnUfJmEhoa6/qK+99579ZgxY1xfMi+88IJr/5oC5fnnnz/sWKtXr9aAvvDCC+t8rs8++0wD+pVXXmlQbFofuUBJSEioVUzU6NChg46MjKy17UgFisPh0BERETo2NrbWF3CN/Px8rZTSF110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QRcXF7u2V1ZWukZoHXr8g0fxHDoaT+vao3g2bdqkzWaz7tKli96yZcth+9pstlqjjLRu2CieN954w7V9586d2mw269DQ0MNGLNZ06J00adLRXxzhVnKJx8f9+OOPpKam0qtXrzo7ZtaYOHEiM2fO5LXXXmPGjBmkp6fz3XffERUVxXnnnVfv4y6++GJuv/12Pv74Y1566SUiIiKOK97IyEg++ugjxo0bx6BBgzj99NNJSUlBKUV6ejrLly8nNzeXiooKoLq/xt13383gwYNJTk4mJiaGPXv2sHDhQgwGA3fffbfr2F27diU+Pp733nsPs9lMQkICSimuvPJKEhISADj99NPZtWvXcV2vPx7vvPMOI0aMYOLEibz44osMHDiQsLAw9uzZw9q1a1m/fj3Lly8nJiamWeMaPHgwVquV559/ntzcXFffkVtuuYXQ0FAeeugh1qxZw3//+18+//xzRowYQXx8PNnZ2WzdupXffvuNmTNn0qNHj0Y/91VXXcVDDz3Eo48+6ur7dCiz2cwnn3zCqFGjOOussxgyZAh9+/bFarWSnp7OypUr2bFjBxkZGVit1mN+HU4//XQ+/PBDzj//fMaOHUtAQAAJCQlceeWV9T5m6tSpfP311yxcuJA+ffowduxYysrK+PDDD8nOzuaee+7h5JNPPuaYmprBYODWW291TTR37rnnUllZyQ8//EBeXh6nnXaaqyWoRo8ePZg9ezY33HAD/fr149xzz6VLly7k5uaycuVKQkJCXI/p1q0bCxYsYMKECaSkpDB69GiSk5Opqqpi9+7d/PLLL0RHR7N58+bDYuvevTspKSlceOGFmM1mFi5cyPbt2znrrLNqnZPExESef/55br75Zk444QTGjx9PdHQ0P/30E8uXL6dbt27MmjWraV9IcThPV0jCsy677LLDhrrWp6bF5JNPPtEPPPCABvQdd9xx1MdNnjy5wUMKD3akqe537typb775Zt25c2dtsVh0cHCw7tq1q77iiiv0p59+6tpv48aN+o477tD9+/fXUVFR2s/PTyckJOgLLrig1twSNf744w89YsQIHRISopVShz2/O+dBqcvRWlC01rqoqEjPnDlTn3DCCTowMFD7+/vrxMREPXbsWD1nzhxdUlLSoOfS2n0tKFpXT6A3aNAgHRgYWOdfzU6nU7/55pt6xIgROjw8XJvNZt22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
Copy link
Contributor

@jhkimon jhkimon Sep 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

논문 Algorithm 4handbook 있는 Placebo Variance Estimation 도 적용하면 좋을 것 같습니다. 이를 통해 현재의 RMSE 분석도 좋지만, ATT를 신뢰구간을 포함한 추정치로 확대할 수 있을 것 같습니다. (현재 Handbook에서는 state별로 for문을 돌리는 것이 아니라 일부 state를 랜덤으로 추출하여 400번을 수행하는 방법을 사용하여 구현한 것으로 보입니다.)

구현 코드 에서 method = placebo 를 선택하면 신뢰구간을 구할 수 있는 것으로 보입니다.

Copy link
Contributor Author

@Soyoung-JUN Soyoung-JUN Sep 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

말씀대로, 모델의 평균 예측 오차(RMSE)를 비교하는 것을 넘어, 추정한 정책 효과(ATT)가 통계적으로 유의미한지 신뢰구간과 p-value를 통해 명확히 제시하는 것이 분석의 신뢰도를 위해 필수적이라고 생각합니다. 4. 모델 강건성 및 통계적 추론 섹션에서 리뷰어님께서 제안해주신 Placebo Variance Estimation 방법을 적용하였습니다. synthdid 패키지의 .vcov(method='placebo') 옵션을 사용하여 SDID, SC, DID 각 모델의 ATT에 대한 표준 오차(Std. Err.)와 p-value를 도출하였습니다.

},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAHMCAYAAAD/MFOMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACPfUlEQVR4nOzdd3iT5frA8e+T0bTpnrQUaMsoo0xRpgqiyNCj4sC9GE7cOI8KqKgc9+J3kOE87gUucOAGEVH2KKtQoIvumTbJ8/ujNFJooYW0SZv7c11cNG/evLnvvGly93mfobTWGiGEEEIIL2LwdABCCCGEEIeSAkUIIYQQXkcKFCGEEEJ4HSlQhBBCCOF1pEARQgghhNeRAkUIIYQQXkcKFCGEEEJ4HSlQhBBCCOF1pEARQgghhNeRAkUIIZpJYmIiiYmJng7juCilGD58uKfDOKLhw4ejlPJ0GOI4SYEiDjNz5kyUUiil2LJlS4Mf97///c/1uG+++aZRz5mYmOh6bEP+TZ8+vZFZHd2PP/7o9mOnpaUdFrvJZKJNmzacddZZfP311257rmNRE9Pxev3111FK8frrrx9/UC1YS/xiPPR3z2AwEBYWxpAhQ3jllVew2+2eDlH4KJOnAxDeRWvNvHnzUEqhtWbu3Lk8/fTTDXrsq6++6nrcq6++yplnntng57399tspKCiote31119n165dXH311Yf91entf8EdKjQ0lNtvvx2AiooK1qxZw1dffcVXX33FCy+8wK233urZAEWz+P777z0dQr1uu+02wsLCcDgc7Ny5k48//pjly5fz/fff88knn3g6POGLtBAHWbx4sQb0Nddco2NjY3VUVJS22WxHfdzmzZs1oM844wzdv39/bTabdWZm5nHFMmzYMA3oH3744biO01A//PCDBvS0adPcdsydO3dqQCckJBx234IFCzSgAwMDdWlpqdueszEA7Y6Pgddee00D+rXXXjv+oFqwmvdsS5KQkKABvXPnzlrb169frwMCAjSgf/zxR9d2QA8bNqx5g2yklngexOHkEo+oZe7cuQBMnjyZyy+/nP379/Ppp582+HHXXnst11xzDVVVVU3a3L9582auueYa2rdvj5+fH23atOGyyy6r85JUVlYWU6dOpWvXrgQGBhIWFkbXrl255ppr2LFjBwDXXHMNp512GgAzZsyo1eT9448/NkkO11xzDYGBgZSWlrJhwwbXNqUUO3bs4KWXXqJ3794EBATUajHKy8vj/vvvp3v37gQEBBAaGsrpp5/e6Mtq9am5LHXNNdeQlpbGJZdcQlRUFP7+/px44ol88cUXtfYfPnw41157LVB9/g9+7dLS0lz72e12Zs+ezaBBgwgJCcFqtdKvXz9efvllnE5nvTGkpqZy8cUXExMTg8Fg4Mcff6Rbt274+fmxf//+OnOYNWsWSilefvnlWtv37NnDlClT6NixIxaLhcjISM455xxWrlx52DGmT5/uOv8fffQRAwYMwGq1EhERwSWXXMLevXsPi/enn34CqPUaHHzu6uuDYrPZePLJJ+nVqxdWq5WQkBBOOeUUPvjgg+M+P8cqJSXFFfsff/xxxH337dvHI488wtChQ4mNjcXPz4+2bdty2WWXsXHjxnof98cff3DxxRcTHx+PxWIhLi6OM888s868V6xYwYUXXug6fvv27bn++uvZt29fvce32Ww8+OCDJCUlYbFY6NSpEzNmzKCysrLO/b///ntGjx5NREQEFouF5ORk7rvvPgoLC4+Yv2ginq6QhPfIzMzUZrNZJycna621XrdunQb0iBEjjvg4m82mo6KidGhoqC4rK9O5ubnaz89Pd+7cWTudzmOOp74WlK+//loHBARok8mkx40bp++++2596aWXaovFokNCQvSqVatc+5aWlupOnTppQI8cOVLfdddd+s4779QXXHCBDgsL059//rnWWutPP/1UX3311a6/DqdNm+b6d/BflvX9tVmfI7WgOJ1ObbVaNaBXrlyptdauGM4++2wdGhqqL7vsMn3vvffqBx54QGutdVpamk5MTNSAPuWUU/Ttt9+uJ0+erOPi4rRSSr/66qsNf4F13S0oNTEPHz5cR0dH64EDB+rbb79dX3XVVdpisWiDwaCXLl3q2v+1117T5557rgb0ueeeW+u1y8/P11prXVlZqUeNGqUB3bVrV3399dfr2267Tffu3VsD+oorrqgzhpNPPlmHhYXpAQMG6Ntvv11ff/31etWqVfrxxx/XgH7xxRfrzKt79+7az89P5+bmuratWrVKR0ZGaqWUHj16tL7rrrv01VdfrUNDQ7Wfn5/+8ssvax1j2rRpGtAXXXSRtlgs+qKLLtJTp07Vp5xyigZ0t27ddEVFhdZa6/z8fD1t2jTX++Pg1+DgVqWEhITD3gs2m831Xu/WrZueOnWqvummm3RMTIwG9P33339c5+dojvSeHj16tAb0U0895dpGHS0o7777rg4ICNBjx47VN910k77nnnv0uHHjtNls1oGBgXr16tWHHfvVV1/VRqNR+/n56QsvvFDff//9euLEibpPnz6HHX/+/PnaaDRqq9WqL7nkEn333Xfr8847TxsMBh0XF6d37dpVa/+a1/Occ87RcXFx+pZbbtF33nmn67Pg7LPPPuyz6b///a9WSumgoCB97bXX6nvvvVcPHDhQA7pHjx6u97JoPlKgCJcnnnhCA/rxxx93bevfv79WSumtW7fW+7h3331XA/q6665zbbvgggs0oL/77rtjjqeuAiUvL0+HhYXpyMhIvWHDhlr7r1u3TgcGBup+/fq5ti1atEgD+vbbbz/s+DabTRcVFbluN+QSjzsLlPnz57su8ZSVlWmt/ylQ2rZtq3fs2HHYY4YNG6aVUvrdd9+ttT0/P1/36dNH+/v7N+rS2pEKFEBPnz691n01lwDHjBlTa/vRLvHUfNlPmTJF2+1213a73a4nTJigAf3ZZ5/VGcOhX9Baa52enq4NBoPu37//Yff98ccfGtDnn3++a1tVVZXu1KmTtlgstS5XaK313r17ddu2bXVsbKyr4Dg45uDgYL127dpaj7n00ks1oN9///1a2492aaGuAqWm2BozZoyuqqpybc/KynK933777bc6X5uGnp8jacglnp9//tm1va4CJSsrq9bvUo3Vq1frwMBAPXr06FrbN2zYoE0mkw4PD9fr168/7HHp6emun7ds2aLNZrPu1KmT3rNnT639vvvuO20wGPR5551Xa3vNeejSpYvOy8tzbS8vL9eDBg3SgH7zzTdd29PS0rSfn58ODg7WmzZtqnWsG2+8UQN68uTJh8UpmpYUKEJrXf3XfKdOnbTBYKj1IfDSSy9pQN9zzz31PnbEiBEa0MuWLXNt+/zzzzWgx48ff8wx1VWgPP/88xrQL7/8cp2Puf322zXgKl5qCpS6vuQO1ZACZdu2bXrTpk26srKyQTnUfJmEhoa6/qK+99579ZgxY1xfMi+88IJr/5oC5fnnnz/sWKtXr9aAvvDCC+t8rs8++0wD+pVXXmlQbFofuUBJSEioVUzU6NChg46MjKy17UgFisPh0BERETo2NrbWF3CN/Px8rZTSF110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QRcXF7u2V1ZWukZoHXr8g0fxHDoaT+vao3g2bdqkzWaz7tKli96yZcth+9pstlqjjLRu2CieN954w7V9586d2mw269DQ0MNGLNZ06J00adLRXxzhVnKJx8f9+OOPpKam0qtXrzo7ZtaYOHEiM2fO5LXXXmPGjBmkp6fz3XffERUVxXnnnVfv4y6++GJuv/12Pv74Y1566SUiIiKOK97IyEg++ugjxo0bx6BBgzj99NNJSUlBKUV6ejrLly8nNzeXiooKoLq/xt13383gwYNJTk4mJiaGPXv2sHDhQgwGA3fffbfr2F27diU+Pp733nsPs9lMQkICSimuvPJKEhISADj99NPZtWvXcV2vPx7vvPMOI0aMYOLEibz44osMHDiQsLAw9uzZw9q1a1m/fj3Lly8nJiamWeMaPHgwVquV559/ntzcXFffkVtuuYXQ0FAeeugh1qxZw3//+18+//xzRowYQXx8PNnZ2WzdupXffvuNmTNn0qNHj0Y/91VXXcVDDz3Eo48+6ur7dCiz2cwnn3zCqFGjOOussxgyZAh9+/bFarWSnp7OypUr2bFjBxkZGVit1mN+HU4//XQ+/PBDzj//fMaOHUtAQAAJCQlceeWV9T5m6tSpfP311yxcuJA+ffowduxYysrK+PDDD8nOzuaee+7h5JNPPuaYmprBYODWW291TTR37rnnUllZyQ8//EBeXh6nnXaaqyWoRo8ePZg9ezY33HAD/fr149xzz6VLly7k5uaycuVKQkJCXI/p1q0bCxYsYMKECaSkpDB69GiSk5Opqqpi9+7d/PLLL0RHR7N58+bDYuvevTspKSlceOGFmM1mFi5cyPbt2znrrLNqnZPExESef/55br75Zk444QTGjx9PdHQ0P/30E8uXL6dbt27MmjWraV9IcThPV0jCsy677LLDhrrWp6bF5JNPPtEPPPCABvQdd9xx1MdNnjy5wUMKD3akqe537typb775Zt25c2dtsVh0cHCw7tq1q77iiiv0p59+6tpv48aN+o477tD9+/fXUVFR2s/PTyckJOgLLrig1twSNf744w89YsQIHRISopVShz2/O+dBqcvRWlC01rqoqEjPnDlTn3DCCTowMFD7+/vrxMREPXbsWD1nzhxdUlLSoOfS2n0tKFpXT6A3aNAgHRgYWOdfzU6nU7/55pt6xIgROjw8XJvNZt22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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이번 기회에 플라시보 테스트에 대해 공부할 수 있는 좋은 기회가 되었습니다.
추가로 해당 부분에 대해 질문드리고 싶은 사항이 있어 남깁니다.

첨부주신 강의 슬라이드 p.27구현 코드 를 확인해보면, AA test 구현에서 처치 이전 시점 (8년)에 대한 검증을 하기 위해 RMSE를 측정하는 것을 확인할 수 있었습니다. 이는 Estimated potential outcome = Acutal outcome 인지를 확인하여 모델의 강건성을 체크하기 위함으로 보입니다.

다만 해당 코드에서는

 {           
 'sdid_error': fit.att, 
            'sc_error': fit.fit(synth=True).att, 
            'did_error': fit.fit(did=True).att
}

와 같이 처치 이전이 아닌 전체 시간대의 에러를 수집하여 계산하는 것을 확인하였습니다.

따라서, 해주신 테스트가 AA test인지 아니면 이와 별도로 실제 추정치의 통계적 유의성 검증을 위한 단위축 플라시보(in-space placebo) 방식인지 궁금했습니다!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋은 리뷰 감사합니다. 제가 AA 테스트와 단위축 플라시보 테스트의 목적을 명확히 구분하지 않아 혼동을 드렸습니다.
피드백을 반영하여, 두 테스트의 목적에 맞게 분석 구조를 다음과 같이 명확하게 분리했습니다.
3. 재현성 검증: 모델 안정성을 확인하는 AA 테스트와 정책 이전 기간의 RMSE 검증만 다루도록 수정했습니다.
4. 통계적 추론: 단위축 플라시보 테스트를 통한 최종 ATT의 유의성 검증(p-value 및 분포 시각화)에만 집중하도록 정리했습니다.
덕분에 분석이 훨씬 명확해졌습니다. 다시 한번 감사드립니다.

@Soyoung-JUN
Copy link
Contributor Author

[리뷰 피드백 반영 (2)]
안녕하세요 정현님. sdid.ipynb 노트북의 분석 흐름을 개선하고 강건성 검증 파트를 보강했습니다.

  1. SC 플롯 파라미터 추가를 통한 정확성 향상(2장)
  • 기존 코드에서 합성 대조법(SC) 결과 그래프가 SDID와 동일하게 출력되는 문제가 있었습니다.
  • fit(synth=True) 호출 시 omega_intercept=False 파라미터를 추가하여, SDID와 명확히 구분되는 고유한 SC 모델의 결과를 시각화하도록 수정했습니다. 이를 통해 각 방법론을 더 정확하게 비교할 수 있습니다.
  1. 시각화 방식 수정: 기존의 3-panel 비교 그래프는 패키지 특성상 구현이 복잡하여 제거했습니다.
  • 대신 각 방법론(DID, SC, SDID)의 결과(Outcomes)와 가중치(Weights) 그래프를 개별적으로 명확히 보여주는 방식으로 수정했습니다.
  1. 강건성 분석 보강 (4장): 기존의 플라시보 테스트에 더해, 아래 분석들을 추가하여 결과의 신뢰도를 높였습니다.
  • 효과 크기 시각화 (Gap Plot), 플라시보 효과 추세 비교 (Placebo Trend Comparison), MSPE 비율 검증 (MSPE Ratio Test)

Copy link
Contributor

@Funbucket Funbucket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 작성하시느라 고생 많으셨습니다!
이슈는 close 해도 될 것 같습니다.

마지막으로, 자잘한 부분이지만 헤더 구조를 맞추기 위해
"# 4. 모델 강건성 및 통계적 추론 → ## 4. 모델 강건성 및 통계적 추론"
으로 수정해주시면 좋을 것 같습니다.

"name": "stdout",
"output_type": "stream",
"text": [
"[SDID gaps • uniform metric] CA ratio = 2.6832 | rank = 12/39 | p ≈ 0.3077\n"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 관련 코드를 수정해보았지만 p-value가 잘 개선되지는 않았습니다.

반면, 위 sdid 최종 통계적 추론에서의 p-value가 0.13으로, 효과 방향은 일관하지만 통계적으로는 유의하지 않았고,
MSPE Ratio Test에서도 구조적 변화는 확인되지만 통계적으로 유의하지 않으므로, 해당 테스트는 현재 형태 그대로 유지해도 될 것 같다고 생각합니다!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

검토 감사합니다! 말씀해주신 부분 수정 반영 후 close 하겠습니다.

@Soyoung-JUN Soyoung-JUN force-pushed the 10-awesome-causal-inference-pythonmainatesdid branch from 903e296 to 56944c3 Compare October 18, 2025 08:06
@Soyoung-JUN
Copy link
Contributor Author

안녕하세요. 수정 사항은 다음과 같습니다.

  • 이전에 말씀해주신대로 MSPE 비율을 통한 강건성 검증 결과를 유지하고 이에 대한 해석을 추가하였습니다,
  • 헤더 구조를 맞추기 위해 '## 4. 모델 강건성 및 통계적 추론'로 수정했습니다.
  • Gap Plot, MSPE 비율, Placebo ATT 분포 계산 시 사용되는 처리 시점을 1988년(통과 시점)에서 1989년(발효 시점)으로
    일관되게 수정하였습니다. 이에 맞춰 그래프 해석도 수정하였습니다.
    위 수정사항과 더불어, 전체 코드 최종 검토해주시고 close 해주시면 될 것 같습니다. (명석님 제안대로 리뷰어가 직접 close하는 게 좋을 듯합니다.)

감사합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants