SuperAPI AI 工具集

python-regression-statistics

数据与分析

查看项目

更新于 10-27 12:33

技能介绍

用途

该技能面向 Python 中的回归分析、统计建模与异常值检测,提供专家级指导。它整合了四个库:statsmodels 用于统计回归,scikit-learn 用于机器学习回归,scipy 用于统计方法,PyOD 用于异常值检测。

主要能力

统计回归(statsmodels、scipy.stats)

适用场景:需要 p 值、置信区间与假设检验;需要理解哪些变量显著;希望因果性地解释系数;样本量适中且需要推断保证;需要假设检验的诊断测试。

优势:丰富的统计推断(t 检验、F 检验、似然比);全面的诊断与假设检验;公式接口便于指定模型;标准误、置信区间、预测区间;理论性质明确。

局限:对复杂非线性关系灵活性较低;需要仔细检查假设;对高维数据可能处理不佳;特征选择自动化程度较低。

机器学习回归(scikit-learn)

适用场景:预测精度是首要目标;特征多且交互复杂;关系高度非线性;不需要统计推断(p 值);有足够数据做训练/测试划分。

优势:处理复杂非线性模式;内置正则化(Ridge、Lasso、ElasticNet);适合高维数据;自动交叉验证与超参数调优;集成方法提升精度。

局限:没有自动 p 值或统计推断;系数可解释性较低;复杂模型需要更多数据;部分算法为黑箱。

使用方式

推荐工作流

  1. 探索性数据分析:可视化关系(散点图、成对图)、检查分布(直方图、Q-Q 图)、识别潜在异常值(箱线图、散点图)、计算汇总统计。
  2. 初步异常值筛查(可选):使用多种检测方法(IQR、Z-score、孤立森林)、可视化被标记点、调查异常原因(数据错误还是真实极值)、记录保留或删除的决定。
  3. 检查假设(统计回归):线性(残差对拟合图、偏回归图)、独立性(Durbin-Watson 检验、自相关图)、正态性(Q-Q 图、Shapiro-Wilk 检验、残差直方图)、等方差(尺度-位置图、Breusch-Pagan 检验)。
  4. 模型拟合:从简单(OLS)开始按需增加复杂度;假设被违反时尝试变换(log、Box-Cox);存在异常值时考虑稳健方法;预测变量多时使用正则化(Ridge/Lasso)。
  5. 模型诊断:残差分析;检查影响点(Cook's D、DFFITS、杠杆值);多重共线性(VIF);预测变量空间与响应空间中的异常值。
  6. 验证:训练/测试划分或交叉验证;比较多个模型(AIC、BIC、R²、RMSE);检查预测区间(统计)或残差分布(机器学习)。
  7. 解释与报告:带置信区间的系数解释;特征重要性(机器学习模型);可视化预测值与实际值;报告诊断与假设检查。

统计回归示例

OLS 使用数组 API 或公式 API:

import statsmodels.api as sm
import statsmodels.formula.api as smf

X = sm.add_constant(X_raw)
model = sm.OLS(y, X)
results = model.fit()
print(results.summary())

model = smf.ols('y ~ x1 + x2 + C(category)', data=df)
results = model.fit()

可访问的关键结果:params(系数)、pvalues(p 值)、conf_int()(置信区间)、rsquared、rsquared_adj、aic、bic、resid、fittedvalues。

加权最小二乘(WLS)用于异方差情形;稳健回归(RLM)使用 HuberT 或 TukeyBiweight 等 M 估计量抵抗异常值;广义线性模型(GLM)支持 Poisson、NegativeBinomial、Gamma、Binomial 等分布族;时间序列支持 ARIMA、SARIMAX、VAR。

模型诊断

包括残差对拟合图、Q-Q 图、尺度-位置图、残差对杠杆图;统计检验包括 Breusch-Pagan 异方差检验、Durbin-Watson 自相关检验、Ljung-Box 自相关检验、Shapiro-Wilk 正态性检验。

影响点与多重共线性

VIF 大于 10 表示严重多重共线性,大于 5 需关注;Cook's D 大于 4/n 为影响点;DFFITS 绝对值大于 2√(p/n) 为影响点;杠杆值 h 大于 2p/n 或 3p/n 为高杠杆;学生化残差绝对值大于 2 或 3 提示响应空间异常值。

机器学习回归

线性模型与正则化:LinearRegression、Ridge(L2)、Lasso(L1,可做特征选择)、ElasticNet(L1+L2)、HuberRegressor、RANSACRegressor、TheilSenRegressor。

交叉验证与调参:cross_val_score、cross_validate、GridSearchCV、RandomizedSearchCV、KFold、RepeatedKFold;指标包括均方误差、平均绝对误差、R²、平均绝对百分比误差。

树与集成方法:RandomForestRegressor、GradientBoostingRegressor、AdaBoostRegressor、BaggingRegressor、ExtraTreesRegressor、DecisionTreeRegressor,以及可选的 XGBoost。

其他方法:SVR、KernelRidge、KNeighborsRegressor、GaussianProcessRegressor(可返回不确定性)。

完整流水线:Pipeline 结合 StandardScaler、PolynomialFeatures、TransformedTargetRegressor(如对 y 做 log 变换)。

异常值检测

统计方法(scipy、statsmodels):Z-score 方法(|z| 大于阈值,适用于正态分布数据);修正 Z-score(MAD,基于中位数,更稳健,推荐阈值 3.5)。

资料还提到 PyOD 用于全面的异常值检测,涵盖统计、基于邻近度和集成方法,但未提供具体代码示例。

适用场景

  • 拟合线性与非线性回归模型并进行统计推断
  • 检查与验证回归假设(LINE)
  • 模型诊断:残差分析、影响点、多重共线性
  • 使用统计、邻近度与集成方法检测和处理异常值
  • 比较统计回归与机器学习回归方法
  • 构建带正确验证的稳健回归流水线
  • 时间序列建模与预测
  • 非正态响应变量的广义线性模型

限制

资料未提供该技能的安装方式、收费信息、平台要求或具体使用步骤。部分内容(如 PyOD 的具体用法)仅提及而未展开。