Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
r?_R_Logistic Regression - Fatal编程技术网

r?

r?,r,logistic-regression,R,Logistic Regression,如何在R中进行多元(多因变量)逻辑回归 我知道你这样做是为了线性回归,这是可行的 form <-cbind(A,B,C,D)~shopping_pt+price mlm.model.1 <- lm(form, data = train) form在我看来,lm(cbind(A,B,C,D)~shopping\u pt+price)只适合四个因变量的四种不同模型。您提供的服务甚至提到: 单个系数及其标准误差将与多元回归产生的系数相同。然而,OLS回归不会产生多变量结果,也不允许跨方程

如何在R中进行多元(多因变量)逻辑回归

我知道你这样做是为了线性回归,这是可行的

form <-cbind(A,B,C,D)~shopping_pt+price
mlm.model.1 <- lm(form, data = train)

form在我看来,
lm(cbind(A,B,C,D)~shopping\u 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
>设置种子(0)
>x1 x2 y1 y2毫米m1平方米x1_x2_uu预测(毫米,新数据=列表(x1=x1_x2=x2_uu))
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
>预测(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 
>预测(m2,新数据=列表(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

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

我可能错了。

但是我认为你为
lm
编写的代码只适合四个独立的模型,每个因变量对应一个。我的意思是,你只能适应四种逻辑模型。我不相信这是正确的。它解释了4个因变量之间的相关矩阵,同时预测了4个模型来解释这些相互依赖性。你确定吗?有参考资料吗?谢谢你的链接。第二条提到了这一点:“单个系数及其标准误差将与多元回归产生的系数相同。但是,OLS回归不会产生多元结果,也不允许跨方程测试系数。”如果您适当地“堆叠”数据,您可以使用广义线性混合模型(GLMM)包来实现这一点:
MCMCglmm
(参见课程说明的第5章)或
lme4
(参见)应该可以工作,尽管这里给出的多变量示例是多变量正态分布。如果你给出一个可重复的例子,我会考虑张贴一个有效的答案……谢谢你这个非常疯狂,但同时不幸。然而,这意味着这个问题仍然没有答案,因为我想进行适当的多元分析,其中一个解释了因变量之间的相关性。
> 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