用途
Statsmodels 是 Python 的统计建模与计量经济学库,提供估计、推断与诊断工具,覆盖从简单线性回归到复杂时间序列模型和计量经济分析的广泛统计方法。该技能适用于需要严谨统计分析、并关注模型系数解释与统计推断的场景。
主要能力
资料列出的适用场景包括:
- 拟合回归模型(OLS、WLS、GLS、分位数回归)
- 广义线性建模(logistic、Poisson、Gamma 等)
- 离散结果分析(二值、多项、计数、有序)
- 时间序列分析(ARIMA、SARIMAX、VAR、预测)
- 运行统计检验与诊断
- 检验模型假设(异方差、自相关、正态性)
- 检测离群点与有影响的观测
- 模型比较(AIC/BIC、似然比检验)
- 估计因果效应
- 生成可发表的统计表格与推断
参考文件按主题组织:
- references/quick_start_guide.md:OLS、logistic 回归、ARIMA、GLM 的最小可运行示例,以及如何阅读 summary。
- references/modeling_capabilities.md:线性模型、GLM、离散选择、时间序列,以及统计检验与诊断。
- references/model_selection.md:R 风格公式 API 与模型比较。
- references/linear_models.md:OLS、WLS、GLS、GLSAR、分位数回归、混合效应模型、递归与滚动回归、诊断(异方差、自相关、多重共线性)、影响统计与离群点检测、稳健标准误(HC、HAC、cluster)、假设检验与模型比较。
- references/glm.md:所有分布族(Binomial、Poisson、Gamma 等)、连接函数及适用场景、模型拟合与解释、伪 R 方与拟合优度、诊断与残差分析、应用(logistic、Poisson、Gamma 回归)。
- references/discrete_choice.md:二值模型(Logit、Probit)、多项模型(MNLogit、条件 Logit)、计数模型(Poisson、负二项、零膨胀、Hurdle)、有序模型、边际效应与解释、模型诊断与比较。
- references/time_series.md:单变量模型(AR、ARIMA、SARIMAX、指数平滑)、多变量模型(VAR、VARMAX、动态因子)、状态空间模型、平稳性检验与诊断、预测方法与评估、Granger 因果、IRF、FEVD。
- references/stats_diagnostics.md:残差诊断(自相关、异方差、正态性)、影响与离群点检测、假设检验(参数与非参数)、ANOVA 与事后检验、多重比较校正、稳健协方差矩阵、功效分析与效应量。
使用方式
资料给出的版本与安装信息:
- 示例面向 statsmodels 0.14.6,发布于 2025 年 12 月 5 日。
- 为可复现环境,固定主包版本:
uv pip install statsmodels==0.14.6 - 使用
statsmodels.api和statsmodels.formula.api进行稳定的高层导入;当示例需要更新或专门的类(如 HurdleCountModel)时,使用直接模块导入。
资料中的最佳实践:
数据准备:
- 始终添加常数项:除非排除截距,使用
sm.add_constant() - 检查缺失值:拟合前处理或插补
- 按需缩放:改善收敛与解释(树模型不要求)
- 编码分类变量:使用公式 API 或手动哑变量编码
模型构建:
- 从简单开始:先基础模型,再按需增加复杂度
- 检查假设:检验残差、异方差、自相关
- 使用合适模型:匹配结果类型(二值→Logit,计数→Poisson)
- 考虑替代方案:假设被违反时,使用稳健方法或不同模型
推断:
- 报告效应量:不只是 p 值
- 使用稳健标准误:存在异方差或聚类时
- 多重比较:检验多个假设时校正
- 置信区间:始终与点估计一起报告
模型评估:
- 检查残差:残差对拟合值图、Q-Q 图
- 影响诊断:识别并调查有影响的观测
- 样本外验证:在留出集或交叉验证上测试
- 比较模型:非嵌套用 AIC/BIC,嵌套用 LR 检验
报告:
- 综合摘要:使用
.summary()获取详细输出 - 记录决策:注明变换、排除的观测
- 谨慎解释:考虑连接函数(如 log 连接的 exp(β))
- 可视化:绘制预测、置信区间、诊断图
资料还给出常见工作流(线性回归分析、二分类、计数数据分析、时间序列预测)的步骤,以及常见陷阱(如忘记常数项、忽略假设、结果类型与模型不匹配、未检查收敛、误解释系数、Poisson 过离散、未用稳健标准误、过拟合、数据泄漏、未验证预测、比较非嵌套模型、忽略有影响观测、多重检验、未对时间序列差分、混淆预测区间与置信区间)。
适用场景
该技能应在以下情况使用:需要具体模型类并关注详细诊断、残差与推断时。资料明确指出:statsmodels 面向推断——标准误、置信区间与假设检验;当目标是预测且无需解释系数时,应使用 scikit-learn。
限制
资料未提供关于收费、价格、平台支持范围或性能效果的具体信息。资料中的版本细节可能过时,应针对已安装版本的官方文档进行确认。资料强调完整性规则:不得编造结果、参数、标识符、引用或统计量;不得报告本次会话未计算的指标;涉及花钱、消耗共享 GPU 或云配额、触碰个人或患者数据、或不可撤销的操作前应先询问。
获取帮助
- 官方文档: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