用途
Statsmodels 是 Python 的统计建模与计量经济学库,用于估计、推断和诊断各类统计模型。该技能适用于需要严谨统计分析的场景,包括:拟合回归模型(OLS、WLS、GLS、分位数回归)、执行广义线性建模(Logistic、Poisson、Gamma 等)、分析离散结果(二值、多项、计数、有序)、进行时间序列分析(ARIMA、SARIMAX、VAR、预测)、运行统计检验与诊断、检验模型假设(异方差、自相关、正态性)、检测异常值与影响点、比较模型(AIC/BIC、似然比检验)、估计因果效应,以及生成适合发表的统计表格与推断结果。
主要能力
线性回归模型
提供 OLS、WLS、GLS、GLSAR、分位数回归、混合效应模型、递归/滚动回归等。支持综合诊断检验、稳健标准误(HC、HAC、聚类稳健)、影响统计量(Cook 距离、杠杆值、DFFITS)、假设检验(F 检验、Wald 检验)、模型比较(AIC、BIC、似然比检验)以及带置信区间和预测区间的预测。
广义线性模型(GLM)
支持二项、泊松、负二项、Gamma、逆高斯、高斯、Tweedie 等分布族,以及 Logit、Probit、Log、Identity、Inverse、Sqrt、CLogLog、Power 等连接函数。提供通过 IRLS 的极大似然估计、偏差与 Pearson 残差、拟合优度统计量、伪 R 方、稳健标准误。
离散选择模型
二值模型(Logit、Probit)、多项模型(MNLogit、条件 Logit、有序模型)、计数模型(泊松、负二项、零膨胀 ZIP/ZINB、Hurdle 模型)。支持极大似然估计、边际效应、AIC/BIC 模型比较、预测概率与分类、拟合优度检验。
时间序列分析
单变量模型(AutoReg、ARIMA、SARIMAX、指数平滑、ETS)、多变量模型(VAR、VARMAX、动态因子模型、VECM)、高级模型(状态空间、区制转换、ARDL)。支持 ACF/PACF 分析、平稳性检验(ADF、KPSS)、带预测区间的预测、残差诊断(Ljung-Box、异方差)、Granger 因果检验、脉冲响应函数(IRF)、预测误差方差分解(FEVD)。
统计检验与诊断
残差诊断(自相关检验、异方差检验、正态性检验、设定检验)、影响与异常值(杠杆值、Cook 距离、DFFITS、DFBETAs、学生化残差、影响图)、假设检验(t 检验、比例检验、卡方检验、非参数检验、ANOVA)、多重比较(Tukey HSD、Bonferroni 校正、FDR)、效应量与功效(Cohen's d、eta 平方、功效分析、样本量计算)、稳健推断(异方差一致标准误 HC0-HC3、HAC 标准误 Newey-West、聚类稳健标准误)。
使用方式
标准 API
使用 import statsmodels.api as sm,通过 sm.add_constant() 添加常数项,然后调用 sm.OLS(y, X)、sm.GLM(y, X, family=...) 等建模,用 .fit() 拟合,results.summary() 查看结果。时间序列使用 from statsmodels.tsa.arima.model import ARIMA 等模块。
公式 API(R 风格)
使用 import statsmodels.formula.api as smf,以公式指定模型,例如 smf.ols('y ~ x1 + x2 + x1:x2', data=df).fit(),支持分类变量自动哑变量编码(C(category))、交互项(x1 * x2)、多项式项(I(x**2))等。
模型选择与比较
使用 AIC/BIC 比较非嵌套模型,使用似然比检验比较嵌套模型,使用交叉验证评估样本外表现。
适用场景
- 连续结果变量的回归分析与推断
- 非正态结果(二值、计数、比例)的建模
- 时间序列预测与动态关系分析
- 模型假设检验与诊断
- 因果效应估计
- 生成发表级统计表格
限制
资料中未提供关于平台兼容性、性能限制、收费模式或具体版本要求的信息。部分模型(如 ARIMA)不支持公式 API,需使用标准 API。使用前需确保数据准备正确(添加常数项、处理缺失值、编码分类变量)。