mcpField
M
marginaleffects

marginaleffects

github.com/brycewang-stanfordデータ・データベース4.8k56 回インストール2 日前に更新
リポジトリ

marginaleffects について

モデルの予測、比較、傾き、仮説を扱うR・Pythonユーザー向けの統計解釈スキルです。推定対象、評価グリッド、集約、不確実性、検定の5つの観点で分析を整理します。

主な機能

  1. 015つの問いによる分析枠組み
  2. 02予測値と比較
  3. 03限界効果と傾き
  4. 04反実仮想と因果推定対象
  5. 05不確実性と推論のガイド
  6. 06R・Python関数リファレンス

活用シーン

  1. 01研究に適した推定対象の選択
  2. 02平均限界効果の計算
  3. 03モデル予測の解釈
  4. 04処置効果の異質性の検定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/brycewang-stanford/auto-empirical-research-skills --skill marginaleffects

インストール後、Claude Code で/marginaleffectsを入力して読み込まれたか確認します。

同梱ファイルREADME-original.md

詳細

marginaleffects

主な情報源:https://marginaleffects.com 無料の書籍、事例研究、ビネットをこちらで利用できます。

R と Python のパッケージマニュアル、および付属書籍のガイドです。

書籍:Model to Meaning: How to Interpret Statistical Models in R and Python

コアフレームワーク:あらゆる分析で考えるべき5つの問い

あらゆる解釈のタスクは、次の5つの体系的な問いに分解できます。

  1. 量:どの推定対象を扱いますか?(予測、比較、傾き、検定)
  2. 予測子(グリッド):どの値で評価しますか?(観測値、反実仮想シナリオ、均衡グリッド)
  3. 集計:誰を対象に集計しますか?(単位レベル、by=によるグループ平均、加重平均)
  4. 不確実性:どの推論方法を使いますか?(デルタ法、ロバスト標準誤差、ブートストラップ、ベイズ法)
  5. 検定:どの仮説を検証しますか?(帰無仮説の検定、同等性、ペアごとの対比)

クイックスタート

章の概要:chapters/<chapter>.qmdを読んでください 関数リファレンス:man/r/<function>.mdまたはman/python/<function>.mdを読んでください

このスキルを使う場面

  • ユーザーが予測、比較、傾き、または限界効果について尋ねている
  • ユーザーが推定対象(ATE、ATT、CATE、リスク差、オッズ比)の選択についてサポートを必要としている
  • ユーザーがmarginaleffectsの関数の構文や引数について尋ねている
  • ユーザーがモデル結果の解釈や仮説検定を希望している
  • ユーザーが反実仮想分析、G計算、または因果推論に言及している
  • ユーザーが『Model to Meaning』の章を参照している

手順

  1. 依頼を分類します:

    • 概念的な依頼:どの推定対象を選ぶか?どう解釈するか?→ chapters/を使います
    • 実装に関する依頼:関数の構文、引数、コード→ man/r/またはman/python/を使います
    • 複合的な依頼:まず概念的な枠組みを示し、その後コードを提示します
  2. 関連するソースファイルを読みます:

    • 書籍の章:chapters/framework.qmd、chapters/predictions.qmd、chapters/comparisons.qmd、chapters/slopes.qmd、chapters/hypothesis.qmdなど
    • R リファレンス:man/r/predictions.md、man/r/comparisons.md、man/r/slopes.md、man/r/hypotheses.md、man/r/datagrid.md
    • Python リファレンス:man/python/predictions.md、man/python/comparisons.md、man/python/slopes.md、man/python/hypotheses.md
  3. 5つの問いのフレームワークを適用して回答を構成します:

    • ユーザーが推定対象(量)を定義できるよう支援します
    • どこで評価するか(グリッド)を明確にします
    • 集計レベルを決定します
    • 不確実性の定量化方法を推奨します
    • 検定を行う場合は、仮説を明示します
  4. ユーザーの言語(R または Python)に合った関数を使って、具体的なコード例を提示します

利用可能なリソース

