具有多个预测变量的多重逻辑回归代码问题

Issue with multiple logistical regresstion code with multiple predictors

我正在尝试对一些变量执行多元逻辑回归,这些变量在单变量分析中对疾病状况具有统计学意义。由于我们的样本量约为 300,因此我们将其截断为 p<0.2。我为这些变量制作了一个新的数据框

regression1df <- data.frame(dgfcriteria, recipientage, ESRD_dx,bmirange,graftnumber, dsa_class_1, organ_tx, transfuse01m, transfuse1yr, readmission1yr, citrange1, switrange, anastamosisrange, donorage, donorgender, donorcriteria, donorionotrope, intubaterange, kdpirange, kdrirange, eptsrange, proteinuria, terminalurea, na.rm=TRUE)

我正在使用变量来预测疾病状况,即 DGF (dgfcriteria==1),非疾病是没有 DGF (dgfcriteria==0)。

这是数据的结构。

当我尝试使用 glm 代码 运行 整个变量列表时,我得到了:

predictors1 <- glm(dgfcriteria ~.,
data = predictors1df,
family = "binomial" )

contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]]) 错误: 对比只能应用于具有 2 个或更多水平的因素。

但是当我运行它只有数据框的一些变量时,有一个输出。

predictors1 <- glm(dgfcriteria ~ recipientage + ESRD_dx + bmirange + graftnumber + dsa_class_1 + organ_tx + transfuse01m + transfuse1yr +  readmission1yr +citrange1 +switrange + anastamosisrange+ donorage+ donorgender + donorcriteria + donorionotrope,
data = predictors1df,
family = "binomial" )

虽然有很多 NA,但这个输出看起来很奇怪。

我哪里做错了?

查看您的数据结构,您有很多缺失值。您的很多变量看起来在前 10 行中只有 2 或 3 个非缺失值。当您 运行 对具有缺失值的数据进行回归时,默认设置是删除所有具有 any 缺失值的行。

显然您的某些数据有严重的重叠,因此当所有具有缺失值的行都被删除时(请参阅 na.omit(your_data) 了解剩余的内容),一些变量只剩下一个级别,因此没有更适合回归。当然,当你只使用一些变量时,丢弃的行会更少,你的情况可能会更好。

因此,您必须决定如何处理缺失值。这应该取决于您的目标和您对缺失的原因的理解。常见的可能性包括遗漏、插补、创建新的“缺失”水平,以及在您的变量选择中考虑缺失水平。