Régression avec plusieurs variables dépendantes?

62

Est-il possible d'avoir une équation de régression (multiple) avec deux variables dépendantes ou plus? Bien sûr, vous pouvez exécuter deux équations de régression distinctes, une pour chaque DV, mais cela ne semble pas capturer une relation quelconque entre les deux DV?

Jeff
la source
Comme dans SUR ou 3SLS?
Un vieil homme à la mer.

Réponses:

36

Oui c'est possible. Ce qui vous intéresse est ce qu'on appelle "Régression Multivariée Multiple" ou simplement "Régression Multivariée". Je ne sais pas quel logiciel vous utilisez, mais vous pouvez le faire avec R.

Voici un lien qui fournit des exemples.

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

Brett
la source
2
On pourrait ajouter qu'adapter les régressions séparément est en fait équivalent à la formulation multivariée avec une matrice de variables dépendantes. En R avec le package mvtnorm installé (1er: modèle multivarié, 2ème: modèles univariés séparés): bibliothèque (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
Si c'est équivalent, quel est le but?
Joshua Rosenberg
1
@JoshuaRosenberg Une des raisons pour laquelle une régression multivariée est exécutée sur des régressions distinctes avec des variables dépendantes uniques est la possibilité d'effectuer des tests des coefficients entre les différentes variables de résultat. Par exemple, vous pouvez effectuer un test F pour voir si un prédicteur a le même effet sur une variable de résultat que sur une autre variable de résultat.
AlexK
10

@ La réponse de Brett est correcte.

Si vous souhaitez décrire votre structure en deux blocs, vous pouvez également utiliser la régression PLS . Fondamentalement, il s’agit d’un cadre de régression qui repose sur l’idée de construire des combinaisons linéaires successives (orthogonales) des variables appartenant à chaque bloc, de sorte que leur covariance soit maximale. Nous considérons ici qu'un bloc contient des variables explicatives et l'autre variable de réponses , comme indiqué ci-dessous:YXY

texte alternatif

Nous cherchons des "variables latentes" qui représentent un maximum d'informations (de manière linéaire) incluses dans le bloc tout en permettant de prédire le bloc avec une erreur minimale. Les et sont les chargements (combinaisons linéaires) associés à chaque dimension. Les critères d'optimisation se lisentY u j v jXYujvj

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

