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

Interpreting how R codifies dummy response variable in Logistic Regression

我是新手,在解释逻辑回归的输出时遇到了问题。 我的响应变量有两个值——“multiplex”和“subterraneus”。当在“microtus.train”数据框上使用 factor() 函数时,我按顺序得到“mutiplex and subterraneus”。在我拟合模型并预测响应后,我无法理解概率的含义。这些概率是否意味着观测是“地下”的概率?当我使用“contrasts(microtus.train$Group)”语句时,我得到了下面的 table。

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

基于此 table,我认为该模型试图预测“地下”的概率(而不是“多重”的概率),因为“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)

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

For ‘binomial’ and ‘quasibinomial’ families the response can also be specified as a ‘factor’ (when the first level denotes failure and all others success)

由于 R 默认按字母顺序定义因子水平,"multiplex"(可能)是第一水平,"subterraneus" 是第二水平,因此逻辑回归预测 "subterraneus"。您可以使用 levels(microtus$Group) 检查它,并在必要时通过使用 factor() 和显式设置 levels 参数来调整它。