Regressão com múltiplas variáveis ​​dependentes?

61

É possível ter uma equação de regressão (múltipla) com duas ou mais variáveis ​​dependentes? Claro, você pode executar duas equações de regressão separadas, uma para cada DV, mas isso não parece capturar qualquer relação entre os dois DVs?

Jeff
fonte
Como no SUR ou 3SLS?
Um velho no mar.

Respostas:

35

Sim, é possível. O que você está interessado é chamado "Regressão múltipla multivariada" ou apenas "Regressão multivariada". Não sei qual software você está usando, mas você pode fazer isso em R.

Aqui está um link que fornece exemplos.

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

Brett
fonte
2
Pode-se acrescentar que ajustar as regressões separadas é realmente equivalente à formulação multivariada com uma matriz de variáveis ​​dependentes. Em R com o pacote mvtnorm instalado (1º: modelo multivariado, 2º: modelos univariados separados): library (mvtnorm); X <- rmvnorm (100, c (1, 2), matriz (c (4, 2, 2, 3), ncol = 2)); Matriz Y <- X% *% (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 é o propósito?
Joshua Rosenberg
1
@JoshuaRosenberg uma razão para executar uma regressão multivariada em regressões separadas com variáveis ​​dependentes únicas é a capacidade de realizar testes dos coeficientes nas diferentes variáveis ​​de resultado. Por exemplo, você pode executar um teste F para verificar se um preditor tem o mesmo efeito em uma variável de resultado e em outra variável de resultado.
AlexK
10

A resposta de @ Brett está bem.

Se você estiver interessado em descrever sua estrutura de dois blocos, também poderá usar a regressão PLS . Basicamente, é uma estrutura de regressão que se baseia na ideia de construir sucessivas combinações lineares (ortogonais) das variáveis ​​pertencentes a cada bloco, de modo que sua covariância seja máxima. Aqui, consideramos que um bloco contém variáveis ​​explicativas e o outro bloco Y responde variáveis, como mostrado abaixo:XY

texto alternativo

Procuramos "variáveis ​​latentes" que sejam responsáveis ​​por um máximo de informações (de maneira linear) incluídas no bloco , permitindo prever o bloco Y com um erro mínimo. O u j e v j são as cargas (isto é, combinações lineares) associados a cada dimensão. O critério de otimização lêXYujvj

maxvocêh∣ =1,vh∣ =1cov(Xh-1vocêh,Yvh)(maxcov(ξh,ωh))

onde representa o bloco desinflado (isto é, residualizado) , após a regressão . X h thXh-1Xhº

A correlação entre as pontuações fatoriais na primeira dimensão ( e ) reflete a magnitude do link -ω 1 X Yξ1ω1XY

chl
fonte
Eu acho que um multipleX-multipleY PLS essencialmente faz um múltiplo "multipleX-singleY" PLS. Portanto, as relações entre as variáveis ​​Y não são abordadas.
Lanselibai
4

A regressão multivariada é feita no SPSS usando a opção multivariada GLM.

Coloque todos os seus resultados (DVs) na caixa de resultados, mas todos os seus preditores contínuos na caixa de covariáveis. Você não precisa de nada na caixa de fatores. Veja os testes multivariados. Os testes univariados serão os mesmos que as regressões múltiplas separadas.

Como alguém disse, você também pode especificar isso como um modelo de equação estrutural, mas os testes são os mesmos.

(Curiosamente, bem, acho que é interessante, há um pouco de diferença entre o Reino Unido e os EUA. No Reino Unido, a regressão múltipla geralmente não é considerada uma técnica multivariada, portanto, a regressão multivariada só é multivariada quando você tem vários resultados / DVs. )

Jeremy Miles
fonte
2
uma adição na resposta de Jeremy Miles: www-01-01.ibm.com/support/docview.wss?uid=swg21476743
Epaminondas
2

Eu faria isso transformando primeiro as variáveis ​​de regressão em variáveis ​​calculadas pelo PCA e, em seguida, faria a regressão com as variáveis ​​calculadas pelo PCA. É claro que eu armazenaria os vetores próprios para poder calcular os valores correspondentes de pca quando tiver uma nova instância que queira classificar.

mariana soffer
fonte
2
Isso parece conceitualmente diferente da resposta acima. Ainda não estou claro como a transformação de minhas variáveis ​​em coeficientes de PCA me permite regressar em mais de 2 variáveis ​​dependentes?
111110 Jeff
@ Jeff, esta resposta é realmente conceitualmente semelhante à regressão multivariada. Aqui, a sugestão é executar duas etapas discretas em sequência (ou seja, encontre variáveis ​​compostas lineares ponderadas e depois regrote-as); a regressão multivariada executa as duas etapas simultaneamente . A regressão multivariada será mais poderosa, pois os WLCVs são formados para maximizar a regressão. No entanto, o procedimento em duas etapas pode fornecer mais clareza em relação ao processo ou, de outra forma, ser preferível ao pesquisador.
gung - Restabelece Monica
1
@gung Hmm isso faz sentido para mim se você faz PCA nas variáveis ​​dependentes e depois regride apenas no primeiro componente principal ... Mas então você ainda está jogando muita variação.
Jeff
1
@ Jeff, os PCs são ortogonais. Você pode executar regressões independentes em cada uma. No entanto, isso é menos poderoso porque a decomposição não é a mesma e o teste de regressão multivariada não é realmente uma série de registros nos PCs.
gung - Restabelece Monica
@gung sim, você pode executar N regressões independentes, mas depois acaba com N conjuntos de coeficientes beta. Eu não entendo como isso resolve o problema?
Jeff Jeff
1

Como mencionado por caracal, você pode usar o pacote mvtnorm em R. Supondo que você tenha criado um modelo lm (chamado "modelo") de uma das respostas em seu modelo e chamado de "modelo", aqui está como obter a distribuição preditiva multivariada de várias respostas "resp1", "resp2", "resp3" armazenadas em uma matriz 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) 