où représente le bloc dégonflé (c'est-à-dire résidualisé) après la régression . X h thXh1Xhth

La corrélation entre les scores factoriels sur la première dimension ( et ) reflète la magnitude du lien -ω 1 X Yξ1ω1XY

chl
la source
Je pense qu'un PLS multipleX-multipleY fait essentiellement un PLS multiple "multipleX-singleY". Les relations entre les variables Y ne sont donc pas abordées.
Lanselibai
4

La régression multivariée est effectuée dans SPSS à l'aide de l'option GLM-multivariée.

Mettez tous vos résultats (DV) dans la zone des résultats, mais tous vos prédicteurs continus dans la zone des covariables. Vous n'avez besoin de rien dans la boîte de facteurs. Regardez les tests multivariés. Les tests univariés seront identiques à des régressions multiples distinctes.

Comme quelqu'un d'autre l'a dit, vous pouvez également spécifier cela en tant que modèle d'équation structurelle, mais les tests sont les mêmes.

(Fait intéressant, eh bien, je pense que c'est intéressant, il existe une légère différence entre le Royaume-Uni et les États-Unis. Au Royaume-Uni, la régression multiple n'est généralement pas considérée comme une technique multivariée. La régression multivariée n'est donc multivariée que si vous obtenez plusieurs résultats / valeurs. )

Jeremy Miles
la source
2
un ajout sur @Jeremy Miles: www-01.ibm.com/support/docview.wss?uid=swg21476743
Epaminondas Le
2

Je le ferais en transformant d’abord les variables de régression en variables calculées par PCA, puis en régressant avec les variables calculées par PCA. Bien sûr, je stockerais les vecteurs propres pour pouvoir calculer les valeurs pca correspondantes lorsque j'ai un nouvel exemple à classer.

Mariana Soffer
la source
2
Cela semble conceptuellement différent de la réponse ci-dessus. Je ne comprends toujours pas comment la transformation de mes variables en coefficients PCA me permet de régresser sur 2 variables dépendantes?
Jeff
@ Jeff, cette réponse est en réalité similaire à la régression multivariée. Ici, la suggestion est de faire deux étapes discrètes en séquence (c.-à-d. Trouver des variables composites linéaires pondérées puis les faire régresser); la régression multivariée effectue les deux étapes simultanément . La régression multivariée sera plus puissante car les WLCV sont formés de manière à maximiser la régression. Cependant, la procédure en deux étapes peut fournir plus de clarté concernant le processus, ou être par ailleurs préférable pour le chercheur.
gung - Réintégrer Monica
1
@gung Hmm cela a du sens pour moi si vous utilisez PCA pour les variables dépendantes puis régressez uniquement sur le premier composant principal ... Mais vous produisez encore beaucoup de variance.
Jeff
1
@ Jeff, les PC sont orthogonaux. Vous pouvez exécuter des régressions indépendantes sur chacun. Cependant, c’est moins puissant, car la décomposition n’est pas tout à fait la même et le test de régression multivarié n’est pas vraiment une série de règles sur les PC.
Gay - Rétablir Monica
@gung Oui, vous pouvez exécuter N régressions indépendantes, mais vous obtenez alors N ensembles de coefficients bêta. Je ne comprends pas comment cela résout le problème?
Jeff
1

Comme mentionné par caracal, vous pouvez utiliser le paquetage mvtnorm dans R. En supposant que vous ayez créé un modèle lm (nommé "modèle") de l' une des réponses de votre modèle et que vous l'appeliez "modèle", voici comment obtenir la distribution prédictive multivariée de plusieurs réponses "resp1", "resp2", "resp3" stockées dans une matrice 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) 

Maintenant, les quantiles de ysim sont des intervalles de tolérance aux attentes bêta de la distribution prédictive, vous pouvez bien sûr utiliser directement la distribution échantillonnée pour faire ce que vous voulez.

Pour répondre à Andrew F., les degrés de liberté sont donc nu = N- (M + F) +1 ... N étant le nombre d'observations, M le nombre de réponses et F le nombre de paramètres par modèle d'équation. nu doit être positif.

(Vous voudrez peut-être lire mon travail dans ce document :-))

Pierre Lebrun
la source
0

Avez-vous déjà rencontré le terme "corrélation canonique"? Là vous avez des ensembles de variables du côté indépendant aussi bien que du côté dépendant. Mais peut-être y a-t-il des concepts plus modernes disponibles, les descriptions que j'ai sont toutes les années 80/90 ...

Gottfried Helms
la source
1
La corrélation canonique est la corrélation entre les scores de facteurs calculés à partir de structures à deux blocs, comme avec CCA ou PLS. C'est exactement ce que j'ai décrit dans ma réponse (régression PLS), bien que PLS soit plus approprié que l'ACC lorsque les variables jouent un rôle asymétrique, ce qui est susceptible d'être le cas ici. En effet, il existe un processus de déflation asymétrique et nous travaillons plutôt avec la covariance (avec l'ACC, nous dégonflons les deux blocs en même temps et nous cherchons à maximiser la corrélation au lieu de la covariance).
chl
@chl: upps - aujourd'hui (fin janvier), je suis revenu à cette question / conversation de la mi-novembre .... Désolé de ne pas avoir vérifié plus tôt - il y avait quelque chose dans mes cours et j'ai oublié le stat.exchange. .. Si j'ai quelque chose de valable, je reviendrai dans les prochains jours.
Gottfried Helms le
-3

C'est ce qu'on appelle un modèle d'équation structurelle ou un modèle d'équation simultanée.

Shige
la source
3
Je peux me tromper, mais je ne pense pas que ce soit la même chose. D'après les graphiques SEM que j'ai vus, il semble que SEM utilise plusieurs équations de régression pour déterminer les valeurs des facteurs latents, puis une autre régression est exécutée sur la valeur de ces facteurs latents pour déterminer un facteur d'ordre supérieur. Peut-être que c'est faux, mais je n'ai jamais vu de graphique SEM reliant plusieurs IV à plusieurs DV - tout est hiérarchique.
Jeff
Figure 8 de cet article: biomedcentral.com/1471-2288/3/27 Vous pouvez le faire, mais cela ne sert à rien. C'est la même chose que MANOVA.
Jeremy Miles