Regression mit mehreren abhängigen Variablen?


61

Ist es möglich, eine (multiple) Regressionsgleichung mit zwei oder mehr abhängigen Variablen zu haben? Sicher, Sie könnten zwei separate Regressionsgleichungen ausführen, eine für jeden DV, aber das scheint keine Beziehung zwischen den beiden DVs zu erfassen?


Wie in SUR oder 3SLS?
Ein alter Mann im Meer.

Antworten:


35

Ja, es ist möglich. Was Sie interessiert, ist "Multivariate Multiple Regression" oder einfach "Multivariate Regression". Ich weiß nicht, welche Software Sie verwenden, aber Sie können dies in R tun.

Hier ist ein Link mit Beispielen.

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


2
Man könnte hinzufügen, dass das separate Anpassen der Regressionen in der Tat der multivariaten Formulierung mit einer Matrix abhängiger Variablen entspricht. In R mit installiertem Paket mvtnorm (1. multivariates Modell, 2. separate univariate Modelle): library (mvtnorm); X <-rmvnorm (100, c (1, 2), Matrix (c (4, 2, 2, 3), ncol = 2)); Y <- X% *% Matrix (1: 4, ncol = 2) + rmvnorm (100, c (0, 0), diag (c (20, 30)); 1m (Y ~ X [, 1] + X [, 2]); 1m (Y [, 1] ~ X [, 1] + X [, 2]); lm (Y [, 2] ~ X [, 1] + X [, 2])
caracal

3
Wenn es äquivalent ist, was ist der Zweck?
Joshua Rosenberg

1
@JoshuaRosenberg Ein Grund für die Ausführung einer multivariaten Regression über separate Regressionen mit einzelnen abhängigen Variablen ist die Möglichkeit, Koeffiziententests für die verschiedenen Ergebnisvariablen durchzuführen. Beispielsweise können Sie einen F-Test durchführen, um festzustellen, ob ein Prädiktor auf eine Ergebnisvariable dieselbe Auswirkung hat wie auf eine andere Ergebnisvariable.
AlexK

10

@ Bretts Antwort ist in Ordnung.

Wenn Sie Ihre Zwei-Block-Struktur beschreiben möchten, können Sie auch die PLS-Regression verwenden . Grundsätzlich handelt es sich um ein Regressionsgerüst, das auf der Idee beruht, aufeinanderfolgende (orthogonale) Linearkombinationen der zu jedem Block gehörenden Variablen so zu erstellen, dass ihre Kovarianz maximal ist. Hier betrachten wir, dass ein Block erklärende Variablen und der andere Block Antwortvariablen enthält, wie unten gezeigt:XY

Alt-Text

Wir suchen nach "latenten Variablen", die (linear) ein Maximum an Informationen im Block ausmachen und gleichzeitig die Vorhersage des Blocks mit minimalem Fehler ermöglichen. Die und sind die Belastungen (dh lineare Kombinationen) zu jeder Dimension assoziiert. Das Optimierungskriterium lautetXYujvj

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

wo steht für die entleerten (dh residualized) - Block nach der Regression.Xh1Xhth

Die Korrelation zwischen faktoriellen Die Bewertung basiert auf der ersten Dimension ( und ) spiegelt die Größe der - - Link.ξ1ω1XY


Ich denke, ein multipleX-multipleY-PLS macht im Wesentlichen einen multiplen "multipleX-singleY" -PLS. Die Beziehungen zwischen Y-Variablen werden also nicht angesprochen.
Lanselibai

4

Die multivariate Regression wird in SPSS mit der Option GLM-multivariate durchgeführt.

Geben Sie alle Ihre Ergebnisse (DVs) in die Ergebnisbox ein, aber alle Ihre kontinuierlichen Prädiktoren in die Kovariatenbox. Sie brauchen nichts in der Faktorenbox. Schauen Sie sich die multivariaten Tests an. Die univariaten Tests entsprechen getrennten Mehrfachregressionen.

Wie schon jemand gesagt hat, können Sie dies auch als Strukturgleichungsmodell angeben, aber die Tests sind die gleichen.

(Interessanterweise finde ich es interessant, dass es einen kleinen Unterschied zwischen Großbritannien und den USA gibt. In Großbritannien wird die multiple Regression normalerweise nicht als multivariate Technik betrachtet, daher ist die multivariate Regression nur dann multivariat, wenn Sie mehrere Ergebnisse / DVs haben.) )


2
Eine Ergänzung bei @ Jeremy Miles Antwort: www-01.ibm.com/support/docview.wss?uid=swg21476743
Epaminondas

2

Ich würde dies tun, indem ich zuerst die Regressionsvariablen in PCA-berechnete Variablen umwandle und dann die Regression mit den PCA-berechneten Variablen. Natürlich würde ich die Eigenvektoren speichern, um die entsprechenden pca-Werte berechnen zu können, wenn ich eine neue Instanz habe, die ich klassifizieren möchte.


