在R语言中如何从WLS回归获取未加权残差与拟合值?
从WLS回归获取未加权拟合值与残差
你的猜测是对的:在R中使用lm()做加权最小二乘(WLS)时,resid(wlsmodel)返回的是加权残差,而fitted(wlsmodel)其实就是未加权的拟合值(即$\hat{y}i = X_i\hat{\beta}{WLS}$)——如果这部分和教材答案不符,建议先检查你的权重参数是否和习题要求一致(比如伍德里奇习题中常要求用某变量的倒数作为权重,确认你有没有搞反权重的形式)。
要得到未加权的残差(即$y_i - \hat{y}_i$),有两种简单方法:
- 方法一:用原始因变量减去拟合值
unweighted_resid <- wlsmodel$model[[1]] - fitted(wlsmodel)
- 方法二:将加权残差除以权重的平方根
unweighted_resid <- resid(wlsmodel) / sqrt(weights(wlsmodel))
如果需要手动计算未加权拟合值,也可以用模型系数和原始自变量矩阵推导:
# 提取WLS回归系数 wls_coef <- coef(wlsmodel) # 获取包含截距项的自变量矩阵 X <- model.matrix(wlsmodel) # 计算未加权拟合值 unweighted_fitted <- X %*% wls_coef
这个结果和fitted(wlsmodel)完全一致。
内容的提问来源于stack exchange,提问作者AKJ
相关产品推荐
相关产品推荐

