1 statistics r linear-regression
假设我有4个预测变量x1,x2,x3,x4.我希望有一个代码可以一次删除每个预测器.
例如
set.seed(10)
y<-c(1:20)
x1<-c(1:20)*runif(20,min=0,max=2)
x2<-c(1:20)*runif(20,min=0,max=2)
x3<-c(1:20)*runif(20,min=0,max=2)
x4<-c(1:20)*runif(20,min=0,max=2)
lm1<- lm(y~x1+x2+x3+x4) #full model
#drop each predictor once
lm2.1<- lm(y~x2+x3+x4)
lm2.2<- lm(y~x1+x3+x4)
lm2.3 <- lm(y ~ x1+x2+x4)
lm2.4 <- lm(y ~ x1+x2+x3)
Run Code Online (Sandbox Code Playgroud)
等等
drop1如果您想查看每个术语的贡献,可以使用:
drop1(lm1)
# Single term deletions
#
# Model:
# y ~ x1 + x2 + x3 + x4
# Df Sum of Sq RSS AIC
# <none> 104.15 43.002
# x1 1 15.465 119.61 43.771
# x2 1 64.166 168.31 50.602
# x3 1 29.485 133.63 45.987
# x4 1 0.910 105.06 41.176
Run Code Online (Sandbox Code Playgroud)
这类似于anova(lm1, lm2.1, lm2.2, lm2.3, lm2.4).