我是一名新手,在解释逻辑回归的输出方面遇到了麻烦。 我的响应变量有两个值 - “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)
答案 0 :(得分:1)
重要的不是对比,而是因子水平的顺序(对比度指定预测变量变量如何被编码为虚拟变量)。来自?glm
:
对于'二项式'和'准二项式'家庭,反应也可以 被指定为'因子'(当第一级表示失败时) 和其他所有成功)
由于R默认按字母顺序定义因子水平,“多路复用”(可能)是第一级,“子宫颈”是第二级,因此逻辑回归预测“子宫颈”的概率。您可以使用levels(microtus$Group)
进行检查,并在必要时使用factor()
明确设置levels
参数进行调整。