首页 > 解决方案 > 我的具有二项分布的 GLM 模型是否正确实施?

问题描述

我一直在尝试使用基因测试成功的数据来实现 GLM 模型(是 = 成功测试;否 = 不成功测试)。

> head(dataraw)
   success     pre during season observer
1:      no pre-wet    dry winter   JvD&OK
2:     yes pre-wet    dry winter   JvD&OK
3:      no pre-wet    dry winter   JvD&OK
4:     yes pre-wet    dry winter      JvD
5:     yes pre-wet    dry winter      JvD
6:     yes pre-wet    dry winter      JvD

四个预测变量用于解释响应变量的出现success,分别是prepre-wetpre-dry)、duringwetdry)、seasonwinterfall)和observer(最多 10 个不同的观察者)。

我想找出哪些变量在解释成功的测试中最重要,即successyes

我已经按照下面的代码构建了模型,有和没有不同效果之间的相互作用,并选择了遵循 AIC 值的理论方法的最简约的模型:

m1 <- glm((success) ~ pre , data=dataraw , family=binomial)
summary(m1)
plot(allEffects(m1))
AIC(m1)

m2 <- glm((success) ~ during , data=dataraw , family=binomial)
summary(m2)
plot(allEffects(m2))
AIC(m2)

m3 <- glm((success) ~ season , data=dataraw , family=binomial)
summary(m3)
plot(allEffects(m3))
AIC(m3)

m4 <- glm((success) ~ observer , data=dataraw , family=binomial)
summary(m4)
plot(allEffects(m4))
AIC(m4)

m5 <- glm((success) ~ pre*during , data=dataraw , family=binomial)
summary(m4)
plot(allEffects(m4))
AIC(m4)

etc.

我不确定我是否遵循了好的方法以及我的代码是否正确,特别是因为我看到其他人在使用二项分布时使用1(是)和(否)。0这有关系吗?我的数据集dataraw是否正确实施?

希望有人能让我走上正轨,我希望这个问题能引起人们的兴趣。

标签: rglmeffects

解决方案


您可以将success列转换为因子。因此,如果您执行 xgboost 等其他模型,您将不会收到任何错误

    dataraw$success = as.factor(dataraw$success)

推荐阅读