statsmodels について
statsmodels は Python の統計モデリングライブラリで、このスキルはエージェントによる推定、推論、診断、モデル選択を支援します。回帰から時系列まで、分野別の資料と手順を備えています。
主な機能
- 01線形回帰と一般化線形モデル
- 02離散結果・カウントモデル
- 03時系列モデリングと予測
- 04仮説検定とモデル診断
- 05モデル比較と統計レポート
活用シーン
- 01回帰効果の推定と解釈
- 02二値・順序・カウント結果の分析
- 03時系列の予測と診断
- 04仮定と影響の大きい観測値の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill statsmodelsインストール後、Claude Code で/statsmodelsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/discrete_choice.mdglm.mdlinear_models.mdmodel_selection.mdmodeling_capabilities.mdquick_start_guide.mdstats_diagnostics.mdtime_series.md詳細
Statsmodels:統計モデリングと計量経済学
概要
Statsmodels は、統計モデリングのための Python を代表するライブラリであり、幅広い統計手法にわたる推定、推論、診断のためのツールを提供します。このスキルは、単純な線形回帰から複雑な時系列モデルや計量経済分析まで、厳密な統計分析を行う際に活用してください。
現在の互換性
サンプルは、2025年12月5日にリリースされた statsmodels 0.14.6 を対象としています。再現可能な環境にするには、主要パッケージのバージョンを固定します。
uv pip install statsmodels==0.14.6
安定した高水準のインポートには statsmodels.api と statsmodels.formula.api を使用し、サンプルで HurdleCountModel などの新しいクラスや特殊なクラスが必要な場合は、モジュールを直接インポートします。
このスキルを使用する場面
次のような場合に、このスキルを使用してください。
- 回帰モデル(OLS、WLS、GLS、分位点回帰)を当てはめる
- 一般化線形モデリング(ロジスティック、ポアソン、ガンマなど)を行う
- 離散アウトカム(二値、多項、カウント、順序)を分析する
- 時系列分析(ARIMA、SARIMAX、VAR、予測)を行う
- 統計的検定と診断を実施する
- モデルの仮定(不均一分散、自己相関、正規性)を検定する
- 外れ値や影響の大きい観測値を検出する
- モデルを比較する(AIC/BIC、尤度比検定)
- 因果効果を推定する
- 公表可能な品質の統計表と推論結果を作成する
クイックスタート、機能、モデル選択
- references/quick_start_guide.md:OLS、ロジスティック回帰、ARIMA、GLM の最小限の実行例と、サマリーの読み方。
- references/modeling_capabilities.md:線形モデル、GLM、離散選択、時系列、および統計的検定と診断。
- references/model_selection.md:R スタイルの数式 API とモデル比較。
- トピック別の詳細:references/linear_models.md、 references/glm.md、 references/discrete_choice.md、 references/time_series.md、および references/stats_diagnostics.md。
statsmodels は 推論 のためのライブラリです。標準誤差、信頼区間、仮説検定を扱います。予測が目的で、係数を解釈する必要がない場合は、scikit-learn を使用してください。
ベストプラクティス
データの準備
- 必ず定数項を追加する:切片を除外する場合を除き、
sm.add_constant()を使用します - 欠損値を確認する:モデルを当てはめる前に、処理または補完します
- 必要に応じてスケーリングする:収束と解釈を改善します(ただし、木モデルでは必須ではありません)
- カテゴリ変数をエンコードする:数式 API または手動のダミーコーディングを使用します
モデルの構築
- シンプルに始める:基本的なモデルから始め、必要に応じて複雑にします
- 仮定を確認する:残差、不均一分散、自己相関を検定します
- 適切なモデルを使用する:アウトカムの種類にモデルを合わせます(二値→Logit、カウント→Poisson)
- 代替手法を検討する:仮定が満たされない場合は、ロバストな手法または別のモデルを使用します
推論
- 効果量を報告する:p 値だけでなく、効果量も報告します
- ロバスト SE を使用する:不均一分散またはクラスタリングがある場合に使用します
- 多重比較に対応する:多くの仮説を検定する場合は補正します
- 信頼区間を示す:点推定値と併せて必ず報告します
モデルの評価
- 残差を確認する:残差対当てはめ値のプロットと Q-Q プロットを作成します
- 影響度診断を行う:影響の大きい観測値を特定し、調査します
- サンプル外検証を行う:ホールドアウトセットまたは交差検証でテストします
- モデルを比較する:非入れ子モデルには AIC/BIC、入れ子モデルには LR 検定を使用します
結果の報告
- 包括的なサマリーを示す:詳細な出力には
.summary()を使用します - 判断を記録する:変換や除外した観測値を記録します
- 慎重に解釈する:リンク関数を考慮します(例:対数リンクでは exp(β))
- 可視化する:予測値、信頼区間、診断結果をプロットします
一般的なワークフロー
ワークフロー 1:線形回帰分析
- データを探索する(プロット、記述統計)
- 初期 OLS モデルを当てはめる
- 残差診断を確認する
- 不均一分散と自己相関を検定する
- 多重共線性を確認する(VIF)
- 影響の大きい観測値を特定する
- 必要に応じてロバスト標準誤差を用いて再度当てはめる
- 係数と推論を解釈する
- ホールドアウトデータまたは交差検証で検証する
ワークフロー 2:二値分類
- ロジスティック回帰(Logit)を当てはめる
- 収束の問題がないか確認する
- オッズ比を解釈する
- 限界効果を計算する
- 分類性能を評価する(AUC、混同行列)
- 影響の大きい観測値を確認する
- 代替モデル(Probit)と比較する
- テストセットで予測を検証する
ワークフロー 3:カウントデータ分析
- ポアソン回帰を当てはめる
- 過分散を確認する
- 過分散がある場合は、負の二項回帰を当てはめる
- 過剰なゼロがないか確認する(ZIP/ZINB を検討する)
- 発生率比を解釈する
- 適合度を評価する
- AIC でモデルを比較する
- 予測を検証する
ワークフロー 4:時系列予測
- 系列をプロットし、トレンドや季節性を確認する
- 定常性を検定する(ADF、KPSS)
- 非定常の場合は差分を取る
- ACF/PACF から p、q を特定する
- ARIMA または SARIMAX を当てはめる
- 残差診断を確認する(Ljung-Box)
- 信頼区間付きで予測を生成する
- テストセットで予測精度を評価する
リファレンスドキュメント
このスキルには、詳しいガイダンスを提供する包括的なリファレンスファイルが含まれています。
references/linear_models.md
線形回帰モデルの詳細な解説:
- OLS、WLS、GLS、GLSAR、分位点回帰
- 混合効果モデル
- 再帰回帰とローリング回帰
- 包括的な診断(不均一分散、自己相関、多重共線性)
- 影響統計量と外れ値の検出
- ロバスト標準誤差(HC、HAC、クラスター)
- 仮説検定とモデル比較
references/glm.md
一般化線形モデルの包括的なガイド:
- すべての分布族(二項、ポアソン、ガンマなど)
- リンク関数と各関数の使用場面
- モデルの当てはめと解釈
- 疑似 R 二乗と適合度
- 診断と残差分析
- 応用例(ロジスティック回帰、ポアソン回帰、ガンマ回帰)
references/discrete_choice.md
離散アウトカムモデルの包括的なガイド:
- 二値モデル(Logit、Probit)
- 多項モデル(MNLogit、条件付き Logit)
- カウントモデル(ポアソン、負の二項、ゼロ過剰、ハードル)
- 順序モデル
- 限界効果と解釈
- モデル診断と比較
references/time_series.md
時系列分析の詳細なガイダンス:
- 単変量モデル(AR、ARIMA、SARIMAX、指数平滑法)
- 多変量モデル(VAR、VARMAX、動学的因子)
- 状態空間モデル
- 定常性の検定と診断
- 予測手法と評価
- グレンジャー因果性、IRF、FEVD
references/stats_diagnostics.md
統計的検定と診断の包括的な解説:
- 残差診断(自己相関、不均一分散、正規性)
- 影響度と外れ値の検出
- 仮説検定(パラメトリックおよびノンパラメトリック)
- ANOVA と事後検定
- 多重比較の補正
- ロバスト共分散行列
- 検出力分析と効果量
参照する場面:
- パラメーターについて詳しい説明が必要な場合
- 類似したモデルのどれを選ぶか検討する場合
- 収束や診断の問題を解決する場合
- 特定の検定統計量について理解する場合
- 高度な機能のコード例を探す場合
検索パターン:
# Find information about specific models
rg "Quantile Regression" references/
# Find diagnostic tests
rg "Breusch-Pagan" references/stats_diagnostics.md
# Find time series guidance
rg "SARIMAX" references/time_series.md
よくある落とし穴
- 定数項を忘れる:切片が不要な場合を除き、必ず
sm.add_constant()を使用します - 仮定を無視する:残差、不均一分散、自己相関を確認します
- 結果の種類に合わないモデルを使う:二値→Logit/Probit、カウント→Poisson/NBを使用し、OLSは使いません
- 収束を確認しない:最適化に関する警告がないか確認します
- 係数を誤って解釈する:リンク関数(log、logitなど)を忘れないでください
- 過分散があるのにPoissonを使う:分散を確認し、必要に応じてNegative Binomialを使用します
- 頑健な標準誤差を使わない:不均一分散やクラスタリングがある場合は使用します
- 過剰適合:サンプルサイズに対してパラメーターが多すぎます
- データリーク:テストデータで学習したり、将来の情報を使ったりします
- 予測を検証しない:必ずサンプル外の性能を確認します
- 非入れ子モデルを比較する:LR検定ではなく、AIC/BICを使用します
- 影響の大きい観測値を無視する:Cookの距離とレバレッジを確認します
- 多重検定:多くの仮説を検定する場合は、p値を補正します
- 時系列データの差分を取らない:非定常データにARIMAを当てはめます
- 予測区間と信頼区間を混同する:予測区間のほうが広くなります
ヘルプを得る
詳しいドキュメントと例については、以下をご覧ください。
- 公式ドキュメント:https://www.statsmodels.org/stable/
- ユーザーガイド:https://www.statsmodels.org/stable/user-guide.html
- 例:https://www.statsmodels.org/stable/examples/index.html
- APIリファレンス:https://www.statsmodels.org/stable/api.html
エージェントの作業手順
- 環境を確認します。 Python環境とライブラリのバージョン(
python -c "import pkg; print(pkg.__version__)")を確認し、データの形状、型、欠損値を調べます。 - 入力を明確にします。 データまたはユーザーから、形式、識別子、パラメーターを確認します。結果を左右する値は推測せず、質問してください。
- まず小規模に実行します。 まずサンプルまたは単一のフォールドで実行し、実行時間とメモリを確認します。
- 上記の指示と参考資料を使って、タスク全体を実行します。
- 結果を検証します。 ホールドアウトデータ、固定した乱数シード、適切な指標を使い、リークがないか確認します。不確実性(CI、シード間の標準偏差)を報告します。
- 報告します。 実行した内容(バージョン、コマンド、パラメーター)、確認した内容、まだ不確かな点を明記します。
| このような場合 | 対応 |
|---|---|
| メモリ不足または実行が非常に遅い | サブサンプリング、チャンク化または遅延計算の使用、あるいはモデルサイズの縮小を行い、変更内容をユーザーに伝えます。 |
| これらの指示に記載された関数、フラグ、エンドポイントがインストール済みのバージョンにない | インストール済みバージョンのドキュメント(help()、--help、公式ドキュメント)を確認して適応し、そのことをユーザーに伝えます。APIを捏造してはいけません。 |
| 必須の入力、識別子、パラメーターが曖昧 | ユーザーに質問するか、実行前に仮定を明示します。 |
完全性に関するルール
- 結果、パラメーター、識別子、引用、統計値を捏造してはいけません。実行または検証できない場合は、その旨を明確に伝えます。
- このセッションで計算していない指標を報告してはいけません。すべての数値について、その算出に使ったコードパスを示します。
- ここに記載されたバージョン固有の情報は古くなっている可能性があるものとして扱い、インストール済みバージョンの公式ドキュメントで確認します。
- 費用が発生する、共有GPUまたはクラウドのクォータを消費する、個人データや患者データに触れる、または元に戻せない操作を行う場合は、事前に確認します。
関連スキル
statistical-analysis:研究データのための統計分析ガイド。検定の選択、仮定の確認、効果量、検出力分析、ベイズ的代替手法などを扱います。timesfm-forecasting:GoogleのTimesFM基盤モデルを用いたゼロショット時系列予測。aeon:分類、回帰、クラスタリング、予測、異常検出などの時系列機械学習タスクで使用するスキルです。