回归模型中的残差诊断与变异分析 - swirl_courses教程解析

回归模型中的残差诊断与变异分析 - swirl_courses教程解析

swirl_courses :mortar_board: A collection of interactive courses for the swirl R package. swirl_courses 项目地址: https://gitcode.com/gh_mirrors/sw/swirl_courses

残差分析基础概念

在回归分析中,残差(residuals)是指观测值与模型预测值之间的差异。残差分析是评估回归模型质量的重要手段,它能帮助我们识别模型假设是否成立、数据中是否存在异常值等问题。

异常值的影响

异常值(outliers)可以分为两类:

  1. 非影响性异常值:虽然明显偏离大多数数据点,但对回归线的影响很小
  2. 影响性异常值:不仅偏离大多数数据点,而且显著改变了回归线的位置和斜率

通过比较包含与不包含异常值的回归线(通常用不同颜色表示),我们可以直观地判断异常值的影响程度。

残差诊断实践

基本诊断图

最基础的诊断图是残差 vs 拟合值图,使用R中的plot(fit, which=1)命令生成。理想情况下,残差应该:

  • 与拟合值不相关
  • 独立且近似同分布
  • 均值为零

当图中出现明显模式(如线性趋势)时,可能表明模型存在问题。

影响性分析

衡量单个数据点对回归系数影响的方法:

  1. dfbeta函数:计算包含与不包含每个数据点时回归系数的差异
  2. hatvalues(帽子值):衡量每个数据点对自身预测值的影响程度,计算公式为1减去包含与不包含该点时残差的比率
# 计算帽子值的示例代码
resno <- out2[1, "y"] - predict(fitno, out2[1,])
hat_value <- 1 - resid(fit)[1]/resno

标准化残差

由于不同数据点的残差可能具有不同的方差,我们需要进行标准化处理:

  1. 标准化残差:调整每个残差,考虑其个体方差

    sigma <- sqrt(deviance(fit)/df.residual(fit))
    rstd <- resid(fit)/(sigma * sqrt(1-hatvalues(fit)))
    

    使用rstandard()函数可直接计算

  2. 学生化残差:更精确的标准化方法,使用排除当前点的模型来计算标准差

    sigma1 <- sqrt(deviance(fitno)/df.residual(fitno))
    studentized_resid <- resid(fit)[1]/(sigma1*sqrt(1-hatvalues(fit)[1]))
    

    使用rstudent()函数可直接计算

Cook距离

Cook距离是衡量单个数据点对整体模型影响程度的综合指标,计算所有预测值在包含与不包含该点时的差异:

dy <- predict(fitno, out2)-predict(fit, out2)
cooks_distance <- sum(dy^2)/(2*sigma^2)

使用cooks.distance()函数可直接计算,并通过plot(fit, which=5)可视化。

诊断图解读

  1. Scale-Location图which=3):展示标准化残差的平方根与拟合值的关系
  2. Q-Q图which=2):检查残差是否符合正态分布假设
  3. Cook距离图which=5):识别对模型有过度影响的观测点

实践建议

  1. 始终从残差图开始模型诊断
  2. 关注标准化残差绝对值大于2或3的点
  3. Cook距离大于1的点需要特别检查
  4. 结合多种诊断方法,不要仅依赖单一指标
  5. 对于影响性异常值,需要检查数据收集过程或考虑稳健回归方法

通过系统性的残差诊断,我们可以更好地理解模型的局限性,识别潜在问题,并最终改进回归模型的质量和可靠性。

swirl_courses :mortar_board: A collection of interactive courses for the swirl R package. swirl_courses 项目地址: https://gitcode.com/gh_mirrors/sw/swirl_courses

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时熹剑Gabrielle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值