R中的多元逻辑回归?

9
如何在R中进行多元(多个因变量)Logistic回归?
我知道在R中进行线性回归,但这并不适用于Logistic回归。
form <-cbind(A,B,C,D)~shopping_pt+price
mlm.model.1 <- lm(form, data = train)

但是,当我尝试使用以下代码进行逻辑回归时(见下文),它不能正常工作。
model.logistic <- glm(form, family=binomial(link=logit), data=train)

谢谢您的帮助。

另外,似乎我用线性模型来完成这个任务的代码可能不正确。我正在尝试根据这份文档中提出的方法来操作,对某些人可能会有所帮助。

ftp://ftp.cis.upenn.edu/pub/datamining/public_html/ReadingGroup/papers/multiResponse.pdf


1
我可能错了,但我认为你针对lm的代码只适用于四个独立的模型,每个模型都有一个因变量。我的意思是,你可以拟合四个逻辑回归模型。 - Julián Urbano
3
谢谢提供链接。然而,第二个链接提到了以下内容:“各个系数及其标准误差与多元回归所产生的结果相同。但是,普通最小二乘回归不会产生多元结果,也不能对方程间的系数进行测试。” - Julián Urbano
您应该考虑添加一个dput()调用以提供您数据集的样本,或者提供一个可再现的示例。 - marbel
2
如果您适当地“堆叠”数据,可以使用广义线性混合模型(GLMM)包来完成此操作:MCMCglmm(请参见课程笔记的第5章)或lme4(请参见http://rpubs.com/bbolker/3336)应该可以胜任,尽管那里给出的多元示例是多元正态分布。如果您提供一个可重现的示例,我会考虑发布一个解决方案... - Ben Bolker
你知道在MCMCglmm中是否可以进行多元预测吗?我对检验显著性不感兴趣,我的主要关注点是预测。在我继续尝试重塑数据之前,因为你写了课程笔记,所以我希望你能有答案。 - blast00
显示剩余4条评论
1个回答

3
据我所知,lm(cbind(A,B,C,D)~shopping_pt+price)仅为四个因变量拟合了四个不同的模型。你提供的第二个链接甚至提到:

每个系数及其标准误将与多元回归产生的结果相同。但是,OLS回归将不会产生多元结果,也不会允许对方程之间的系数进行测试。

这意味着所有估计值都将相同,您只需预测四次;并且适合系数的假设在模型之间是独立的。
我尝试了下面的示例,并证明它确实是这样:
> set.seed(0)
> x1 <- runif(10)
> x2 <- runif(10)
> y1 <- 2*x1 + 3*x2 + rnorm(10)
> y2 <- 4*x1 + 5*x2 + rnorm(10)
> mm <- lm(cbind(y1,y2)~x1+x2)
> m1 <- lm(y1~x1+x2)
> m2 <- lm(y2~x1+x2)
# If we look at mm, m1 and m2, we see that models are identical
# If we predict new data, they give the same estimates
> x1_ <- runif(10)
> x2_ <- runif(10)
> predict(mm, newdata=list(x1=x1_, x2=x2_))
          y1       y2
1  2.9714571 5.965774
2  2.7153855 5.327974
3  2.5101344 5.434516
4  1.3702441 3.853450
5  0.9447582 3.376867
6  2.3809256 5.051257
7  2.5782102 5.544434
8  3.1514895 6.156506
9  2.4421892 5.061288
10 1.6712042 4.470486
> predict(m1, newdata=list(x1=x1_, x2=x2_))
        1         2         3         4         5         6         7         8         9        10 
2.9714571 2.7153855 2.5101344 1.3702441 0.9447582 2.3809256 2.5782102 3.1514895 2.4421892 1.6712042 
> predict(m2, newdata=list(x1=x1_, x2=x2_))
       1        2        3        4        5        6        7        8        9       10 
5.965774 5.327974 5.434516 3.853450 3.376867 5.051257 5.544434 6.156506 5.061288 4.470486

这表明您只需分别适配四个逻辑模型。

2
非常感谢您提供的这个深刻而又不幸的见解。然而,这也意味着问题仍未得到解答,因为我想进行适当的多元分析,其中一个要考虑依赖变量之间的相关性。 - blast00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接