解释R如何在Logistic回归中编码虚拟响应变量

时间:2017-12-10 00:34:45

标签: r logistic-regression

我是一名新手,在解释逻辑回归的输出方面遇到了麻烦。 我的响应变量有两个值 - “multiplex”和“subterraneus”。当在“microtus.train”数据框中使用factor()函数时,我按顺序得到“mutiplex and subterraneus”。在我拟合模型并预测响应之后,我无法理解概率意味着什么。这些概率意味着观察的概率是“地下”吗?当我使用“对比(microtus.train $ Group)”声明时,我得到了下表。

> contrasts(microtus.train$Group)
             subterraneus
multiplex               0
subterraneus            1

基于该表,我解释该模型试图预测“地下”的概率(不是“多重”的概率),因为“1”是“地下”的虚拟编码。我的假设是否正确?

我的代码如下,我提前感谢您的帮助。

library(Flury)
data(microtus, package = "Flury")

str(microtus)
summary(microtus)

# Creating training & test data frames
microtus.train <- subset(microtus, 
                     microtus$Group %in% c("multiplex", "subterraneus"), 
                     select = c("Group", "M1Left", "M2Left", "M3Left", 
                                "Foramen", "Pbone","Length", "Height",
                                "Rostrum") )

# Drop 3rd factor level
microtus.train$Group = droplevels(microtus.train$Group)
factor(microtus.train$Group)


nullModel.GLM <- glm(Group ~ 1, data = microtus.train, 
                     family = binomial())
fullModel.GLM <- glm(Group ~ ., data = microtus.train, 
                     family = binomial())
summary(nullModel.GLM)
summary(fullModel.GLM)

stepFwd.GLM <- step(nullModel.GLM, scope = list(upper = fullModel.GLM), 
                    direction = 'forward', k = 2)
stepFwd.GLM.fitResults <- predict(stepFwd.GLM, type = 'response')
stepFwd.GLM.fitResults

contrasts(microtus.train$Group)

1 个答案:

答案 0 :(得分:1)

重要的不是对比,而是因子水平的顺序(对比度指定预测变量变量如何被编码为虚拟变量)。来自?glm

  

对于'二项式'和'准二项式'家庭,反应也可以        被指定为'因子'(当第一级表示失败时)        和其他所有成功)

由于R默认按字母顺序定义因子水平,“多路复用”(可能)是第一级,“子宫颈”是第二级,因此逻辑回归预测“子宫颈”的概率。您可以使用levels(microtus$Group)进行检查,并在必要时使用factor()明确设置levels参数进行调整。