使用lm()时R中权重参数背后的理论


12

在读研究生一年后,我的“加权最小二乘”的理解是这样的:让yRnX是一些n×p设计矩阵,是一个参数向量中的是误差向量,使得,其中和。然后模型 βRpϵRnϵN(0,σ2V)V=diag(v1,v2,,vn)σ2>0

y=Xβ+ϵ
在该假设下的模型称为“加权最小二乘”模型。WLS问题最终是找到
argminβ(yXβ)TV1(yXβ).
假设y=[y1yn]Tβ=[β1βp]T
X=[x11x1px21x2pxn1xnp]=[x1Tx2TxnT].
xiTβR1,因此
yXβ=[y1x1Tβy2x2TβynxnTβ].
这给出
(yXβ)TV1=[y1x1Tβy2x2TβynxnTβ]diag(v11,v21,,vn1)=[v11(y1x1Tβ)v21(y2x2Tβ)vn1(ynxnTβ)]
v_n ^ {-1}(y_n- \ mathbf {x} _ {n} ^ {T} \ boldsymbol \ beta)\ end {bmatrix} \ end {align} 因此
argminβ(yXβ)TV1(yXβ)=argminβi=1nvi1(yixiTβ)2.
β使用
β^=(XTV1X)1XTV1y.
这是我所熟悉的知识的范围。我从来没有教如何v1,v2,,vn应选择,尽管它似乎是,通过判断在这里,通常Var(ϵ)=diag(σ12,σ22,,σn2),这很直观。(在WLS问题中,赋予高度可变的权重将使权重减小,而使变异性较小的观察将具有更大的权重。)

我特别好奇的是,R当权重lm()分配为整数时,如何处理函数中的权重。通过使用?lm

NULL权重可用于表示不同的观察值具有不同的方差(权重中的值与方差成反比);或等效地,重元素为正整数时,每个响应是单位权重观测值的平均值(包括存在 观测值等于且数据已汇总的情况)。wiyiwiwiyi

我已经多次阅读了本段内容,对我而言这毫无意义。使用上面开发的框架,假设我具有以下模拟值:

x <- c(0, 1, 2)
y <- c(0.25, 0.75, 0.85)
weights <- c(50, 85, 75)

lm(y~x, weights = weights)

Call:
lm(formula = y ~ x, weights = weights)

Coefficients:
(Intercept)            x  
     0.3495       0.2834  

使用我上面开发的框架,这些参数如何导出?这是我手动进行的尝试:假设,我们有 并在Give中执行此操作(请注意,在这种情况下,可逆性不起作用,因此我使用了广义逆):V=diag(50,85,75)

[β^0β^1]=([111111]diag(1/50,1/85,1/75)[111111]T)1[111111]Tdiag(1/50,1/85,1/75)[0.250.750.85]
R
X <- matrix(rep(1, times = 6), byrow = T, nrow = 3, ncol = 2)
V_inv <- diag(c(1/50, 1/85, 1/75))
y <- c(0.25, 0.75, 0.85)

library(MASS)
ginv(t(X) %*% V_inv %*% X) %*% t(X) %*% V_inv %*% y

         [,1]
[1,] 0.278913
[2,] 0.278913

这些与lm()输出中的值不匹配。我究竟做错了什么?

Answers:


4

矩阵应该是 而不是 另外,您应该是,不是。X

[101112],
[111111].
V_invdiag(weights)diag(1/weights)
x <- c(0, 1, 2)
y <- c(0.25, 0.75, 0.85)
weights <- c(50, 85, 75)
X <- cbind(1, x)

> solve(t(X) %*% diag(weights) %*% X, t(X) %*% diag(weights) %*% y)
       [,1]
  0.3495122
x 0.2834146

尤其感谢您清除错误的设计矩阵!我对这种材料很生疏。因此,作为最后一个问题,这是否意味着在WLS假设中?Var(ϵ)=diag(1/weights)
单簧管演奏家

是的,尽管权重仅需与1 /方差成比例,但不一定相等。例如,如果weights <- c(50, 85, 75)/2在示例中使用,则会得到相同的结果。
mark999

3

为了更简洁地回答这个问题,使用weightsin 的加权最小二乘回归R做出以下假设:假设我们有weights = c(w_1, w_2, ..., w_n)。让,是设计矩阵,是一个参数矢量,和中的是均值和方差矩阵的误差向量,其中。然后, 按照原始帖子中的推导相同步骤,我们得到 yRnXn×pβRpϵRn0σ2Vσ2>0

V=diag(1/w1,1/w2,,1/wn).
argminβ(yXβ)TV1(yXβ)=argminβi=1n(1/wi)1(yixiTβ)2=argminβi=1nwi(yixiTβ)2
和使用 来自GLS的假设β
β^=(XTV1X)1XTV1y
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.