書籍の章(chapters/)
ファイルトピック章の焦点
framework.qmd5つの質問フレームワーク(ここから開始)モデルを直感的な推定対象に変えるための5つの質問と中核となる量(予測、比較、傾き)を定義します。
predictions.qmd予測値と期待される結果predictions()/avg_predictions() を用いた予測、グリッド、集約、検定を定義します。
comparisons.qmd反事実的な比較、ATE、ATT、リスク比comparisons()/avg_comparisons() を用いた反事実的な比較、効果関数、グリッド、集約を定義します。
slopes.qmd限界効果、偏微分予測子に条件付けた偏微分としての傾きを定義します。slopes()/avg_slopes() を使用します。
hypothesis.qmd仮説検定と同等性hypothesis 引数と equivalence 引数を用いた、あらゆる量に対する帰無仮説検定と同等性検定。
interactions.qmd交互作用効果と効果修飾予測、比較、傾きを用いて、交互作用と多項式による異質性と非線形性を解釈します。
categorical.qmdカテゴリカル予測子と対比予測と結果レベルごとの比較を用いて、カテゴリカル/順序尺度の結果にフレームワークを適用します。
experiments.qmd実験計画avg_comparisons() とロバスト標準誤差を用いた、実験および要因計画における ATE。
gcomputation.qmdG-computation と因果推論反事実的な予測グリッドを用いた ATE/ATT/ATU/CATE のための G-computation の手順。
uncertainty.qmd推論手法(デルタ、ブートストラップ、ベイズ)inferences()/vcov を用いた、デルタ法、ブートストラップ、シミュレーション、共形予測、ロバスト/クラスタ標準誤差。
mrp.qmdマルチレベル回帰と事後層別化混合効果における予測と比較を用いた、マルチレベルモデルと事後層別化。
ml.qmd機械学習モデルML フレームワークに対する予測、比較、傾きを用いたモデル監査。
challenge.qmd解釈の課題分析目標、推定対象、および係数を変換する必要がある理由を定義します。
R 関数リファレンス(man/r/)

中核関数(avg_* 系を含む): predictions.md、comparisons.md、slopes.md、hypotheses.md グリッド: datagrid.md プロット: plot_predictions.md、plot_comparisons.md、plot_slopes.md ユーティリティ: posterior_draws.md、inferences.md、get_dataset.md

Python 関数リファレンス(man/python/)

中核: predictions.md、avg_predictions.md、comparisons.md、avg_comparisons.md、slopes.md、avg_slopes.md、hypotheses.md グリッド: datagrid.md プロット: plot_predictions.md、plot_comparisons.md、plot_slopes.md モデル適合: fit_statsmodels.md、fit_sklearn.md、fit_linearmodels.md

例

ロジットモデルの例

R:

library(marginaleffects)

# Fit logistic regression
mod <- glm(am ~ hp + wt, data = mtcars, family = binomial)

# Average marginal effects (slopes on probability scale)
avg_slopes(mod)

# Predicted probabilities at specific values
predictions(mod, newdata = datagrid(hp = c(100, 150, 200), wt = 3))

# Average treatment effect: compare hp = 150 vs hp = 100
avg_comparisons(mod, variables = list(hp = c(100, 150)))

# Risk ratio for a 50-unit increase in hp
avg_comparisons(mod, variables = list(hp = 50), comparison = "ratio")

Python:

import marginaleffects as me
import statsmodels.formula.api as smf

# Fit logistic regression
mod = smf.logit("am ~ hp + wt", data=me.get_dataset("mtcars")).fit()

# Average marginal effects
me.avg_slopes(mod)

# Predicted probabilities at specific values
me.predictions(mod, newdata=me.datagrid(mod, hp=[100, 150, 200], wt=3))

# Average treatment effect: compare hp = 150 vs hp = 100
me.avg_comparisons(mod, variables={"hp": [100, 150]})

ユーザーが推定対象の選択について質問した場合: → chapters/framework.qmd と chapters/comparisons.qmd を読み、5つの質問フレームワークを説明し、適切な量(例: ATE には avg_comparisons())を推奨します。

ユーザーが限界効果の計算方法を質問した場合: → man/r/slopes.md または man/python/slopes.md を読み、関連する引数を伴う構文を提供します。

ユーザーが処置効果の異質性を検定したい場合: → CATE の概念については chapters/comparisons.qmd を、by= グループを用いた検定の構文については man/r/hypotheses.md を読みます。

ユーザーが反事実的なグリッドについて質問した場合: → chapters/framework.qmd(Predictors セクション)と、datagrid() の使用法については man/r/datagrid.md を読みます。

ベストプラクティス

  • 言語の好みを尋ねる: ユーザーが R または Python を指定していない場合は、コード例を提供する前にどちらを好むかを尋ねてください
  • 適切な場合は常に、5つの質問フレームワークを用いて回答を組み立ててください
  • 要約やマニュアルから特定のセクションを引用してください
  • ユーザーがサンプルデータを必要とする場合は get_dataset() に言及してください
  • 複合的なリクエストの場合は、まず概念的な枠組みから始めて、その後実装を示してください

コメント