La teoría detrás del argumento de los pesos en R cuando se usa lm ()


12

Después de un año en la escuela de posgrado, mi comprensión de los "mínimos cuadrados ponderados" es la siguiente: let , sea ​​una matriz de diseño , \ boldsymbol \ beta \ in \ mathbb {R} ^ p sea ​​un vector de parámetros, \ boldsymbol \ epsilon \ in \ mathbb {R} ^ n sea ​​un vector de error tal que \ boldsymbol \ epsilon \ sim \ mathcal {N} (\ mathbf {0}, \ sigma ^ 2 \ mathbf {V}) , donde \ mathbf {V} = \ text {diag} (v_1, v_2, \ dots, v_n) y \ sigma ^ 2> 0 . Entonces el modelo \ mathbf {y} = \ mathbf {X} \ boldsymbol \ beta + \ boldsymbol \ epsilonyRnXn×pβRp ϵ N ( 0 , σ 2 V )ϵRnϵN(0,σ2V)V=diag(v1,v2,,vn)σ2>0

y=Xβ+ϵ
bajo los supuestos se llama el modelo de "mínimos cuadrados ponderados". El problema de WLS termina siendo encontrar
argminβ(yXβ)TV1(yXβ).
Supongamos que y=[y1yn]T , β=[β1βp]T y
X=[x11x1px21x2pxn1xnp]=[x1Tx2TxnT].
xiTβR1 , entonces
yXβ=[y1x1Tβy2x2TβynxnTβ].
Esto da
(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} dando así
argminβ(yXβ)TV1(yXβ)=argminβi=1nvi1(yixiTβ)2.
β se estima usando
β^=(XTV1X)1XTV1y.
Esta es la extensión del conocimiento con el que estoy familiarizado. Nunca me enseñaron cómo deberían elegirse v1,v2,,vn , aunque parece que, a juzgar por esto , generalmente Var(ϵ)=diag(σ12,σ22,,σn2), lo que tiene sentido intuitivo. (Proporcione pesos muy variables menos peso en el problema WLS, y brinde observaciones con menos variabilidad más peso).

Lo que me interesa especialmente es cómo Rmaneja los pesos en la lm()función cuando los pesos se asignan como enteros. De usar ?lm:

Las no NULLponderaciones se pueden usar para indicar que las diferentes observaciones tienen diferentes variaciones (con los valores en pesos inversamente proporcionales a las variaciones); o de manera equivalente, cuando los elementos de los pesos son enteros positivos , que cada respuesta es la media de las observaciones de peso unitario (incluido el caso de que hay observaciones iguales a y los datos se han resumido).wiyiwiwiyi

He releído este párrafo varias veces, y no tiene sentido para mí. Usando el marco que desarrollé anteriormente, supongamos que tengo los siguientes valores simulados:

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  

Usando el marco que he desarrollado anteriormente, ¿cómo se derivan estos parámetros? Aquí está mi intento de hacer esto a mano: suponiendo , tenemos y hacer esto en give (tenga en cuenta que la invertibilidad no funciona en este caso, por lo que utilicé un inverso generalizado):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

Estos no coinciden con los valores de la lm()salida. ¿Qué estoy haciendo mal?

Respuestas:


4

La matriz debe ser no Además, tu deberías ser , no .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

¡Gracias por aclarar la matriz de diseño incorrecta, especialmente! Estoy bastante oxidado con este material. Entonces, como última pregunta, ¿significa esto que en los supuestos de WLS? Var(ϵ)=diag(1/weights)
Clarinetista

Sí, aunque los pesos solo tienen que ser proporcionales a 1 / varianza, no necesariamente iguales. Por ejemplo, si usa weights <- c(50, 85, 75)/2en su ejemplo, obtendrá el mismo resultado.
mark999

3

Para responder esto de manera más concisa, la regresión ponderada de mínimos cuadrados usando weightsin Rhace los siguientes supuestos: supongamos que tenemos weights = c(w_1, w_2, ..., w_n). Deje que , sea ​​una matriz de diseño , sea ​​un vector de parámetros y puede ser un vector de error con media y varianza matriz , donde . Luego, Siguiendo los mismos pasos de la derivación en la publicación original, tenemos 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
y se estima usando del GLS supuestos .β
β^=(XTV1X)1XTV1y
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.