Agora, quantis de ysim são intervalos de tolerância de expectativa beta da distribuição preditiva, é claro que você pode usar diretamente a distribuição amostrada para fazer o que quiser.

Para responder a Andrew F., os graus de liberdade são, portanto, nu = N- (M + F) +1 ... N sendo o número de observações, M o número de respostas e F o número de parâmetros por modelo de equação. nu deve ser positivo.

(Você pode ler meu trabalho neste documento :-))

Pierre Lebrun
fonte
0

Você já se deparou com o termo "correlação canônica"? Lá você tem conjuntos de variáveis ​​no lado independente e no lado dependente. Mas talvez haja conceitos mais modernos disponíveis, as descrições que tenho são dos anos oitenta / noventa ...

Elmos de Gottfried
fonte
1
Correlação canônica é a correlação entre as pontuações fatoriais calculadas a partir de estruturas de dois blocos, como no CCA ou PLS. É exatamente isso que descrevi em minha resposta (regressão PLS), embora PLS seja mais apropriado que o CCA quando as variáveis ​​desempenham um papel assimétrico, o que provavelmente será o caso aqui. Isso ocorre porque existe um processo de deflação assimétrico e, em vez disso, trabalhamos com a covariância (com o CCA, esvaziamos os dois blocos ao mesmo tempo e procuramos maximizar a correlação, em vez da covariância).
chl
@chl: upps- hoje (final de janeiro) Voltei a esta pergunta / conversa de meados de novembro ... Desculpe por não ter verificado antes - havia algo nos meus cursos e depois esqueci a troca stat.exchange. .. Se eu tiver algo que vale a pena, voltarei nos próximos dias.
Gottfried Helms
-3

É chamado modelo de equação estrutural ou modelo de equação simultânea.

Shige
fonte
3
Eu posso estar errado, mas não acho que seja a mesma coisa. Nos gráficos SEM que eu vi, parece que o SEM usa várias equações de regressão para determinar os valores dos fatores latentes e, em seguida, outra regressão é executada no valor desses fatores latentes para determinar um fator de ordem superior. Talvez isso esteja errado, mas nunca vi um gráfico SEM que vincule vários IVs a vários DVs - tudo é hierárquico.
Jeff
Figura 8 neste documento: biomedcentral.com/1471-2288/3/27 Você pode fazê-lo, mas há pouco sentido. É o mesmo que MANOVA.
Jeremy Miles