La teoria alla base dell'argomento pesi in R quando si usa lm ()


12

Dopo un anno alla scuola elementare, la mia comprensione dei "minimi quadrati ponderati" è la seguente: sia yRn , X una matrice di design n×p , 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 β + ϵβRpϵRnϵN(0,σ2V)V=diag(v1,v2,,vn)σ2>0

y=Xβ+ϵ
sotto le ipotesi è chiamato il modello "minimi quadrati ponderati". Il problema WLS finisce per essere trovare
argminβ(yXβ)TV1(yXβ).
Supponiamo y=[y1yn]T , β=[β1βp]T e
X=[X11X1pX21X2pXn1Xnp]=[X1TX2TXnT].
XioTβR1 , quindi
y-Xβ=[y1-X1Tβy2-X2Tβyn-XnTβ].
Questo dà
(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} dando cosìβ
argminβ(y-Xβ)TV-1(y-Xβ)=argminβΣio=1nvio-1(yio-XioTβ)2.
β viene stimato usando
β^=(XTV-1X)-1XTV-1y.
Questa è l'estensione della conoscenza con cui ho familiarità. Non mi è mai stato insegnato come scegliere v1,v2,...,vn , anche se sembra che, a giudicare da qui , che di solito Var(ε)=diag(σ12,σ22,...,σn2), che ha un senso intuitivo. (Dare pesi altamente variabili meno peso nel problema WLS e dare osservazioni con meno variabilità più peso.)

Ciò di cui sono particolarmente curioso è come Rgestisce i pesi nella lm()funzione quando i pesi sono assegnati come numeri interi. Dall'uso ?lm:

I non NULLpesi 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 iwioyiowiowioyio

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):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

Questi non corrispondono ai valori lm()dall'output. Che cosa sto facendo di sbagliato?

Risposte:


4

La matrice dovrebbe essere non Inoltre, dovresti esserlo , no .[ 1 0 1 1 1 2 ] , [ 1 1 1 1 1 1 ] .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

Grazie per aver chiarito la matrice di progettazione errata, in particolare! Sono abbastanza arrugginito su questo materiale. Quindi, come ultima domanda, questo significa cheVar(ε)=diag(1/pesi) nelle ipotesi di WLS?
Clarinetist del

Sì, anche se i pesi devono essere solo proporzionali a 1 / varianza, non necessariamente uguali. Ad esempio, se usi weights <- c(50, 85, 75)/2nel tuo esempio, otterrai lo stesso risultato.
mark999,

3

Per rispondere in modo più conciso, la regressione dei minimi quadrati ponderati usando weightsin Rfa i seguenti presupposti: supponiamo di averlo fatto weights = c(w_1, w_2, ..., w_n). Lascia che ,yRnX sia una matrice di progettazione , sia un vettore di parametri e è un vettore di errore con media e matrice di varianza , dove . Quindi, Seguendo gli stessi passaggi della derivazione nel post originale, abbiamo n×pβRpεRn0σ2Vσ2>0

V=diag(1/w1,1/w2,...,1/wn).
argminβ(y-Xβ)TV-1(y-Xβ)=argminβΣio=1n(1/wio)-1(yio-XioTβ)2=argminβΣio=1nwio(yio-XioTβ)2
e è stimato usando dal GLS ipotesi .β
β^=(XTV-1X)-1XTV-1y
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.