最近,我遇到了一个问题,即从模型中剔除所有不重要的变量需要花费很多时间。我尝试编写一个函数,但我很乐意接受一些建议。最好的方法是,如果函数一个接一个地删除变量,总是删除P值最高的变量,直到所有变量都在5%上显著。
这就是我的“职能”:
x <- summary(model_test1)
x <- x$coefficients
x <- as.data.frame(x)
max_p <- function(x) {
nameofmax <- rownames(which(x$`Pr(>|t|)` == max(x$`Pr(>|t|)`), arr.ind = TRUE))
return(nameofmax)
}
1条答案
按热度按时间iszxjhcz1#
首先,这是一个简单的(可以说是天真的)逐步减少的方法。肯定有更好的方法在那里,其中大部分是在统计课上教授的(高级或至少是“健壮”的课)。
但在此期间,试试这个。
为了让事情开始,我“决不”允许拦截被丢弃;这是一个决定,而且通常是一个安全的赌注,但可能会有一些用途,人们可以考虑删除它。当你达到这一点时,我建议你的工具箱中会有更多的资源来分析它。(所以我现在总是保留它。)
mtcars
上的演示:如果你想知道它每一步都做了什么,那么就做
verbose
ly。我应该注意到,在这个模型中,
disp
(排量)对确定燃油效率(mpg
)没有影响,这似乎是违反直觉的。我还没有在这个数据集上深入研究过这个问题,但人们应该小心使用这个“总是降低最高p值”,而不是总是绝对肯定地接受它的结果。