【问题标题】:R forward selection forcing variables to stay in equationR前向选择迫使变量保持在方程中
【发布时间】:2017-04-18 17:12:25
【问题描述】:

我正在运行包含 755 个观察值和 16 个变量的逻辑回归。我正在使用 glm 函数进行变量选择。 glm 找到了 8 个变量的最佳模型。我希望这些变量被强制保留并使用 glm 和 step 找到下一个最好的 9 变量模型(见下文)。我想这样做,直到我对 9-16 个变量的模型进行了前向选择 (选择了所有 16 个变量)。

我的代码看起来像

饱和模型

full=glm(PREVAP ~ SEX + TOTCHOL + AGE + SYSBP + DIABP + as.factor(CURSMOKE)    
+ CIGPDAY + BMI + as.factor(DIABETES) + as.factor(BPMEDS) + HEARTRTE + 
  GLUCOSE + as.factor(EDUC) + TIME + HDLC + LDLC, data=training, 
  family=binomial(link="logit"))
summary(full)
anova(full,test="Chisq")
full.forward <- step(null,     
scope=list(lower=null,upper=full),direction="forward", 
      family=binomial(link="logit"))

这给了我一个包含 8 个因素的模型 我需要在下一个模型中强制这些因素,并使用前向选择找到一个包含 9 个因素的模型。怎么办?

有人告诉我 bestglm 和 glmnet 也允许这样做,但我不知道这些包。

你能帮忙吗?这些包有很多选择。

真诚地, 玛丽·A·马里恩

【问题讨论】:

    标签: r regression


    【解决方案1】:

    您可以通过设置step 函数的objectscope 参数来做到这一点。

    这里,使用 Pima Indian Women 数据集中的糖尿病:

    library(MASS)
    data = rbind(Pima.te, Pima.tr)
    data$type = ifelse(data$type == "Yes", 1, 0)
    
    full = glm(type~., family = "binomial", data = data)
    
    summary(full)
    anova(full, test = "Chisq")
    
    nothing = glm(type~1, data = data, family = "binomial")
    
    full.forward = step(nothing,
                        scope = list(lower = formula(nothing),
                                     upper = formula(full)),
                        direction = "forward")
    
    forward = step(full.forward,
                   scope = list(lower = formula(full.forward),
                                upper = formula(full)),
                   direction = "forward")
    

    【讨论】:

    • 是否可以做类似 glm(full.forward,data=training, family=binomial(link="logit")) 的事情?我收到一个错误。 eval 中的错误(expr,envir,enclos):找不到对象“类型”我遇到了未保留 family=binomial logit 链接的问题。
    • 试试glm(formula(full.forward), data=training, family=binomial(link="logit"))
    猜你喜欢
    • 1970-01-01
    • 2021-05-21
    • 2013-06-19
    • 2020-03-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    相关资源
    最近更新 更多