具有多个因变量的回归?


61

是否可能有一个(多个)具有两个或多个因变量的回归方程?当然,您可以运行两个单独的回归方程,每个DV对应一个回归方程,但这似乎无法捕获两个DV之间的任何关系?


如SUR或3SLS?
一位老人在海里。

Answers:


35

对的,这是可能的。您感兴趣的被称为“多元多元回归”或简称为“多元回归”。我不知道您在使用什么软件,但是您可以在R中执行此操作。

这是一个提供示例的链接。

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


2
一个人可能会补充说,对回归分离进行拟合的确等同于具有因变量矩阵的多变量表述。在安装了mvtnorm软件包的R中(第一个:多变量模型,第二个:单独的单变量模型):library(mvtnorm); X <-rmvnorm(100,c(1,2),矩阵(c(4,2,2,3),ncol = 2)); Y <-X%*%matrix(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 2010年

3
如果相等,目的是什么?
约书亚·罗森伯格

1
@JoshuaRosenberg在具有单个因变量的单独回归上运行多元回归的原因之一是能够对不同结果变量进行系数测试。例如,您可以执行F检验以查看预测变量对一个结果变量的影响是否与对另一结果变量的影响相同。
AlexK

10

@Brett的回应很好。

如果您对描述两块结构感兴趣,也可以使用PLS回归。基本上,这是一个回归框架,它依赖于以下构想:建立属于每个块的变量的连续(正交)线性组合,以使它们的协方差最大。这里我们认为一个块包含解释变量,另一个块响应变量,如下所示:ÿXY

替代文字

我们寻求“潜在变量”,它们在块中包含最多的信息(以线性方式),同时允许以最小的误差预测块。的和是关联到每个维度上的负载量(即,线性组合)。优化标准如下Ÿ ü Ĵ v ĴXYujvj

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

其中代表在回归之后的缩小的(即残差的)块。Xh1Xhth

第一维(和)上阶乘分数之间的相关性反映了 -链接的大小。ξ1ω1XY


我认为,multipleX-multipleY PLS本质上会执行多个“ multipleX-singleY” PLS。因此未解决Y变量之间的关系。
lanselibai '16

4

使用GLM-multivariate选项在SPSS中完成多元回归。

将所有结果(DV)放入结果框中,但将所有连续的预测变量放入协变量框中。您不需要在“因素”框中进行任何操作。查看多元测试。单变量检验将与单独的多元回归相同。

正如其他人所说,您也可以将其指定为结构方程模型,但是测试是相同的。

(有趣的是,我认为这很有趣,在此方面存在一些英美差异。在英国,多元回归通常不被认为是多元技术,因此,只有在您具有多个结果/ DV时,多元回归才是多元的。 )



2

我将首先将回归变量转换为PCA计算变量,然后再转换为PCA计算变量进行回归。当然,当我要分类的新实例时,我将存储特征向量,以便能够计算相应的pca值。


2
这在概念上似乎与上面的答案有所不同。对于将变量转换为PCA系数如何使我能够回归2个因变量,我仍然不清楚。
杰夫

@Jeff这个答案实际上在概念上类似于多元回归。这里的建议是依次执行两个离散步骤(即找到加权线性复合变量,然后对其进行回归)。多元回归同时执行这两个步骤。随着WLCV的形成,以使回归最大化,多元回归将更加强大。但是,两步过程可以使过程更加清晰,或者对于研究人员而言更可取。
gung-恢复莫妮卡

1
@gung嗯,如果您对因变量进行PCA,然后仅对第一个主成分进行回归,那么这对我来说很有意义……但是,您仍然会抛出很多差异。
杰夫

1
@ Jeff,PC是正交的。您可以对每个变量进行独立回归。但是,它的功能不那么强大,分解并不完全相同,并且多元回归测试并不是PC上的一系列规则。
gung-恢复莫妮卡

@gung是的,您可以运行N个独立的回归,但是最终您会得到N组β系数。我不明白如何解决问题?
杰夫

1

如caracal所述,您可以在R中使用mvtnorm包。假设您为模型中的一个响应创建了lm模型(名为“模型”),并将其称为“模型”,这是如何获取多元预测分布以矩阵形式Y存储的几个响应“ resp1”,“ resp2”,“ resp3”中的一个:

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) 

现在,ysim的分位数是预测分布中的beta期望公差区间,您当然可以直接使用采样分布来执行所需的任何操作。

为了回答安德鲁·F·,自由度因此是nu = N-(M + F)+1 ... N是观察的数量,M是响应的数量,F是每个方程模型的参数数量。nu必须为正。

(您可以在此阅读对我的工作文件 :-))


0

您是否已经遇到过“规范相关性”一词?在那里,在独立端和从属端都有变量集。但是也许有更多现代概念可用,我所描述的都是八十年代至九十年代...


1
典型的相关性是与CCA或PLS一样,由两块结构计算得出的因子得分之间的相关性。这正是我在响应(PLS回归)中描述的内容,尽管当变量扮演非对称角色时,PLS比CCA更合适,这很可能就是这种情况。这是因为存在一个不对称的放气过程,而我们使用协方差工作(通过CCA,我们同时放气两个块,并寻求最大化相关性而不是协方差)。
chl 2010年

@chl:upps-今天(一月底)我回到了11月中旬的这个问题/对话。...对不起,我没有早点检查-我的课程有某些问题,然后我忘记了stat.exchange。 ..如果我有值得的东西,我会在第二天回来。
Gottfried Helms

-3

称为结构方程模型或联立方程模型。


3
我可能是错的,但我不认为这是同一回事。从我看到的SEM图中,看起来SEM使用多个回归方程式来确定潜在因子的值,然后对这些潜在因子的值进行另一次回归以确定高阶因子。也许这是错误的,但是我从未见过将多个IV链接到多个DV的SEM图-一切都是分层的。
杰夫

本文中的图8:biomedcentral.com/1471-2288/3/27您可以做到,但没有什么意义。与MANOVA相同。
Jeremy Miles
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.