r - 我的具有二项分布的 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
,分别是pre
(pre-wet
或pre-dry
)、during
(wet
或dry
)、season
(winter
或fall
)和observer
(最多 10 个不同的观察者)。
我想找出哪些变量在解释成功的测试中最重要,即success
:yes
。
我已经按照下面的代码构建了模型,有和没有不同效果之间的相互作用,并选择了遵循 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
是否正确实施?
希望有人能让我走上正轨,我希望这个问题能引起人们的兴趣。
解决方案
您可以将success
列转换为因子。因此,如果您执行 xgboost 等其他模型,您将不会收到任何错误
dataraw$success = as.factor(dataraw$success)
推荐阅读
- python - 在 Matplotlib 中设置区域的颜色
- python - 像在 Keras 中一样在 pytorch 中获取交叉熵损失
- swift - userId 来 appdelegate 还是不去 Mainviewcontroller 为什么?迅速
- c# - C#/WPF 程序突然变成垃圾收集器绑定 - 如何检测?
- javascript - Safari 上的 D3.js 幽灵/神器
- c# - 如何将 List 值分配给 List ValueTuples?
- mysql - 向数据库中的只读用户授予对存储过程和 udfs 的访问权限,不包括可以插入的 udfs/procedures
- flutter - 如何像facebook一样显示flutter的时差
- python - 安装 jupyterlab/latex 扩展时重建失败
- php - 在PHP(Laravel)中将字符串(数组格式)转换为数组