Regresja z wieloma zmiennymi zależnymi?

61

Czy możliwe jest równanie regresji (wielokrotnej) z dwiema lub więcej zmiennymi zależnymi? Jasne, możesz uruchomić dwa oddzielne równania regresji, po jednym dla każdego DV, ale to nie wydaje się, że uchwyciłoby to jakąkolwiek zależność między dwoma DV?

Jeff
źródło
Jak w SUR czy 3SLS?
Stary człowiek na morzu.

Odpowiedzi:

35

Tak to mozliwe. To, co Cię interesuje, nazywa się „Regresja wielowymiarowa wielokrotna” lub po prostu „Regresja wielowymiarowa”. Nie wiem, jakiego oprogramowania używasz, ale możesz to zrobić w R.

Oto link, który zawiera przykłady.

http://www.public.iastate.edu/~maitra/stat501/lectures/MultivariateRegression.pdf

Brett
źródło
2
Można dodać, że dopasowanie separacji regresji jest rzeczywiście równoważne sformułowaniu wielowymiarowemu z macierzą zmiennych zależnych. W R z zainstalowanym pakietem mvtnorm (1.: model wielowymiarowy, 2.: oddzielne modele jednoczynnikowe): biblioteka (mvtnorm); X <- rmvnorm (100, c (1, 2), macierz (c (4, 2, 2, 3), ncol = 2)); Y <- X% *% matryca (1: 4, ncol = 2) + rmvnorm (100, c (0, 0), diag (c (20, 30))); lm (Y ~ X [, 1] + X [, 2]); lm (Y [, 1] ~ X [, 1] + X [, 2]); lm (Y [, 2] ~ X [, 1] + X [, 2])
karakal
3
Jeśli jest równoważny, jaki jest cel?
Joshua Rosenberg
1
@JoshuaRosenberg Jednym z powodów prowadzenia regresji wielowymiarowej dla oddzielnych regresji z pojedynczymi zmiennymi zależnymi jest zdolność do przeprowadzania testów współczynników dla różnych zmiennych wynikowych. Na przykład możesz wykonać test F, aby sprawdzić, czy predyktor ma taki sam wpływ na jedną zmienną wyniku, jak na inną zmienną wyniku.
AlexK
10

Odpowiedź Bretta jest w porządku.

XY

alternatywny tekst

XYujvj

maxuh∣=1,vh∣=1cov(Xh1uh,Yvh)(maxcov(ξh,ωh))

gdzie oznacza deflowany (tj. resualizowany) blok , po regresji . X H thXh1Xhth

Korelacja między wynikami czynnikowymi w pierwszym wymiarze ( i ) odzwierciedla wielkość łącza - .ω 1 X Yξ1ω1XY

chl
źródło
Myślę, że PLS wielokrotnyX-wielokrotny Y zasadniczo wykonuje wielokrotny PLS „wieleX-wielokrotnyY”. Zatem relacje między zmiennymi Y nie są uwzględniane.
lanselibai
4

Regresja wielowymiarowa odbywa się w SPSS przy użyciu opcji wielowymiarowej GLM.

Umieść wszystkie swoje wyniki (DV) w polu wyników, ale wszystkie ciągłe predyktory w polu zmiennych towarzyszących. Nie potrzebujesz niczego w polu czynników. Spójrz na testy na wielu odmianach. Testy jednowymiarowe będą takie same jak oddzielne wielokrotne regresje.

Jak ktoś inny powiedział, możesz również określić to jako model równania strukturalnego, ale testy są takie same.

(Co ciekawe, myślę, że to interesujące, jest w tym trochę różnicy między Wielką Brytanią a Stanami Zjednoczonymi. W Wielkiej Brytanii regresja wielokrotna zwykle nie jest uważana za technikę wielowymiarową, dlatego regresja wielowymiarowa jest wielowymiarowa tylko wtedy, gdy masz wiele wyników / DV. )

Jeremy Miles
źródło
2
dodatek na @Jeremy Miles odpowiedź: www-01.ibm.com/support/docview.wss?uid=swg21476743
Epaminondas
2

Zrobiłbym to, najpierw przekształcając zmienne regresji w zmienne obliczone PCA, a następnie w regresję ze zmiennymi obliczonymi PCA. Oczywiście zapisałbym wektory własne, aby móc obliczyć odpowiednie wartości pca, gdy mam nową instancję, którą chcę sklasyfikować.