2
Dies scheint konzeptionell anders zu sein als die Antwort oben. Ich bin mir immer noch nicht sicher, wie die Umwandlung meiner Variablen in PCA-Koeffizienten es mir ermöglicht, auf 2+ abhängige Variablen zurückzugreifen.
Jeff

@ Jeff diese Antwort ist tatsächlich konzeptionell ähnlich wie die multivariate Regression. Hier besteht der Vorschlag darin, zwei diskrete Schritte nacheinander auszuführen (dh gewichtete lineare zusammengesetzte Variablen zu finden und sie dann zu regressieren); Die multivariate Regression führt die beiden Schritte gleichzeitig aus . Multivariate Regression wird stärker sein, da die WLCVs gebildet werden, um die Regression zu maximieren. Das zweistufige Verfahren kann jedoch mehr Klarheit in Bezug auf den Prozess bieten oder für den Forscher auf andere Weise vorzuziehen sein.
gung - Reinstate Monica

1
@gung Hmm diese Art von macht für mich Sinn, wenn Sie PCA für die abhängigen Variablen durchführen und dann nur die erste Hauptkomponente regressieren ... Aber dann werfen Sie immer noch eine Menge Varianz aus.
Jeff

1
@ Jeff, die PCs sind orthogonal. Sie können für jede Komponente unabhängige Regressionen ausführen. Dies ist jedoch weniger leistungsfähig, da die Zerlegung nicht ganz gleich ist und der multivariate Regressionstest nicht wirklich eine Reihe von Regs auf den PCs ist.
gung - Reinstate Monica

@gung ja, Sie können N unabhängige Regressionen ausführen, aber dann erhalten Sie N Sätze von Beta-Koeffizienten. ich verstehe nicht, wie das das problem löst?
Jeff

1

Wie von Karakal erwähnt, können Sie mvtnorm Paket in R. verwenden Angenommen , Sie ein lm Modell gemacht ( mit dem Namen „Modell“) von einem der Antwort in Ihrem Modell, und nannten es „Modell“, ist hier, wie die multivariate prädiktive Verteilung zu erhalten von mehreren Antworten "resp1", "resp2", "resp3", die in einer Matrixform Y gespeichert sind:

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) 

Jetzt sind Quantile von ysim Beta-Erwartungstoleranzintervalle aus der prädiktiven Verteilung. Sie können die abgetastete Verteilung natürlich direkt verwenden, um zu tun, was Sie wollen.

Um Andrew F. zu antworten, sind Freiheitsgrade daher nu = N- (M + F) +1 ... N ist die Anzahl der Beobachtungen, M die Anzahl der Antworten und F die Anzahl der Parameter pro Gleichungsmodell. nu muss positiv sein.

(Vielleicht möchten Sie meine Arbeit in diesem Dokument lesen :-))


0

Ist Ihnen bereits der Begriff "kanonische Korrelation" begegnet? Dort gibt es sowohl unabhängige als auch abhängige Variablensätze. Aber vielleicht gibt es modernere Konzepte, die Beschreibungen, die ich habe, stammen aus den achtziger / neunziger Jahren ...


1
Die kanonische Korrelation ist die Korrelation zwischen Faktorbewertungen, die aus Zwei-Block-Strukturen wie bei CCA oder PLS berechnet wurden. Dies ist genau das, was ich in meiner Antwort (PLS-Regression) beschrieben habe, obwohl PLS geeigneter ist als CCA, wenn die Variablen eine asymmetrische Rolle spielen, was hier wahrscheinlich der Fall ist. Dies liegt daran, dass es einen asymmetrischen Deflationsprozess gibt und stattdessen mit der Kovarianz gearbeitet wird (bei CCA werden beide Blöcke gleichzeitig deflatiert und es wird versucht, die Korrelation anstelle der Kovarianz zu maximieren).
Chl

@chl: upps- heute (ende januar) bin ich auf diese frage / gespräch von mitte november zurückgekommen .... sorry ich habe nicht vorher nachgesehen - da war was mit meinen kursen und dann habe ich den stat.exchange vergessen. ..Wenn ich etwas wert bin, komme ich nächste Tage wieder.
Gottfried Helms

-3

Es wird als Strukturgleichungsmodell oder Simultangleichungsmodell bezeichnet.


3
Ich könnte mich irren, aber ich denke nicht, dass dies dasselbe ist. Aus den SEM-Diagrammen, die ich gesehen habe, geht hervor, dass SEM mehrere Regressionsgleichungen verwendet, um die Werte der latenten Faktoren zu bestimmen. Anschließend wird eine weitere Regression auf den Wert dieser latenten Faktoren durchgeführt, um einen Faktor höherer Ordnung zu bestimmen. Vielleicht ist das falsch, aber ich habe noch nie ein SEM-Diagramm gesehen, das mehrere IVs mit mehreren DVs verknüpft - alles ist hierarchisch.
Jeff

Abbildung 8 in diesem Artikel : biomedcentral.com/1471-2288/3/27 Sie können es tun, aber es macht wenig Sinn. Es ist das gleiche wie bei MANOVA.
Jeremy Miles
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.