我正在对人口普查数据进行回归,其中我的因变量是预期生命周期,我有八个自变量。数据汇总为城市,因此我有数千个观察结果。
不过,我的模型有点异方差。我想运行一个加权最小二乘法,其中每个观察值都由城市人口加权。在这种情况下,这意味着我想通过总体平方根的倒数对观察进行加权。然而,我不清楚最好的语法是什么。目前,我有:
Model=lm(…,weights=(1/population))
那是对的吗?或者应该是:
Model=lm(…,weights=(1/sqrt(population)))
(我在这里发现了这个问题:Weighted Least Squares - R 但它没有说明 R 如何解释权重参数。)
最佳答案
来自 ?lm
:“权重:在拟合过程中使用的可选权重向量。应该是 NULL 或数字向量。如果非 NULL,加权最小二乘法与权重一起使用 weights
(即最小化 sum(w*e ^2));否则使用普通最小二乘法。” R 不对权重参数做任何进一步的解释。
所以,如果你想最小化的是(从每个点到拟合线的平方距离 * 1/sqrt(population) 那么你想要 ...weights=(1/sqrt(population))
的总和。如果你想最小化(从的平方距离)每个指向拟合线 * 1/population) 然后你想要 ...weights=1/population
。
至于哪个最合适……这是CrossValidated的问题。 !
关于r - 如何为异方差数据设置 r 中的加权最小二乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260017/