【发布时间】:2018-11-04 02:41:58
【问题描述】:
我正在使用包含大约 40 个变量的数据集构建逻辑回归模型。在构建这些类型的模型时,我使用的第一步是使用 DV 单变量运行每个变量(Hosmer、Lemeshow 和 Sturdivant,2013 年)。我已经构建了一个函数来为我执行此操作并返回每个函数的 p 值。
Fit Univariate logistic regression model for each covariate
uni.log2 <- function(x) {
log.mod2 <- glm(Renewf ~ x, data = dt.train2, family = binomial())
return(coef(summary(log.mod2))[,4]) #get p-values only
}
然后我将此函数应用于我的 dt 中的每个选定列
#apply function to selected IV's
apply(X = dt.train2[c(3:16)], MARGIN = 2, FUN = uni.log2)
我想做的下一步是筛选这些变量的阈值为 p
有谁知道如何做到这一点?
我可以使用以下代码设置阈值并从多变量模型中复制名称列表:
threshold <- 0.001
signif_form <- as.formula(paste("Renewf ~
",paste(names(which((summary(log.mod2)$coefficients[2:
(nrow(summary(log.mod2)$coefficients)), 4] < threshold) == TRUE)), collapse
= "+")))
但是,我不知道如何从一系列单变量回归模型中粘贴名称。如果有人知道如何做到这一点,我将不胜感激。
提前谢谢你!
【问题讨论】:
-
我可以礼貌地建议您尝试不同的方法吗? stats.stackexchange.com/questions/20836/…
标签: r model regression logistic-regression feature-selection