mariana bardziej miękka
źródło
2
Wydaje się to koncepcyjnie różne od powyższej odpowiedzi. Nadal nie jestem pewien, w jaki sposób przekształcenie moich zmiennych na współczynniki PCA pozwala mi na regresję na zmiennych zależnych od 2+?
Jeff
@Jeff ta odpowiedź jest faktycznie koncepcyjnie podobna do regresji wielowymiarowej. W tym przypadku sugeruje się wykonanie dwóch dyskretnych kroków w sekwencji (tj. Znalezienie ważonych liniowych zmiennych zespolonych, a następnie ich zresetowanie); regresja wielowymiarowa wykonuje dwa kroki jednocześnie . Regresja wielowymiarowa będzie silniejsza, ponieważ WLCV są tworzone tak, aby zmaksymalizować regresję. Jednak dwuetapowa procedura może zapewnić większą przejrzystość procesu lub być w inny sposób preferowana przez badacza.
gung - Przywróć Monikę
1
@gung Hmm, ten rodzaj sensu ma dla mnie sens, jeśli robisz PCA na zmiennych zależnych, a następnie regresujesz tylko na pierwszym głównym składniku ... Ale nadal rzucasz dużo wariancji.
Jeff
1
@Jeff, komputery PC są ortogonalne. Możesz uruchomić niezależne regresje dla każdego z nich. Jest to jednak mniej wydajne b / c dekompozycja nie jest taka sama, a test regresji wielowymiarowej nie jest tak naprawdę serią regów na komputerach PC.
gung - Przywróć Monikę
@gung tak, możesz uruchomić N niezależnych regresji, ale wtedy skończysz z N zestawami współczynników beta. nie rozumiem, jak to rozwiązuje problem?
Jeff
1

Jak wspomniano w Caracal, możesz użyć pakietu mvtnorm w R. Zakładając, że stworzyłeś model lm (o nazwie „model”) jednej z odpowiedzi w twoim modelu i nazwałeś go „modelem”, oto jak uzyskać wielowymiarowy rozkład predykcyjny kilku odpowiedzi „resp1”, „resp2”, „resp3” zapisanych w postaci macierzy Y:

library(mvtnorm)
model = lm(resp1~1+x+x1+x2,datas) #this is only a fake model to get
                                  #the X matrix out of it
Y = as.matrix(datas[,c("resp1","resp2","resp3")])
X =  model.matrix(delete.response(terms(model)), 
           data, model$contrasts)
XprimeX  = t(X) %*% X
XprimeXinv = solve(xprimex)
hatB =  xprimexinv %*% t(X) %*% Y
A = t(Y - X%*%hatB)%*% (Y-X%*%hatB)
F = ncol(X)
M = ncol(Y)
N = nrow(Y)
nu= N-(M+F)+1 #nu must be positive
C_1 =  c(1  + x0 %*% xprimexinv %*% t(x0)) #for a prediction of the factor setting x0 (a vector of size F=ncol(X))
varY = A/(nu) 
postmean = x0 %*% hatB
nsim = 2000
ysim = rmvt(n=nsim,delta=postmux0,C_1*varY,df=nu) 

Teraz kwantyle ysim są przedziałami tolerancji oczekiwań beta od rozkładu predykcyjnego, możesz oczywiście bezpośrednio użyć rozkładu próbkowanego, aby zrobić co chcesz.

Aby odpowiedzieć Andrew F., stopnie swobody są zatem nu = N- (M + F) +1 ... N jest liczbą obserwacji, M liczbą odpowiedzi i F liczbą parametrów na model równania. nu musi być pozytywne.

(Możesz przeczytać moją pracę w tym dokumencie :-))

Pierre Lebrun
źródło
0

Czy natrafiłeś już na termin „korelacja kanoniczna”? Tam masz zestawy zmiennych po stronie niezależnej, jak i zależnej. Ale może są dostępne bardziej nowoczesne koncepcje, opisy, które mam, to lata osiemdziesiąte / dziewięćdziesiąte ...

Gottfried Helms
źródło
1
Korelacja kanoniczna to korelacja między wynikami czynników obliczonymi ze struktur dwublokowych, jak w przypadku CCA lub PLS. Dokładnie to opisałem w mojej odpowiedzi (regresja PLS), chociaż PLS jest bardziej odpowiednie niż CCA, gdy zmienne odgrywają asymetryczną rolę, co prawdopodobnie ma miejsce w tym przypadku. Wynika to z faktu, że istnieje asymetryczny proces deflacji i zamiast tego pracujemy z kowariancją (w przypadku CCA deflujemy oba bloki jednocześnie i staramy się maksymalizować korelację zamiast kowariancji).
chl
@chl: upps- dzisiaj (koniec stycznia) Wróciłem do tego pytania / rozmowy z połowy listopada .... Przepraszam, nie sprawdziłem wcześniej - coś było z moimi kursami, a potem zapomniałem statystyki. .. Jeśli mam coś wartego, wrócę za kilka dni.
Gottfried Helms
-3

Nazywa się to modelem równań strukturalnych lub modelem równań równoczesnych.

Shige
źródło
3
Mogę się mylić, ale nie sądzę, że to jest to samo. Z wykresów SEM, które widziałem, wygląda na to, że SEM używa wielu równań regresji w celu ustalenia wartości czynników ukrytych, a następnie uruchamiana jest kolejna regresja na podstawie wartości tych ukrytych czynników w celu ustalenia współczynnika wyższego rzędu. Może to źle, ale nigdy nie widziałem wykresu SEM, który łączy kilka IV do wielu DV - wszystko jest hierarchiczne.
Jeff
Rycina 8 w tym dokumencie: biomedcentral.com/1471-2288/3/27 Możesz to zrobić, ale nie ma to większego sensu. Jest taki sam jak MANOVA.
Jeremy Miles,