stat-causal-inference について
観察データから処置効果を推定するための統計手法スキルです。手法の選択を案内し、反実仮想、仮定の検証、感度分析を重視します。
主な機能
- 01因果推論手法の選択ガイド
- 02マッチング、IV、DID、RDDに対応
- 03分析手順と識別仮定の整理
- 04感度分析と妥当性の脅威を提示
活用シーン
- 01政策やイベントの影響評価
- 02非ランダムな処置の効果推定
- 03因果分析結果の仮定への感度確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ asgard-ai-platform/ skills --skill stat-causal-inferenceインストール後、Claude Code で/stat-causal-inferenceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/sample_scenario.mdreferences/causal-dags.mddid-implementation.md詳細
因果推論
フレームワーク
IRON LAW: Correlation Is Not Causation — But Causation Is Estimable
Observational data cannot prove causation through correlation alone.
BUT with the right methodology (matching, IV, DID, RDD), we CAN
estimate causal effects from observational data — IF the assumptions
of each method are satisfied and explicitly tested.
The key question is always: "What would have happened WITHOUT the treatment?"
(the counterfactual)
基本的な問題
観察できるもの:Y_i(treated) — 処置を受けた単位で何が起きたか。
知りたいもの:Y_i(treated) - Y_i(untreated) — 因果効果。
観察できないもの:同じ単位について、同じ時点での Y_i(untreated)。
すべての因果推論手法は反実仮想を推定します — つまり、処置がなかった場合に何が起きていたかを推定します。
手法の選択ガイド
| 手法 | 使用する状況 | 主な仮定 |
|---|---|---|
| RCT | ランダム化できる場合 | ランダム割り当てにより交絡因子が取り除かれる |
| 傾向スコアマッチング(PSM) | 処置はランダムではないが、観測可能な要因に基づいている場合 | 未観測交絡因子がない(観測可能な要因に基づく選択) |
| 操作変数法(IV) | 未観測交絡因子が存在するが、操作変数がある場合 | 操作変数は処置に影響するが、結果には直接影響しない |
| 差の差法(DID) | 政策やイベントによって自然な処置群と対照群が生じる場合 | 平行トレンド:処置がなければ、各群は同様のトレンドをたどっていた |
| 回帰不連続デザイン(RDD) | カットオフによって処置が割り当てられる場合 | カットオフのすぐ上とすぐ下の観測値は比較可能 |
| 合成コントロール法 | 処置群が1つで、対照群が複数ある場合(集計データ) | 合成した加重平均が処置前のトレンドと一致する |
分析手順
- 因果に関する問いを定義する:処置は何ですか?結果は何ですか?
- 妥当性への脅威を特定する:どの交絡因子が関連を説明し得ますか?
- 手法を選択する:データの構造と利用可能な識別戦略に基づいて選択します
- 仮定を確認する:各手法には、検証可能な仮定と検証不可能な仮定があります
- 効果を推定する:分析を実行します
- 感度分析を行う:仮定が部分的に成り立たない場合、結果はどの程度変わりますか?
出力形式
# Causal Analysis: {Treatment} → {Outcome}
## Causal Question
- Treatment: {what intervention/event}
- Outcome: {what we're measuring}
- Counterfactual: {what would have happened without treatment}
## Identification Strategy
- Method: {PSM / IV / DID / RDD / etc.}
- Rationale: {why this method fits}
- Key assumption: {stated explicitly}
- Assumption test: {how we check, or acknowledge if untestable}
## Results
- Estimated causal effect: {magnitude with CI}
- Robustness checks: {alternative specifications}
## Limitations
{What could still invalidate these results}
注意点
- 「Xを調整する」だけでは因果関係は保証されません:回帰分析に制御変数を追加すると、一部の交絡は軽減されますが、未観測交絡因子は取り除けません。処置がランダムでなかった場合、制御変数を用いたOLSは因果効果を推定しません。
- 平行トレンドは検証できません:DIDでは処置前の平行トレンドを確認できますが、その状態がその後も続いたことは証明できません。これは事実ではなく仮定です。
- 弱い操作変数はIVを無効にします:処置にほとんど影響しない操作変数を使うと、推定値にバイアスが生じます(多くの場合、OLSよりも悪い結果になります)。第一段階のF統計量(> 10)で操作変数の強さを検定してください。
- 外的妥当性:ある状況で推定された因果効果が、別の状況でも一般化できるとは限りません。カットオフ付近のユーザーについて推定された効果(RDD)が、母集団全体に当てはまるとは限りません。
- 因果推論にはドメイン知識が必要です:統計的手法だけでは、何が交絡因子で、何が媒介変数で、何がコライダーなのかを判断できません。まず因果ダイアグラム(DAG)を描いてください。
参考資料
- 有向非巡回グラフ(DAG)については、
references/causal-dags.mdを参照してください - Python/RでのDIDの実装については、
references/did-implementation.mdを参照してください
コメント
Markdown 対応