R 具有固定预测数的Logistic逐步回归

R 具有固定预测数的Logistic逐步回归,r,r-caret,R,R Caret,对于我正在参加的一门课程,我必须执行逻辑逐步回归,以将特征的预测值的数量减少到一个固定的数量,并估计结果模型的准确性 我一直在尝试使用leaps软件包中的regsubsets(),但无法获得其准确性。 现在我正在尝试使用插入符号,因为我可以将其度量设置为“准确性”,但在train()函数中使用method=“glmStepAIC”时,我无法确定预测器的数量,因为它没有调优参数 step.model <- train(Outcome ~ ., data

对于我正在参加的一门课程,我必须执行逻辑逐步回归,以将特征的预测值的数量减少到一个固定的数量,并估计结果模型的准确性

我一直在尝试使用leaps软件包中的
regsubsets()
,但无法获得其准确性。
现在我正在尝试使用插入符号,因为我可以将其度量设置为“准确性”,但在
train()
函数中使用
method=“glmStepAIC”
时,我无法确定预测器的数量,因为它没有调优参数

step.model <- train(Outcome ~ .,
                    data = myDataset,
                    method = "glmStepAIC", 
                    metric = "Accuracy",
                    trControl = trainControl(method = "cv", number = 10),
                    trace = FALSE)

step.model您可以使用
glmulti
包指定在逐步选择中保留的变量数量。在本例中,a列至g列与结果相关,但a列至E列与结果无关。在glmulti中,
confsetsize
是要选择的型号数量,并将
minsize
设置为等于
maxsize
以保留变量数量

library(MASS)
library(dplyr)

set.seed(100)

dat=data.frame(a=rnorm(10000))
for (i in 2:12) {
  dat[,i]=rnorm(10000)
}
names(dat)=c("a", letters[2:7], LETTERS[1:5])

Yy=rep(0, 10000)
for (i in 1:7) {
  Yy=Yy+i*dat[,i]
}
Yy=1/(1+exp(-Yy))
outcome=c()
for (i in 1:10000) {
  outcome[i]=sample(c(1,0), 1, prob=c(Yy[i], 1-Yy[i]))
}
dat=mutate(dat, outcome=factor(outcome))

library(glmulti)

mod=glmulti(outcome ~ .,
        data=dat,
        level=1,
        method="g",
        crit="aic",
        confsetsize=5,
        plotty=F, report=T,
        fitfunction="glm",
        family="binomial",
        minsize=7,
        maxsize=7,
        conseq=3)
输出

mod@objects[[1]]
Call:  fitfunc(formula = as.formula(x), family = "binomial", data = data)

Coefficients:
(Intercept)            a            b            c            d            e            f            g  
   -0.01386      1.11590      1.99116      3.00459      4.00436      4.86382      5.94198      6.89312  

Degrees of Freedom: 9999 Total (i.e. Null);  9992 Residual
Null Deviance:      13860 
Residual Deviance: 2183     AIC: 2199

谢谢,这是非常有用的!我只是有一个疑问,当您使用
glmulti
选择n个功能时,是否有办法直接知道预期的准确性?似乎没有,您需要在结果模型上使用另一个软件包,如
AUC