hal*_*ass 3 regression r anova categorical-data
包含一个或多个因子变量的多变量回归模型的R输出不会自动包括模型中整个因子变量的显着性的似然比检验(LRT).例如:
fake = data.frame( x1=rnorm(100), x2=sample(LETTERS[1:4],
size=100, replace=TRUE), y=rnorm(100) )
head(fake)
x1 x2 y
1 0.6152511 A 0.7682467
2 -0.8215727 A -0.5389245
3 -1.3287208 A -0.1797851
4 0.5837217 D 0.9509888
5 -0.2828024 C -0.9829126
6 0.3971358 B -0.4895091
m = lm(fake$y ~ fake$x1 + fake$x2)
summary(m)
Run Code Online (Sandbox Code Playgroud)
如果我们想测试x2
模型中整个变量的重要性,我们可以拟合简化模型m.red
并使用LRT:
m.red = lm(fake$y ~ fake$x1)
anova(m, m.red, test="LRT")
Run Code Online (Sandbox Code Playgroud)
但是如果你在模型中有很多因子变量,那么一遍又一遍地做这个就变得荒谬了.我不得不相信有一些内置的方法吗?
我想你正在寻找drop1
:
drop1(m,test="Chisq")
## Single term deletions
## Model:
## fake$y ~ fake$x1 + fake$x2
## Df Sum of Sq RSS AIC Pr(>Chi)
## <none> 79.814 -12.547
## fake$x1 1 0.33741 80.152 -14.125 0.5160
## fake$x2 3 2.88510 82.699 -14.996 0.3142
Run Code Online (Sandbox Code Playgroud)