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


12

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

y=Xβ+ϵ
在该假设下的模型称为“加权最小二乘”模型。WLS问题最终是找到
arg⁡minβ(y−Xβ)TV−1(y−Xβ).
假设y=[y1…yn]T,β=[β1…βp]T和
X=[x11⋯x1px21⋯x2p⋮⋮⋮xn1⋯xnp]=[x1Tx2T⋮xnT].
xiTβ∈R1,因此
y−Xβ=[y1−x1Tβy2−x2Tβ⋮yn−xnTβ].
这给出
(y−Xβ)TV−1=[y1−x1Tβy2−x2Tβ⋯yn−xnTβ]diag(v1−1,v2−1,…,vn−1)=[v1−1(y1−x1Tβ)v2−1(y2−x2Tβ)⋯vn−1(yn−xnTβ)]
v_n ^ {-1}(y_n- \ mathbf {x} _ {n} ^ {T} \ boldsymbol \ beta)\ end {bmatrix} \ end {align} 因此
arg⁡minβ(y−Xβ)TV−1(y−Xβ)=arg⁡minβ∑i=1nvi−1(yi−xiTβ)2.
β使用
β^=(XTV−1X)−1XTV−1y.
这是我所熟悉的知识的范围。我从来没有教如何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)。让,是设计矩阵,是一个参数矢量,和中的是均值和方差矩阵的误差向量,其中。然后, 按照原始帖子中的推导相同步骤,我们得到 y∈RnXn×pβ∈Rpϵ∈Rn0σ2Vσ2>0

V=diag(1/w1,1/w2,…,1/wn).
arg⁡minβ(y−Xβ)TV−1(y−Xβ)=arg⁡minβ∑i=1n(1/wi)−1(yi−xiTβ)2=arg⁡minβ∑i=1nwi(yi−xiTβ)2
和使用 来自GLS的假设。β
β^=(XTV−1X)−1XTV−1y
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.