StatsModels回归诊断可视化完全指南
前言
回归分析是统计学中最常用的方法之一,但如何评估回归模型的质量和假设是否满足却是一个复杂的问题。StatsModels作为Python中强大的统计分析库,提供了一系列回归诊断可视化工具,本文将深入解析这些工具的使用方法和解读技巧。
环境准备
首先我们需要导入必要的库并设置绘图参数:
import matplotlib.pyplot as plt
import numpy as np
import statsmodels.api as sm
from statsmodels.formula.api import ols
plt.rc("figure", figsize=(16, 8))
plt.rc("font", size=14)
Duncan职业声望数据集分析
数据加载与模型构建
我们使用Duncan的职业声望数据集,该数据集包含了不同职业的收入、教育水平和声望评分:
prestige = sm.datasets.get_rdataset("Duncan", "carData", cache=True).data
prestige_model = ols("prestige ~ income + education", data=prestige).fit()
影响力分析图(Influence Plot)
影响力分析图是诊断回归模型的重要工具,它展示了每个观测点的学生化残差与杠杆值的关系:
fig = sm.graphics.influence_plot(prestige_model, criterion="cooks")
图中:
- x轴表示杠杆值(leverage),衡量观测点对模型拟合的影响程度
- y轴表示学生化残差(studentized residual),标准化后的残差
- 点的大小反映Cook距离,用于识别强影响力点
从图中我们可以识别出几个异常点:
- contractor和reporter:低杠杆但大残差
- RR.engineer:小残差但高杠杆
- conductor和official:同时具有高杠杆和大残差,对模型影响最大
偏回归图(Partial Regression Plot)
在多元回归中,偏回归图帮助我们理解在控制其他变量后,某个自变量与因变量的关系:
fig = sm.graphics.plot_partregress("prestige", "income", ["education"], data=prestige)
解读要点:
- 拟合线的斜率等于该变量在完整模型中的回归系数
- 截距应为0
- 可以直观识别影响关系的异常点
成分加残差图(CCPR Plot)
CCPR图展示了在考虑其他变量影响后,某个自变量与因变量的关系:
fig = sm.graphics.plot_ccpr(prestige_model, "education")
图中包含:
- 成分部分:展示不考虑残差时的关系
- 残差部分:展示实际观测值与拟合值的差异
- 综合来看可以评估线性假设是否成立
回归诊断综合图
StatsModels提供了综合诊断函数,一次性展示多个诊断图:
fig = sm.graphics.plot_regress_exog(prestige_model, "education")
该图包含四个子图:
- 因变量与自变量的关系及拟合线
- 残差与自变量的关系
- 偏回归图
- CCPR图
州犯罪率数据集分析
模型构建
我们使用美国各州的犯罪率数据构建回归模型:
dta = sm.datasets.statecrime.load_pandas().data
crime_model = ols("murder ~ urban + poverty + hs_grad + single", data=dta).fit()
杠杆-残差平方图
fig = sm.graphics.plot_leverage_resid2(crime_model)
该图是另一种形式的影响力诊断图:
- x轴:杠杆值
- y轴:标准化残差的平方
- 可以识别高杠杆点和高残差点
稳健回归处理异常值
当数据中存在异常值时,可以使用稳健回归方法:
from statsmodels.formula.api import rlm
rob_crime_model = rlm(
"murder ~ urban + poverty + hs_grad + single",
data=dta,
M=sm.robust.norms.TukeyBiweight(3),
).fit(conv="weights")
稳健回归通过降低异常值的权重,使模型对极端值不敏感。
总结
StatsModels提供的回归诊断工具可以帮助我们:
- 识别影响模型拟合的异常观测点
- 验证回归假设是否满足
- 理解变量间的偏相关关系
- 评估模型的稳健性
掌握这些可视化方法,能够大大提高回归分析的质量和可靠性。建议在实际分析中结合多种诊断图,全面评估模型表现。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考