Dopo un anno alla scuola elementare, la mia comprensione dei "minimi quadrati ponderati" è la seguente: sia , una matrice di design , sia un parametro vector, essere un vettore di errore tale che , dove e \ sigma ^ 2> 0 . Quindi il modello \ mathbf {y} = \ mathbf {X} \ boldsymbol \ beta + \ boldsymbol \ epsilon ϵ ∈ R n ϵ ∼ N ( 0 , σ 2 V ) V = diag ( v 1 , v 2 , … , v n ) σ 2 > 0 y = X β + ϵ
Ciò di cui sono particolarmente curioso è come R
gestisce i pesi nella lm()
funzione quando i pesi sono assegnati come numeri interi. Dall'uso ?lm
:
I non
NULL
pesi possono essere usati per indicare che osservazioni diverse hanno varianze diverse (con i valori nei pesi che sono inversamente proporzionali alle varianze); o equivalentemente, quando gli elementi dei pesi sono numeri interi positivi , che ogni risposta è la media delle osservazioni peso unitario (incluso il caso in cui vi siano osservazioni uguali a e i dati siano stati riassunti).y i w i w i y i
Ho riletto questo paragrafo più volte e non ha senso per me. Utilizzando il framework che ho sviluppato sopra, supponiamo di avere i seguenti valori simulati:
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
Utilizzando il framework che ho sviluppato sopra, come vengono derivati questi parametri? Ecco il mio tentativo di farlo a mano: supponendo , abbiamo e facendo questo in dà (nota che l'invertibilità non funziona in questo caso, quindi ho usato un inverso generalizzato):
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
Questi non corrispondono ai valori lm()
dall'output. Che cosa sto facendo di sbagliato?