C'è un modo per usare la matrice di covarianza per trovare coefficienti per la regressione multipla?


23

Per una semplice regressione lineare, il coefficiente di regressione è calcolabile direttamente dalla matrice varianza-covarianza , di dove è l'indice della variabile dipendente ed è l'indice della variabile esplicativa.C d , eC de

Cd,eCe,e
de

Se uno ha solo la matrice di covarianza, è possibile calcolare i coefficienti per un modello con più variabili esplicative?

ETA: per due variabili esplicative, sembra che e analogamente per . Non vedo immediatamente come estenderlo a tre o più variabili.

β1=Cov(y,X1)vun'r(X2)-Cov(y,X2)Cov(X1,X2)vun'r(X1)vun'r(X2)-Cov(X1,X2)2
β2

3
Il vettore coefficiente è la soluzione a . Alcune manipolazioni algebriche rivelano che questa è in realtà la stessa della formula che dai nel caso a 2 coefficienti. Presentato qui: stat.purdue.edu/~jennings/stat514/stat512notes/topic3.pdf . Non sono sicuro se questo aiuta a tutti. Ma mi permetto di indovinare che ciò è impossibile in generale sulla base di quella formula. X'Y=(X'X)-1ββ^X'Y=(X'X)-1β
Shadowtalker,

1
@David Hai capito come estenderlo a un numero arbitrario di variabili esplicative (oltre 2)? Ho bisogno dell'espressione.
Jane Wayne,

1
@JaneWayne Non sono sicuro di aver capito la tua domanda: whuber ha dato la soluzione seguente sotto forma di matrice,C1(Cov(Xio,y))'
David

1
sì, l'ho studiato e ha ragione.
Jane Wayne,

Risposte:


36

Sì, la matrice di covarianza di tutte le variabili - esplicativa e risposta - contiene le informazioni necessarie per trovare tutti i coefficienti, a condizione che nel modello sia incluso un termine di intercettazione (costante). (Sebbene le covarianze non forniscano informazioni sul termine costante, possono essere trovate sulla base dei dati.)


Analisi

Lasciate che i dati per le variabili esplicative essere disposti come vettori colonna -dimensionale x 1 , x 2 , ... , x p e la variabile risposta essere il vettore colonna y , considerata una realizzazione di una variabile casuale Y . I minimi quadrati ordinari stime beta dei coefficienti nel modellonX1,X2,...,XpyYβ^

E(Y)=α+Xβ

si ottengono assemblando i vettori di colonna X 0 = ( 1 , 1 , , 1 ) , X 1 , , X p in un array n × p + 1 X e risolvendo il sistema di equazioni linearip+1X0=(1,1,,1),X1,,Xpn×p+1X

XXβ^=Xy.

È equivalente al sistema

1nXXβ^=1nXy.

L'eliminazione gaussiana risolverà questo sistema. Procede adiacente alla matrice 1p+1×p+1ep+1-vettore11nXXp+1in ap+1×p+2arrayAe riduzione di riga. 1nXyp+1×p+2A

Il primo passo controllerà . Trovandolo diverso da zero, si procede alla sottrazione dei multipli appropriati della prima riga diAdalle righe rimanenti per azzerare le voci rimanenti nella prima colonna. Questi multipli saranno11n(X'X)11=1nX0'X0=1UNe il numero sottratto dalla voceAi+1,j+1=Xi Xjsarà uguale a ¯ X i ¯ X j. Questa è solo la formula per la covarianza diXIeXj. Inoltre, il numero rimasto nella posizionei+1,p+2 èuguale a11nX0'Xio=X¯ioUNio+1,j+1=Xio'XjX¯ioX¯jXioXjio+1,p+2 , la covarianza diXicony.1nXio'y-Xio¯y¯Xioy

Quindi, dopo il primo passo dell'eliminazione gaussiana, il sistema si riduce alla risoluzione

Cβ^=(Cov(Xio,y))'

e ovviamente - poiché tutti i coefficienti sono covarianze - tale soluzione può essere trovata dalla matrice di covarianza di tutte le variabili.

(Quando è invertibile, la soluzione può essere scritta C - 1 ( Cov ( X i , y ) ) . Le formule fornite nella domanda ne sono casi speciali quando p = 1 e p = 2. Scrivere esplicitamente tali formule diventano sempre più complessi man mano che cresce p . Inoltre, sono inferiori per il calcolo numerico, che viene eseguito meglio risolvendo il sistema di equazioni piuttosto che invertendo la matrice C. )CC-1(Cov(Xio,y))'p=1p=2pC

Il termine costante sarà la differenza tra la media delle ed i valori medi previsti dalle stime, X beta .yXβ^


Esempio

Per illustrare, il Rcodice seguente crea alcuni dati, calcola le loro covarianze e ottiene le stime del coefficiente dei minimi quadrati esclusivamente da tali informazioni. Li confronta con le stime ottenute dallo stimatore dei minimi quadrati lm.

#
# 1. Generate some data.
#
n <- 10        # Data set size
p <- 2         # Number of regressors
set.seed(17)
z <- matrix(rnorm(n*(p+1)), nrow=n, dimnames=list(NULL, paste0("x", 1:(p+1))))
y <- z[, p+1]
x <- z[, -(p+1), drop=FALSE]; 
#
# 2. Find the OLS coefficients from the covariances only.
#
a <- cov(x)
b <- cov(x,y)
beta.hat <- solve(a, b)[, 1]  # Coefficients from the covariance matrix
#
# 2a. Find the intercept from the means and coefficients.
#
y.bar <- mean(y)
x.bar <- colMeans(x)
intercept <- y.bar - x.bar %*% beta.hat  

L'output mostra un accordo tra i due metodi:

(rbind(`From covariances` = c(`(Intercept)`=intercept, beta.hat),
       `From data via OLS` = coef(lm(y ~ x))))
                  (Intercept)        x1        x2
From covariances     0.946155 -0.424551 -1.006675
From data via OLS    0.946155 -0.424551 -1.006675

1
Xcov(z)

7
Risposte come questa aumentano il livello di questo Cross Validated
jpmuc,

@whuber Nel tuo esempio, hai calcolato l'intercetta da ye xe beta.hat. I ye xfanno parte dei dati originali. È possibile derivare l'intercettazione dalla matrice di covarianza e significa solo? Potresti per favore fornire la notazione?
Jane Wayne,

X¯β^
X¯β^=Xβ^¯.

+1 molto utile per il codice
Michael,
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.