【问题标题】:Multivariate logistic regression in r?r中的多元逻辑回归?
【发布时间】:2014-06-26 14:49:18
【问题描述】:

如何在 R 中执行多变量(多个因变量)逻辑回归?

我知道你这样做是为了进行线性回归,而且这个方法有效

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

【问题讨论】:

  • 我可能是错的..但我认为您为lm 提供的代码只适合四个单独的模型,每个模型对应一个因变量。我的意思是,你可以拟合四个逻辑模型。
  • 我不相信这是正确的。它考虑了 4 个因变量之间的相关矩阵,并同时预测了 4 个模型来解释这些相互依赖关系。
  • 你确定吗?有什么参考吗?
  • 感谢您的链接。第二个虽然提到了这一点:“各个系数及其标准误差将与多元回归产生的相同。但是,OLS 回归不会产生多元结果,也不允许测试跨变量的系数。方程”
  • 如果你适当地“堆叠”你的数据,你可以使用广义线性混合模型 (GLMM) 包来做到这一点:MCMCglmm(见课程笔记的第 5 章)或lme4(见@ 987654322@) 应该可以工作,尽管给出的多元示例是多元正态的。如果你给出一个可重复的例子,我会考虑发布一个有效的答案......

标签: r logistic-regression


【解决方案1】:

在我看来,lm(cbind(A,B,C,D)~shopping_pt+price) 恰好适合四个因变量的四个不同模型。您提供的second link 甚至提到:

各个系数及其标准误将与多元回归产生的相同。但是,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

因此这表明您可以分别拟合四个逻辑模型。

【讨论】:

  • T感谢您的洞察力,但同时也很不幸。然而,这意味着这个问题仍然没有答案,因为我想执行适当的多变量分析,其中一个考虑到因变量之间的相关性。
猜你喜欢
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
  • 2021-05-02
  • 1970-01-01
  • 2018-01-26
  • 2013-12-20
  • 2018-02-12
  • 2014-06-20
相关资源
最近更新 更多