Regressione con più variabili dipendenti?


61

È possibile avere un'equazione di regressione (multipla) con due o più variabili dipendenti? Certo, potresti eseguire due equazioni di regressione separate, una per ciascun DV, ma non sembra che catturerebbe alcuna relazione tra i due DV?


Come in SUR o 3SLS?
Un vecchio nel mare.

Risposte:


35

Sì, è possibile. Quello che ti interessa è chiamato "regressione multipla multivariata" o semplicemente "regressione multivariata". Non so quale software stai usando, ma puoi farlo in R.

Ecco un link che fornisce esempi.

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


2
Si potrebbe aggiungere che l'adattamento delle regressioni alla separateley è in effetti equivalente alla formulazione multivariata con una matrice di variabili dipendenti. In R con pacchetto mvtnorm installato (1 °: modello multivariato, 2 °: modelli univariati separati): libreria (mvtnorm); X <- rmvnorm (100, c (1, 2), matrice (c (4, 2, 2, 3), ncol = 2)); Y <- X% *% matrice (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])
caracal

3
Se è equivalente, qual è lo scopo?
Joshua Rosenberg,

1
@JoshuaRosenberg uno dei motivi per eseguire una regressione multivariata su regressioni separate con singole variabili dipendenti è la capacità di condurre test dei coefficienti attraverso le diverse variabili di risultato. Ad esempio, è possibile eseguire un test F per vedere se un predittore ha lo stesso effetto su una variabile di risultato come su un'altra variabile di risultato.
AlexK,

10

La risposta di @ Brett va bene.

Se sei interessato a descrivere la tua struttura a due blocchi, puoi anche usare la regressione PLS . Fondamentalmente, si tratta di un quadro di regressione che si basa sull'idea di costruire combinazioni lineari (ortogonali) successive delle variabili appartenenti a ciascun blocco in modo tale che la loro covarianza sia massima. Qui consideriamo che un blocco contiene variabili esplicative e l'altro blocco Y risponde alle variabili, come mostrato di seguito:XY

testo alternativo

Cerchiamo "variabili latenti" che spiegano il massimo delle informazioni (in modo lineare) incluse nel blocco , consentendo nel contempo di prevedere il blocco Y con un errore minimo. L' u j e v j sono i carichi (cioè combinazioni lineari) associati a ciascuna dimensione. Si leggono i criteri di ottimizzazioneXYujvj

max|uh| =1,|vh| =1COV(Xh-1uh,Yvh)(maxCOV(ξh,ωh))

dove sta per il blocco sgonfiato (cioè, residualizzato) , dopo la regressione . X h thXh-1Xhesimo

La correlazione tra i punteggi fattoriali sulla prima dimensione ( e ) riflette la grandezza del collegamento -ω 1 X Yξ1ω1XY


Penso che un PLS multipleX-multipleY essenzialmente faccia un PLS multiplo "multipleX-singleY". Quindi le relazioni tra le variabili Y non sono indirizzate.
lanselibai,

4

La regressione multivariata viene eseguita in SPSS utilizzando l'opzione GLM-multivariata.

Inserisci tutti i tuoi risultati (DV) nella casella dei risultati, ma tutti i tuoi predittori continui nella casella delle covariate. Non hai bisogno di nulla nella casella dei fattori. Guarda i test multivariati. I test univariati saranno gli stessi delle regressioni multiple separate.

Come ha detto qualcun altro, puoi anche specificare questo come modello di equazione strutturale, ma i test sono gli stessi.

(È interessante notare, beh, penso che sia interessante, c'è un po 'di differenza tra Regno Unito e Stati Uniti su questo. Nel Regno Unito, la regressione multipla di solito non è considerata una tecnica multivariata, quindi la regressione multivariata è solo multivariata quando si hanno più esiti / DV. )


2
un'aggiunta alla risposta di @Jeremy Miles: www-01.ibm.com/support/docview.wss?uid=swg21476743
Epaminondas,

2

Lo farei prima trasformando le variabili di regressione in variabili calcolate da PCA, e poi farei la regressione con le variabili calcolate da PCA. Ovviamente memorizzerei gli autovettori per poter calcolare i corrispondenti valori pca quando ho una nuova istanza che voglio classificare.


