Czy istnieje sposób wykorzystania macierzy kowariancji do znalezienia współczynników regresji wielokrotnej?


23

W przypadku prostej regresji liniowej współczynnik regresji oblicza się bezpośrednio z macierzy wariancji-kowariancji , o gdzie jest indeksem zmiennej zależnej, a e jest indeksem zmiennej objaśniającej.C d , eC de

Cd,eCe,e
de

Jeśli ktoś ma tylko macierz kowariancji, czy można obliczyć współczynniki dla modelu z wieloma zmiennymi objaśniającymi?

ETA: W przypadku dwóch zmiennych objaśniających wydaje się, że

β1=Cov(y,x1)var(x2)Cov(y,x2)Cov(x1,x2)var(x1)var(x2)Cov(x1,x2)2
i analogicznie dla β2 . Nie od razu widzę, jak rozszerzyć to na trzy lub więcej zmiennych.

3
Wektor współczynnika jest rozwiązaniem dla . Niektóre manipulacje algebraiczne ujawniają, że w rzeczywistości jest to to samo, co wzór podany w przypadku 2-współczynnika. Ładnie wyłożono tutaj: stat.purdue.edu/~jennings/stat514/stat512notes/topic3.pdf . Nie jestem pewien, czy to w ogóle pomaga. Ale zaryzykuję zgadnięcie, że na podstawie tej formuły jest to w ogóle niemożliwe. X'Y=(X'X)-1ββ^XY=(XX)1β
shadowtalker

1
@David Czy wymyśliłeś, jak rozszerzyć to na dowolną liczbę zmiennych objaśniających (poza 2)? Potrzebuję wyrazu.
Jane Wayne

1
@JaneWayne Nie jestem pewien, czy rozumiem twoje pytanie: whuber podał poniższe rozwiązanie w formie macierzy,C1(Cov(Xi,y))
David

1
tak, przestudiowałem to i ma rację.
Jane Wayne

Odpowiedzi:


36

Tak, macierz kowariancji wszystkich zmiennych - objaśniająca i odpowiedź - zawiera informacje potrzebne do znalezienia wszystkich współczynników, pod warunkiem, że model przechwytujący (stały) jest uwzględniony w modelu. (Chociaż kowariancje nie podają żadnych informacji na temat stałego terminu, można je znaleźć na podstawie danych).


Analiza

Niech dane dotyczące zmiennych objaśniających być rozmieszczone w -wymiarowych wektory kolumnowe i zmiennej odpowiedzi być kolumna wektor , uważany za wykonanie zmiennej losowej . Zwykłe oszacowania metodą najmniejszych kwadratów współczynników w modelunx1,x2,,xpyYβ^

E(Y)=α+Xβ

są otrzymywane przez złożenie wektorów kolumnowych X 0 = ( 1 , 1 , , 1 ) , X 1 , , X p w macierz n × p + 1 X i rozwiązanie układu równań liniowychp+1X0=(1,1,,1),X1,,Xpn×p+1X

XXβ^=Xy.

Jest to odpowiednik systemu

1nXXβ^=1nXy.

Eliminacja gaussowska rozwiąże ten system. Prowadzi się ją przylegającą do matrycę 1p+1×p+1is+1-vector11nXXp+1dotablicyp+1×p+2Ai zmniejszając ją. 1nXyp+1×p+2A

Pierwszym krokiem będzie sprawdzenie . Stwierdzając, że jest to niezerowe, przechodzi do odejmowania odpowiednich wielokrotności pierwszego wierszaAod pozostałych wierszy, aby wyzerować pozostałe wpisy w pierwszej kolumnie. Te wielokrotności będą wynosić11n(XX)11=1nX0X0=1Aoraz liczba odjęta od wpisuAi+1,j+1=Xi Xjbędzie równa ¯ X i ¯ X j. Jest to po prostu wzór na kowariancjiXíiXj. Ponadto liczba pozostała wpozycjachi+1,p+2wynosi11nX0Xi=X¯iAi+1,j+1=XiXjX¯iX¯jXiXji+1,p+2 , kowariancjaXIzy.1nXiyXi¯y¯Xiy

Zatem po pierwszym etapie eliminacji Gaussa układ sprowadza się do rozwiązania

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

i oczywiście - ponieważ wszystkie współczynniki są kowariancjami - to rozwiązanie można znaleźć na podstawie macierzy kowariancji wszystkich zmiennych.

(Gdy jest odwracalna roztwór może być napisany C - 1 ( Cov ( X ı , y ) ) " . Formuły zawarte w kwestii szczególne przypadki to, gdy p = 1 , a p = 2 wypisywanie takich preparatów wyraźnie będzie. stają się coraz bardziej złożone w miarę wzrostu p . Co więcej, są gorsze w obliczeniach numerycznych, co najlepiej przeprowadzić przez rozwiązanie układu równań niż przez odwrócenie macierzy C. )CC1(Cov(Xi,y))p=1p=2pC

Stała termin będzie różnica pomiędzy średnią z i średnie wartości przewidywanych z szacunków, X p .yXβ^


Przykład

Aby to zilustrować, poniższy Rkod tworzy niektóre dane, oblicza ich kowariancje i uzyskuje oszacowania współczynnika najmniejszych kwadratów wyłącznie na podstawie tych informacji. Porównuje je z oszacowaniami uzyskanymi z estymatora najmniejszych kwadratów 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  

Dane wyjściowe pokazują zgodność między dwiema metodami:

(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
Odpowiedzi takie jak ta podnoszą poprzeczkę tego
sprawdzonego krzyżowo

@whuber W swojej przykład, obliczany punkt przecięcia z yi xa beta.hat. yI xnależą do oryginalnych danych. Czy możliwe jest wyprowadzenie przecięcia z macierzy kowariancji i samych środków? Czy możesz podać notację?
Jane Wayne

X¯β^ to them:
X¯β^=Xβ^¯.
I have changed the code to reflect this.
whuber

very helpful +1 for the code
Michael
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.