statsmodels

statsmodels

熱門

Python 的統計模型函式庫。當你需要特定模型類別(OLS、GLM、混合模型、ARIMA)並需要詳細診斷、殘差和推論時使用。最適合計量經濟學、時間序列、需要係數表的嚴謹推論。如需引導式統計檢定選擇並附 APA 報告,請使用 statistical-analysis。

3.8萬星標
3574分支
更新於 2026/8/29
SKILL.md
唯讀
名稱
statsmodels
描述

Python 的統計模型函式庫。當你需要特定模型類別(OLS、GLM、混合模型、ARIMA)並需要詳細診斷、殘差和推論時使用。最適合計量經濟學、時間序列、需要係數表的嚴謹推論。如需引導式統計檢定選擇並附 APA 報告,請使用 statistical-analysis。

Statsmodels:統計建模與計量經濟學

概述

Statsmodels 是 Python 首屈一指的統計建模函式庫,提供各種統計方法的估計、推論和診斷工具。從簡單的線性迴歸到複雜的時間序列模型和計量經濟分析,皆可運用此技能進行嚴謹的統計分析。

目前相容性

範例以 statsmodels 0.14.6(2025 年 12 月 5 日發布)為目標。若要建立可重現的環境,請鎖定主要套件版本:

uv pip install statsmodels==0.14.6

使用 statsmodels.apistatsmodels.formula.api 進行穩定的高階匯入;當範例需要較新或特殊類別(如 HurdleCountModel)時,則直接匯入模組。

何時使用此技能

以下情況應使用此技能:

  • 擬合迴歸模型(OLS、WLS、GLS、分位數迴歸)
  • 執行廣義線性模型(邏輯斯、卜瓦松、伽瑪等)
  • 分析離散結果(二元、多項、計數、有序)
  • 進行時間序列分析(ARIMA、SARIMAX、VAR、預測)
  • 執行統計檢定與診斷
  • 檢驗模型假設(異質變異、自我相關、常態性)
  • 偵測離群值與影響觀測值
  • 比較模型(AIC/BIC、概似比檢定)
  • 估計因果效應
  • 產出可發表的統計表格與推論

快速入門、功能與模型選擇

statsmodels 用於推論——標準誤、信賴區間和假設檢定。當目標是預測且不需解釋係數時,請使用 scikit-learn。

最佳實務

資料準備

  1. 務必加入常數項:除非排除截距,否則使用 sm.add_constant()
  2. 檢查缺失值:擬合前處理或插補
  3. 必要時標準化:改善收斂與解釋(但樹狀模型不要求)
  4. 編碼類別變數:使用公式 API 或手動虛擬編碼

模型建立

  1. 從簡單開始:先建立基本模型,再依需求增加複雜度
  2. 檢查假設:檢驗殘差、異質變異、自我相關
  3. 使用適當模型:依結果類型選擇模型(二元→Logit,計數→Poisson)
  4. 考慮替代方案:若假設違反,使用穩健方法或不同模型

推論

  1. 報告效應量:不僅是 p 值
  2. 使用穩健標準誤:當存在異質變異或群聚時
  3. 多重比較:檢定多個假設時進行校正
  4. 信賴區間:務必與點估計一同報告

模型評估

  1. 檢查殘差:繪製殘差對擬合值圖、Q-Q 圖
  2. 影響診斷:識別並調查影響觀測值
  3. 樣本外驗證:在保留集上測試或交叉驗證
  4. 比較模型:非巢狀模型使用 AIC/BIC,巢狀模型使用 LR 檢定

報告

  1. 完整摘要:使用 .summary() 取得詳細輸出
  2. 記錄決策:註明轉換、排除的觀測值
  3. 謹慎解釋:考量連結函數(例如 log 連結的 exp(β))
  4. 視覺化:繪製預測值、信賴區間、診斷圖

常見工作流程

工作流程 1:線性迴歸分析

  1. 探索資料(圖形、描述統計)
  2. 擬合初始 OLS 模型
  3. 檢查殘差診斷
  4. 檢定異質變異、自我相關
  5. 檢查多元共線性(VIF)
  6. 識別影響觀測值
  7. 必要時以穩健標準誤重新擬合
  8. 解釋係數與推論
  9. 在保留集或交叉驗證中驗證

