我正在使用R对我的数据集执行逻辑回归。我的数据集有50多个变量。
挑战在于编写R中的代码,可以评估某些记录和变量的统计有效性(例如,p值> .05),并根据诸如此类的参数从模型中消除记录和变量。
是否有任何已实施的方法可以执行此操作?任何帮助或建议将不胜感激。谢谢。
答案 0 :(得分:2)
这是一个基本函数的实现,它将采用一组预测变量并逐步消除这些变量,直到找到只有预测值低于所需显着性水平的线性模型。
reverse.step <- function(y, b, df, alpha=0.05) {
# y = dependent variable name (as character) e.g. 'Height',
# b = vector of explanatory variable names (as characters) e.g.
# c('x1','x2','x3',...), # df = data frame
sum <- summary(lm(paste(paste(y,' ~ ', sep=''),
paste(b, collapse='+'), sep=''), data=df))
cat(b)
cat("\n")
pvals <- sum$coeff[2:nrow(sum$coeff),4]
if (pvals[which.max(pvals)] < alpha) {
return(sum)
}
new.b <- names(pvals[-which.max(pvals)])
if (length(new.b) == 0 | length(new.b) == length(b)) {
return(sum)
} else {
return(reverse.step(y, new.b, df, alpha))
}
}
它可能不是最强大的功能,但它会让你开始。
您还可以查看库leaps中的regsubsets方法。