La théorie derrière l'argument des poids dans R lors de l'utilisation de lm ()

12

Après une année d'études supérieures, ma compréhension des "moindres carrés pondérés" est la suivante: soit , soit matrice de conception , \ boldsymbol \ beta \ in \ mathbb {R} ^ p soit un vecteur de paramètres, \ boldsymbol \ epsilon \ in \ mathbb {R} ^ n soit un vecteur d'erreur tel que \ boldsymbol \ epsilon \ sim \ mathcal {N} (\ mathbf {0}, \ sigma ^ 2 \ mathbf {V}) , où \ mathbf {V} = \ text {diag} (v_1, v_2, \ dots, v_n) et \ sigma ^ 2> 0 . Ensuite, le modèle \ mathbf {y} = \ mathbf {X} \ boldsymbol \ beta + \ boldsymbol \ epsilonyRnXn×pβRpϵRnϵN(0,σ2V)V=diag(v1,v2,,vn)σ2>0

y=Xβ+ϵ
sous les hypothèses est appelé le modèle des "moindres carrés pondérés". Le problème WLS finit par trouver
argminβ(yXβ)TV1(yXβ).
Supposons y=[y1yn]T , β=[β1βp]T , et
X=[x11x1px21x2pxn1xnp]=[x1Tx2TxnT].
xiTβR1 , donc
yXβ=[y1x1Tβy2x2TβynxnTβ].
Cela donne
(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} donnant ainsi
argminβ(yXβ)TV1(yXβ)=argminβi=1nvi1(yixiTβ)2.
β est estimé à l'aide de
β^=(XTV1X)1XTV1y.
C'est l'étendue des connaissances que je connais. On ne m'a jamais appris comment v1,v2,,vn , bien qu'il semble que, à en juger par ici , cela habituellement Var(ϵ)=diag(σ12,σ22,,σn2), ce qui est intuitif. (Donner des poids très variables moins de poids dans le problème WLS, et donner des observations avec moins de variabilité plus de poids.)

Ce que je suis particulièrement curieux de savoir, c'est comment Rgère les poids dans la lm()fonction lorsque les poids sont affectés à des entiers. De l'utilisation ?lm:

Les non- NULLpoids peuvent être utilisés pour indiquer que différentes observations ont des variances différentes (les valeurs en poids étant inversement proportionnelles aux variances); ou de manière équivalente, lorsque les éléments de poids sont des entiers positifs , que chaque réponse est la moyenne des observations de poids unitaire (y compris le cas où il y a observations égales à et que les données ont été résumées).wiyiwiwiyi

J'ai relu ce paragraphe plusieurs fois, et cela n'a aucun sens pour moi. En utilisant le cadre que j'ai développé ci-dessus, supposons que j'ai les valeurs simulées suivantes:

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  

En utilisant le cadre que j'ai développé ci-dessus, comment ces paramètres sont-ils dérivés? Voici ma tentative de le faire à la main: en supposant que , nous avons et le faire en donne (notez que l'inversibilité ne fonctionne pas dans ce cas, j'ai donc utilisé un inverse généralisé):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

Ceux-ci ne correspondent pas aux valeurs de la lm()sortie. Qu'est-ce que je fais mal?

Clarinettiste
la source

Réponses:

4

La matrice doit être pas En outre, vous devriez l'être , non .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
mark999
la source
Merci d'avoir clarifié la matrice de conception incorrecte, surtout! Je suis assez rouillé sur ce matériau. Donc, comme dernière question, cela signifie-t-il que dans les hypothèses WLS? Var(ϵ)=diag(1/weights)
Clarinettiste
Oui, bien que les poids doivent uniquement être proportionnels à 1 / variance, pas nécessairement égaux. Par exemple, si vous utilisez weights <- c(50, 85, 75)/2dans votre exemple, vous obtenez le même résultat.
mark999
3

Pour répondre à cette question de manière plus concise, la régression des moindres carrés pondérés utilisant weightsin Rfait les hypothèses suivantes: supposons que nous l'avons weights = c(w_1, w_2, ..., w_n). Soit , une matrice de conception, un vecteur de paramètres, et être un vecteur d'erreur avec la moyenne et la matrice de variance , où . Ensuite, suivant les mêmes étapes de la dérivation dans le message d'origine, nous avons 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
et est estimé en utilisant du GLS hypothèses .β
β^=(XTV1X)1XTV1y
Clarinettiste
la source