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 \ epsilon
Ce que je suis particulièrement curieux de savoir, c'est comment R
gère les poids dans la lm()
fonction lorsque les poids sont affectés à des entiers. De l'utilisation ?lm
:
Les non-
NULL
poids 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).
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é):
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?
la source
weights <- c(50, 85, 75)/2
dans votre exemple, vous obtenez le même résultat.Pour répondre à cette question de manière plus concise, la régression des moindres carrés pondérés utilisanty∈Rn X n×p β∈Rp ϵ∈Rn 0 σ2V σ2>0
weights
inR
fait les hypothèses suivantes: supposons que nous l'avonsweights = 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 avonsla source