问题描述
假设您已在R
中拟合了具有截距项的模型。当您在模型上调用anova
函数时,在添加拦截项之前,它甚至不会显示空模型,甚至不会显示仅包含拦截的模型。下面是使用简单线性回归的示例。
#Generate random dataset
set.seed(1)
n <- 100
b0 <- 10
b1 <- 3
sig <- 4
xx <- 10*runif(n)
ee <- sig*rnorm(n)
DATA <- data.frame(x = xx,y = b0 + b1*xx + ee)
#Fit a linear model
MODEL <- lm(y ~ 1 + x,data = DATA)
#Show the ANOVA
anova(MODEL)
Analysis of Variance Table
Response: y
Df Sum Sq Mean Sq F value Pr(>F)
x 1 6922.1 6922.1 488.52 < 2.2e-16 ***
Residuals 98 1388.6 14.2
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
我想为模型生成ANOVA表,其中包含两个额外的预备行,从使用空模型没有截取项的第一行开始,然后使用该模型显示第二行与仅拦截项。然后,上面显示的其余输出将从ANOVA表的第三行开始。
最简单的方法是什么?
解决方法
MODEL1 <- lm(y ~ -1,data = DATA)
MODEL2 <- lm(y ~ 1,data = DATA)
MODEL3 <- lm(y ~ x,data = DATA)
anova(MODEL1,MODEL2,MODEL3)