¿Regresión con múltiples variables dependientes?

61

¿Es posible tener una ecuación de regresión (múltiple) con dos o más variables dependientes? Claro, podría ejecutar dos ecuaciones de regresión separadas, una para cada DV, pero eso no parece capturar ninguna relación entre los dos DV.

Jeff
fuente
Como en SUR o 3SLS?
Un viejo en el mar.

Respuestas:

35

Sí, es posible. Lo que le interesa se llama "Regresión múltiple multivariante" o simplemente "Regresión multivariante". No sé qué software estás usando, pero puedes hacerlo en R.

Aquí hay un enlace que proporciona ejemplos.

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

Brett
fuente
2
Se podría agregar que ajustar las regresiones por separado es, de hecho, equivalente a la formulación multivariada con una matriz de variables dependientes. En R con el paquete mvtnorm instalado (primero: modelo multivariante, segundo: modelos univariados separados): biblioteca (mvtnorm); X <- rmvnorm (100, c (1, 2), matriz (c (4, 2, 2, 3), ncol = 2)); Y <- X% *% matriz (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
Si es equivalente, ¿cuál es el propósito?
Joshua Rosenberg
1
@JoshuaRosenberg una razón para ejecutar una regresión multivariada sobre regresiones separadas con variables dependientes individuales es la capacidad de realizar pruebas de los coeficientes a través de las diferentes variables de resultado. Por ejemplo, puede realizar una prueba F para ver si un predictor tiene el mismo efecto en una variable de resultado que en otra variable de resultado.
AlexK
10

La respuesta de @ Brett está bien.

Si está interesado en describir su estructura de dos bloques, también podría usar la regresión PLS . Básicamente, es un marco de regresión que se basa en la idea de construir combinaciones lineales sucesivas (ortogonales) de las variables que pertenecen a cada bloque de modo que su covarianza sea máxima. Aquí consideramos que un bloque contiene variables explicativas y el otro bloque Y responde a variables, como se muestra a continuación:XY

texto alternativo

Buscamos "variables latentes" que representen un máximo de información (de forma lineal) incluida en el bloque mientras permiten predecir el bloque Y con un error mínimo. El u j y v j son las cargas (es decir, combinaciones lineales) asociados a cada dimensión. El criterio de optimización leeXYujvj

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

donde representa el bloque desinflado (es decir, residual) , después de la regresión . X h thXh-1Xhth

La correlación entre los puntajes factoriales en la primera dimensión ( y ) refleja la magnitud del enlace -ω 1 X Yξ1ω1XY

chl
fuente
Creo que un PLS multipleX-multipleY esencialmente hace un PLS múltiple "multipleX-singleY". Por lo tanto, las relaciones entre las variables Y no se abordan.
lanselibai
4

La regresión multivariada se realiza en SPSS utilizando la opción GLM-multivariante.

Coloque todos sus resultados (DV) en el cuadro de resultados, pero todos sus predictores continuos en el cuadro de covariables. No necesitas nada en el cuadro de factores. Mira las pruebas multivariadas. Las pruebas univariadas serán lo mismo que las regresiones múltiples separadas.

Como alguien más dijo, también puede especificar esto como un modelo de ecuación estructural, pero las pruebas son las mismas.

(Curiosamente, bueno, creo que es interesante, hay una pequeña diferencia entre el Reino Unido y los Estados Unidos en esto. En el Reino Unido, la regresión múltiple generalmente no se considera una técnica multivariada, por lo tanto, la regresión multivariada solo es multivariada cuando tienes múltiples resultados / DV. )

Jeremy Miles
fuente
2
una adición en @Jeremy Miles respuesta: www-01.ibm.com/support/docview.wss?uid=swg21476743
Epaminondas
2

Haría esto transformando primero las variables de regresión en variables calculadas por PCA, y luego haría la regresión con las variables calculadas por PCA. Por supuesto, almacenaría los vectores propios para poder calcular los valores de pca correspondientes cuando tengo una nueva instancia que quiero clasificar.

mariana más suave
fuente
2
Esto parece conceptualmente diferente a la respuesta anterior. Todavía no tengo claro cómo transformar mis variables en coeficientes PCA me permite retroceder en 2+ variables dependientes.
Jeff
@Jeff, esta respuesta es en realidad conceptualmente similar a la regresión multivariada. Aquí, la sugerencia es hacer dos pasos discretos en secuencia (es decir, encontrar variables compuestas lineales ponderadas y luego retrocederlas); La regresión multivariada realiza los dos pasos simultáneamente . La regresión multivariada será más poderosa, ya que los WLCV se forman para maximizar la regresión. Sin embargo, el procedimiento de dos pasos puede proporcionar más claridad con respecto al proceso, o puede ser preferible para el investigador.
gung - Restablece a Monica
1
@gung Hmm, esto tiene sentido para mí si haces PCA en las variables dependientes y luego retrocedes solo en el primer componente principal ... Pero aún estás arrojando mucha variación.
Jeff
1
@Jeff, las PC son ortogonales. Puede ejecutar regresiones independientes en cada uno. Sin embargo, esto es menos potente porque la descomposición no es la misma, y ​​la prueba de regresión multivariante no es realmente una serie de reglas en las PC.
gung - Restablece a Monica
@gung sí, puedes ejecutar N regresiones independientes, pero luego terminas con N conjuntos de coeficientes beta. No entiendo cómo eso resuelve el problema.
Jeff
1

Como mencionó Caracal, puede usar el paquete mvtnorm en R. Suponiendo que hizo un modelo lm (llamado "modelo") de una de las respuestas en su modelo, y lo llamó "modelo", aquí le mostramos cómo obtener la distribución predictiva multivariada de varias respuestas "resp1", "resp2", "resp3" almacenadas en una forma de 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) 

