Gibt es eine Möglichkeit, die Kovarianzmatrix zu verwenden, um Koeffizienten für die multiple Regression zu finden?

23

Für eine einfache lineare Regression kann der Regressionskoeffizient direkt aus der Varianz-Kovarianz-Matrix berechnet werden , und zwar durch wobei der Index der abhängigen Variablen und der Index der erklärenden Variablen ist.C d , eC de

Cd,eCe,e
de

Wenn man nur die Kovarianzmatrix hat, ist es möglich, die Koeffizienten für ein Modell mit mehreren erklärenden Variablen zu berechnen?

ETA: Für zwei erklärende Variablen scheint es, dass und analog für . Ich sehe nicht sofort, wie man dies auf drei oder mehr Variablen erweitert. β2

β1=Cov(y,x1)var(x2)Cov(y,x2)Cov(x1,x2)var(x1)var(x2)Cov(x1,x2)2
β2
David
quelle
3
Der Koeffizientenvektor ist die Lösung für X'Y = (X'X) ^ {- 1} \ beta . Einige algebraische Manipulationen zeigen, dass dies tatsächlich die gleiche Formel ist, die Sie im 2-Koeffizienten-Fall angeben. Schön hier angelegt: stat.purdue.edu/~jennings/stat514/stat512notes/topic3.pdf . Ich bin mir nicht sicher, ob das überhaupt hilft. Aber ich wage zu vermuten, dass dies aufgrund dieser Formel im Allgemeinen unmöglich ist. X'Y=(X'X)-1ββ^XY=(XX)1β
Shadowtalker
1
@ David Haben Sie herausgefunden, wie Sie dies auf eine beliebige Anzahl von erklärenden Variablen ausweiten können (über 2 hinaus)? Ich brauche den Ausdruck.
Jane Wayne
1
@ JaneWayne Ich bin mir nicht sicher, ob ich Ihre Frage verstehe: whuber gab die folgende Lösung in Matrixform an: C1(Cov(Xi,y))
David
1
Ja, ich habe es studiert und er hat Recht.
Jane Wayne

Antworten:

36

Ja, die Kovarianzmatrix aller Variablen - erklärend und antwortend - enthält die Informationen, die zum Auffinden aller Koeffizienten erforderlich sind, vorausgesetzt, das Modell enthält einen (konstanten) Intercept-Term. (Obwohl die Kovarianzen keine Informationen über den konstanten Term liefern, können sie den Daten entnommen werden.)


Analyse

Die Daten für die erklärenden Variablen seien als dimensionale Spaltenvektoren und die Antwortvariable als Spaltenvektor , was als Realisierung einer Zufallsvariablen . Das gewöhnliche kleinste Quadrat schätzt der Koeffizienten im Modellx 1 , x 2 , ... , x p y Y βnx1,x2,,xpyYβ^

E(Y)=α+Xβ

werden erhalten, indem die Spaltenvektoren zu einem Array und das System linearer Gleichungen gelöst werdenX 0 = ( 1 , 1 , , 1 ) ' , X 1 , , X p n × p + 1 Xp+1X0=(1,1,,1),X1,,Xpn×p+1X

XXβ^=Xy.

Es entspricht dem System

1nXXβ^=1nXy.

Die Gaußsche Eliminierung löst dieses System. Es wird fortgefahren, indem die Matrix und der -Vektor zu einem Array und zeilenreduzierend. 1p+1×p+1p+111nXXp+1p+1×p+2A1nXyp+1×p+2A

Im ersten Schritt wird . Wenn festgestellt wird, dass dies ungleich Null ist, subtrahiert es geeignete Vielfache der ersten Zeile von von den verbleibenden Zeilen, um die verbleibenden Einträge in seiner ersten Spalte auf Null zu setzen. Diese Vielfachen sind und die vom Eintrag subtrahierte Zahl ist gleich . Dies ist nur die Formel für die Kovarianz von und . Darüber hinaus ist die an der Position verbleibende Zahl gleichA11n(XX)11=1nX0X0=1AAi+1,j+1=X ' i Xj ¯ X i ¯ X jXiXji1nX0Xi=X¯iAi+1,j+1=XiXjX¯ichX¯jXichXj1ich+1,p+21nXichy-Xich¯y¯, die Kovarianz von mit . yXichy

Somit wird das System nach dem ersten Schritt der Gaußschen Eliminierung auf das Lösen reduziert

Cβ^=(Cov(Xich,y))

und offensichtlich - da alle Koeffizienten Kovarianzen sind - kann diese Lösung aus der Kovarianzmatrix aller Variablen gefunden werden.

(Wenn invertierbar ist, kann die Lösung geschrieben werden: . Die in der Frage angegebenen Formeln sind Spezialfälle davon, wenn und explizite Schreiben solcher Formeln wird mit wachsendem immer komplexer . Außerdem sind sie für die numerische Berechnung unterlegen, die am besten durch Lösen des Gleichungssystems und nicht durch Invertieren der Matrix .)C - 1 ( Cov ( X i , y ) ) ' p = 1 p = 2 p CCC-1(Cov(Xich,y))p=1p=2pC

Der konstante Term ist die Differenz zwischen dem Mittelwert von und den aus den Schätzungen vorhergesagten Mittelwerten .X βyXβ^


Beispiel

Zur Veranschaulichung werden im folgenden RCode einige Daten erstellt, deren Kovarianzen berechnet und die Koeffizientenschätzungen für die kleinsten Quadrate nur anhand dieser Informationen ermittelt. Sie werden mit den Schätzungen verglichen, die vom Schätzer der kleinsten Quadrate erhalten wurden 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  

Die Ausgabe zeigt Übereinstimmung zwischen den beiden Methoden:

(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
whuber
quelle
1
Danke, @whuber! Genau das habe ich gesucht, und mein atrophiertes Gehirn konnte nicht dazu kommen. Abgesehen davon ist die Motivation für die Frage, dass wir aus verschiedenen Gründen im Wesentlichen nicht das volle Verfügung haben, sondern aus früheren Berechnungen. Xcov(z)
David
7
Antworten wie diese
legen
@whuber In Ihrem Beispiel haben Sie den Achsenabschnitt von yund xund berechnet beta.hat. Die yund xsind Teil der Originaldaten. Ist es möglich, den Achsenabschnitt allein aus der Kovarianzmatrix und den Mitteln abzuleiten? Könnten Sie bitte die Notation angeben?
Jane Wayne
@ Jane Wende auf sie an, wenn nur die Mittel sind : Ich habe den Code geändert, um dies widerzuspiegeln. β ¯ X β = ¯ X β .X¯β^
X¯β^=Xβ^¯.
whuber
sehr hilfreich +1 für den Code
Michael