【发布时间】:2017-01-11 22:55:30
【问题描述】:
为了纠正错误术语中的异方差性,我在 R 中运行以下加权最小二乘回归:
#Call:
#lm(formula = a ~ q + q2 + b + c, data = mydata, weights = weighting)
#Weighted Residuals:
# Min 1Q Median 3Q Max
#-1.83779 -0.33226 0.02011 0.25135 1.48516
#Coefficients:
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) -3.939440 0.609991 -6.458 1.62e-09 ***
#q 0.175019 0.070101 2.497 0.013696 *
#q2 0.048790 0.005613 8.693 8.49e-15 ***
#b 0.473891 0.134918 3.512 0.000598 ***
#c 0.119551 0.125430 0.953 0.342167
#---
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#Residual standard error: 0.5096 on 140 degrees of freedom
#Multiple R-squared: 0.9639, Adjusted R-squared: 0.9628
#F-statistic: 933.6 on 4 and 140 DF, p-value: < 2.2e-16
其中“加权”是用于加权观察的变量(变量q 的函数)。 q2 就是 q^2。
现在,为了仔细检查我的结果,我通过创建新的加权变量来手动加权变量:
mydata$a.wls <- mydata$a * mydata$weighting
mydata$q.wls <- mydata$q * mydata$weighting
mydata$q2.wls <- mydata$q2 * mydata$weighting
mydata$b.wls <- mydata$b * mydata$weighting
mydata$c.wls <- mydata$c * mydata$weighting
并运行以下回归,不带权重选项,也不带常数 - 由于常数是加权的,原始预测矩阵中的 1 列现在应该等于变量权重:
Call:
lm(formula = a.wls ~ 0 + weighting + q.wls + q2.wls + b.wls + c.wls,
data = mydata)
#Residuals:
# Min 1Q Median 3Q Max
#-2.38404 -0.55784 0.01922 0.49838 2.62911
#Coefficients:
# Estimate Std. Error t value Pr(>|t|)
#weighting -4.125559 0.579093 -7.124 5.05e-11 ***
#q.wls 0.217722 0.081851 2.660 0.008726 **
#q2.wls 0.045664 0.006229 7.330 1.67e-11 ***
#b.wls 0.466207 0.121429 3.839 0.000186 ***
#c.wls 0.133522 0.112641 1.185 0.237876
#---
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#Residual standard error: 0.915 on 140 degrees of freedom
#Multiple R-squared: 0.9823, Adjusted R-squared: 0.9817
#F-statistic: 1556 on 5 and 140 DF, p-value: < 2.2e-16
如您所见,结果相似但不完全相同。手动加权变量时我做错了什么,还是“权重”选项不仅仅是将变量乘以加权向量?
【问题讨论】:
-
我认为
weights没有按照您的想法行事。在lm的 R 帮助页面中,您可以在weights下阅读“在拟合过程中使用的可选权重向量。应该是 NULL 或数字向量。如果非 NULL,加权最小二乘法与权重一起使用权重(即最小化总和(w*e^2));否则使用普通最小二乘法。另见“详细信息”,”见here -
@Axeman 为什么它们应该不同?事实上,答案表明它们是相同的。
标签: r regression linear-regression lm