Ahora, los cuantiles de ysim son intervalos de tolerancia de expectativa beta de la distribución predictiva, por supuesto, puede usar directamente la distribución muestreada para hacer lo que quiera.

Para responder a Andrew F., los grados de libertad son, por lo tanto, nu = N- (M + F) +1 ... N es el número de observaciones, M el número de respuestas y F el número de parámetros por modelo de ecuación. nu debe ser positivo.

(Es posible que desee leer mi trabajo en este documento :-))

Pierre Lebrun
fuente
0

¿Ya te encontraste con el término "correlación canónica"? Allí tiene conjuntos de variables tanto en el lado independiente como en el dependiente. Pero tal vez hay más conceptos modernos disponibles, las descripciones que tengo son todas de los ochenta / noventa ...

Yelmos de Gottfried
fuente
1
La correlación canónica es la correlación entre los puntajes de factores calculados a partir de estructuras de dos bloques, como con CCA o PLS. Esto es exactamente lo que describí en mi respuesta (regresión de PLS), aunque PLS es más apropiado que CCA cuando las variables juegan un papel asimétrico, que probablemente sea el caso aquí. Esto se debe a que hay un proceso de deflación asimétrica y en su lugar trabajamos con la covarianza (con CCA, desinflamos ambos bloques al mismo tiempo, y buscamos maximizar la correlación, en lugar de la covarianza).
chl
@chl: upps- hoy (finales de enero) Volví a esta pregunta / conversación de mediados de noviembre ... Lo siento, no lo revisé antes, había algo con mis cursos y luego olvidé el intercambio de estadísticas. .. Si tengo algo que valga, volveré los próximos días.
Gottfried Helms
-3

Se llama modelo de ecuación estructural o modelo de ecuación simultánea.

Shige
fuente
3
Podría estar equivocado, pero no creo que sea lo mismo. De los gráficos SEM que he visto, parece que SEM usa ecuaciones de regresión múltiple para determinar los valores de los factores latentes, y luego se ejecuta otra regresión sobre el valor de esos factores latentes para determinar un factor de orden superior. Tal vez esto esté mal, pero nunca he visto un gráfico SEM que vincule varios IV a múltiples DV; todo es jerárquico.
Jeff
Figura 8 en este documento: biomedcentral.com/1471-2288/3/27 Puede hacerlo, pero no tiene mucho sentido. Es lo mismo que MANOVA.
Jeremy Miles