2
Questo sembra concettualmente diverso dalla risposta sopra. Non sono ancora chiaro su come trasformare le mie variabili in coefficienti PCA mi permetta di regredire su 2+ variabili dipendenti?
Jeff,

@Jeff questa risposta è concettualmente simile alla regressione multivariata. Qui, il suggerimento è di fare due passi discreti in sequenza (cioè, trovare variabili composite lineari ponderate e poi regredirle); la regressione multivariata esegue i due passaggi contemporaneamente . La regressione multivariata sarà più potente, poiché i WLCV sono formati in modo da massimizzare la regressione. Tuttavia, la procedura in due fasi può fornire maggiore chiarezza in merito al processo o essere preferibile per il ricercatore.
gung - Ripristina Monica

1
@gung Hmm questo senso ha senso per me se fai PCA sulle variabili dipendenti e poi regredisci solo sul primo componente principale ... Ma poi stai ancora lanciando molta varianza.
Jeff,

1
@Jeff, i PC sono ortogonali. È possibile eseguire regressioni indipendenti su ciascuna. Tuttavia, questo è meno potente in quanto la decomposizione non è la stessa, e il test di regressione multivariata non è in realtà una serie di reg su PC.
gung - Ripristina Monica

@gung sì, puoi eseguire N regressioni indipendenti, ma poi finisci con N set di coefficienti beta. non capisco come questo risolva il problema?
Jeff,

1

Come accennato da Caracal, puoi usare il pacchetto mvtnorm in R. Supponendo che tu abbia creato un modello lm (chiamato "modello") di una delle risposte nel tuo modello e chiamato "modello", ecco come ottenere la distribuzione predittiva multivariata di diverse risposte "resp1", "resp2", "resp3" memorizzate in una matrice in forma 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) 

Ora, i quantili di ysim sono intervalli di tolleranza di aspettativa beta dalla distribuzione predittiva, puoi ovviamente usare direttamente la distribuzione campionata per fare quello che vuoi.

Per rispondere ad Andrew F., i gradi di libertà sono quindi nu = N- (M + F) +1 ... N è il numero di osservazioni, M il numero di risposte e F il numero di parametri per modello di equazione. nu deve essere positivo.

(Potresti voler leggere i miei lavori su in questo documento :-))


0

Ti sei già imbattuto nel termine "correlazione canonica"? Ci sono gruppi di variabili sia sul lato indipendente che su quello dipendente. Ma forse ci sono concetti più moderni disponibili, le descrizioni che ho sono tutte degli anni ottanta / novanta ...


1
La correlazione canonica è la correlazione tra i punteggi dei fattori calcolati da strutture a due blocchi, come con CCA o PLS. Questo è esattamente ciò che ho descritto nella mia risposta (regressione del PLS), sebbene il PLS sia più appropriato del CCA quando le variabili svolgono un ruolo asimmetrico, il che è probabilmente il caso qui. Questo perché esiste un processo di deflazione asimmetrico e invece lavoriamo con la covarianza (con CCA, sgonfiamo entrambi i blocchi contemporaneamente e cerchiamo di massimizzare la correlazione, anziché la covarianza).
chl

@chl: upps- oggi (fine gennaio) Sono tornato a questa domanda / conversazione di metà novembre .... Scusa se non ho controllato prima - c'era qualcosa con i miei corsi e poi ho dimenticato stat.exchange. .. Se ho qualcosa che vale la pena tornerò i prossimi giorni.
Gottfried Helms,

-3

Si chiama modello di equazione strutturale o modello di equazione simultanea.


3
Potrei sbagliarmi, ma non penso che sia la stessa cosa. Dai grafici SEM che ho visto, sembra che SEM utilizzi più equazioni di regressione per determinare i valori dei fattori latenti, quindi viene eseguita un'altra regressione sul valore di quei fattori latenti per determinare un fattore di ordine superiore. Forse è sbagliato, ma non ho mai visto un grafico SEM che collega diversi IV a più DV: tutto è gerarchico.
Jeff,

Figura 8 in questo documento: biomedcentral.com/1471-2288/3/27 Puoi farlo, ma ha poco senso. È lo stesso di MANOVA.
Jeremy Miles,
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.