工作流程 2:二元分類

  1. 擬合邏輯斯迴歸(Logit)
  2. 檢查收斂問題
  3. 解釋勝算比
  4. 計算邊際效應
  5. 評估分類效能(AUC、混淆矩陣)
  6. 檢查影響觀測值
  7. 與替代模型比較(Probit)
  8. 在測試集上驗證預測

工作流程 3:計數資料分析

  1. 擬合卜瓦松迴歸
  2. 檢查過度離散
  3. 若過度離散,擬合負二項模型
  4. 檢查過多零(考慮 ZIP/ZINB)
  5. 解釋發生率比
  6. 評估適合度
  7. 透過 AIC 比較模型
  8. 驗證預測

工作流程 4:時間序列預測

  1. 繪製序列,檢查趨勢/季節性
  2. 檢定平穩性(ADF、KPSS)
  3. 若非平穩則差分
  4. 從 ACF/PACF 識別 p、q
  5. 擬合 ARIMA 或 SARIMAX
  6. 檢查殘差診斷(Ljung-Box)
  7. 產生含信賴區間的預測
  8. 在測試集上評估預測準確度

參考文件

此技能包含完整的參考檔案,提供詳細指引:

references/linear_models.md

線性迴歸模型的詳細涵蓋,包括:

  • OLS、WLS、GLS、GLSAR、分位數迴歸
  • 混合效應模型
  • 遞迴與滾動迴歸
  • 全面診斷(異質變異、自我相關、多元共線性)
  • 影響統計量與離群值偵測
  • 穩健標準誤(HC、HAC、群聚)
  • 假設檢定與模型比較

references/glm.md

廣義線性模型的完整指南:

  • 所有分布族(二項、卜瓦松、伽瑪等)
  • 連結函數及其使用時機
  • 模型擬合與解釋
  • 偽 R 平方與適合度
  • 診斷與殘差分析
  • 應用(邏輯斯、卜瓦松、伽瑪迴歸)

references/discrete_choice.md

離散結果模型的全面指南:

  • 二元模型(Logit、Probit)
  • 多項模型(MNLogit、條件 Logit)
  • 計數模型(卜瓦松、負二項、零膨脹、Hurdle)
  • 有序模型
  • 邊際效應與解釋
  • 模型診斷與比較

references/time_series.md

深入的時間序列分析指引:

  • 單變量模型(AR、ARIMA、SARIMAX、指數平滑)
  • 多變量模型(VAR、VARMAX、動態因子)
  • 狀態空間模型
  • 平穩性檢定與診斷
  • 預測方法與評估
  • Granger 因果、IRF、FEVD

references/stats_diagnostics.md

全面的統計檢定與診斷:

  • 殘差診斷(自我相關、異質變異、常態性)
  • 影響與離群值偵測
  • 假設檢定(參數與無母數)
  • ANOVA 與事後檢定
  • 多重比較校正
  • 穩健共變異矩陣
  • 檢定力分析與效應量

何時參考:

  • 需要詳細的參數說明
  • 在相似模型之間選擇
  • 排除收斂或診斷問題
  • 了解特定檢定統計量
  • 尋找進階功能的程式碼範例

搜尋模式:

# 尋找特定模型的資訊
rg "Quantile Regression" references/

# 尋找診斷檢定
rg "Breusch-Pagan" references/stats_diagnostics.md

# 尋找時間序列指引
rg "SARIMAX" references/time_series.md

常見陷阱避免

  1. 忘記常數項:除非不需要截距,否則務必使用 sm.add_constant()
  2. 忽略假設:檢查殘差、異質變異、自我相關
  3. 結果類型使用錯誤模型:二元→Logit/Probit,計數→Poisson/NB,而非 OLS
  4. 未檢查收斂:注意最佳化警告
  5. 誤解係數:記得連結函數(log、logit 等)
  6. 過度離散時使用卜瓦松:檢查離散程度,必要時使用負二項
  7. 未使用穩健標準誤:當存在異質變異或群聚時
  8. 過度擬合:參數過多相對於樣本數
  9. 資料洩漏:在測試資料上擬合或使用未來資訊
  10. 未驗證預測:務必檢查樣本外表現
  11. 比較非巢狀模型:使用 AIC/BIC,而非 LR 檢定
  12. 忽略影響觀測值:檢查 Cook's distance 與槓桿值
  13. 多重檢定:檢定多個假設時校正 p 值
  14. 未對時間序列差分:對非平穩資料擬合 ARIMA
  15. 混淆預測區間與信賴區間:預測區間較寬

取得協助

詳細文件與範例: