R 如何对非二元变量进行逻辑回归?
我一直在寻找这个答案,我真的很惊讶没有找到它。我只想在R 让我们定义一些人工数据:R 如何对非二元变量进行逻辑回归?,r,regression,logistic-regression,estimation,R,Regression,Logistic Regression,Estimation,我一直在寻找这个答案,我真的很惊讶没有找到它。我只想在R 让我们定义一些人工数据: set.seed(42) y <- sample(0:2, 100, replace = T) x <- rnorm(100) 但是我得到的信息是,y应该在区间[0,1]内。你知道我怎么做这个回归吗 请注意-我知道执行多层次逻辑回归并不是那么简单,有几种方法可以做到这一点,例如一对所有。但在我查找时,我找不到任何错误消息。如果您阅读了错误消息,它会提示您可能会成功: y <- sample(s
set.seed(42)
y <- sample(0:2, 100, replace = T)
x <- rnorm(100)
但是我得到的信息是,y
应该在区间[0,1]内。你知道我怎么做这个回归吗
请注意-我知道执行多层次逻辑回归并不是那么简单,有几种方法可以做到这一点,例如一对所有。但在我查找时,我找不到任何错误消息。如果您阅读了错误消息,它会提示您可能会成功:
y <- sample(seq(0,1,length=3), 100, replace = T)
y如果您阅读错误消息,它会提示您可能会成功:
y <- sample(seq(0,1,length=3), 100, replace = T)
yset.seed(42)
yset.seed(42)
由glm实施的y逻辑回归仅适用于2个水平的输出,而不是3个水平
这条消息有点夸张,因为您可以在逻辑回归中将y变量指定为0和1,或者指定为一个比例(0和1之间),并使用权重参数指定该比例的受试者数量
如果在响应中有3个或3个以上的有序级别,则需要使用一个泛化,一个常见的泛化是比例赔率逻辑回归(也称为其他名称)。MASS包中的polr
函数和rms包中的lrm
函数(可能还有其他包中的其他函数)适合这些类型的模型,但glm
不适合。由glm
实现的逻辑回归只适用于2个输出级别,而不是3个
这条消息有点夸张,因为您可以在逻辑回归中将y变量指定为0和1,或者指定为一个比例(0和1之间),并使用权重参数指定该比例的受试者数量
如果在响应中有3个或3个以上的有序级别,则需要使用一个泛化,一个常见的泛化是比例赔率逻辑回归(也称为其他名称)。MASS包中的polr
功能和rms包中的lrm
功能(可能还有其他包中的其他功能)适合这些类型的型号,但glm
不适合
# weights: 9 (4 variable)
initial value 109.861229
final value 104.977336
converged
Call:
multinom(formula = y ~ x)
Coefficients:
(Intercept) x
1 -0.001529465 0.29386524
2 -0.649236723 -0.01933747
Residual Deviance: 209.9547
AIC: 217.9547
Call:
polr(formula = ordered(y) ~ x)
Coefficients:
x
0.06411137
Intercepts:
0|1 1|2
-0.4102819 1.3218487
Residual Deviance: 212.165
AIC: 218.165