在基数R中,加权最小二乘(WLS)的未加权残差代表什么?下面,我估计普通最小二乘(OLS)并计算残留标准误差(RSE)。然后,我估计WLS并使用加权残差计算RSE。一切都很好。但是,为什么使用未加权残差的WLS中的RSE与使用未加权残差的OLS中的RSE不匹配?
set.seed(1)
x <- rnorm(25)
y <- 5 * x + rnorm(25)
unweighted <- lm(y ~ x)
summary(unweighted)
sqrt(sum(resid(unweighted)^2) / 23)
w <- 1:25
weighted <- lm(y ~ x, weights = w)
summary(weighted)
sqrt(sum(weighted.residuals(weighted)^2) / 23)
sqrt(sum(w * resid(weighted)^2) / 23)
sqrt(sum(resid(weighted)^2) / 23)
下面是代码:
x_a <- cbind(x,1)
y_a <- y
coeff_a <- solve(t(x_a)%*%x_a)%*%t(x_a)%*%y_a
resid_a <- y_a-x_a%*%coeff_a
x_b <- diag(sqrt(w)) %*% x_a
y_b <- diag(sqrt(w)) %*% y_a
coeff_b <- solve(t(x_b)%*%x_b)%*%t(x_b)%*%y_b
resid_b <- y_b-x_b%*%coeff_b
resid_bp <- y_a-x_a%*%coeff_b
resid_b-weighted.residuals(weighted)
resid_bp-residuals(weighted)
第一个分辨率是普通的最小二乘。第二个加权最小二乘。
您可以在转换后的模型(resid_b)中找到残差。总之,它们不是真正的残差。它们是转换后的模型的残差。
WLS的真实残差为resid_bp,当您将在实际输入上找到的系数应用到实际输入上并与实际响应有所不同时。