我试图在不同模型之间进行ANCOVA(方差分析和线性回归之间的混合),我遇到了一些问题。我想我把它缩小到一个问题(或者我不明白或做错的地方)方差分析:为了比较两个模型,他们需要有不同的残差Df(自由度)。为什么在R中包含Anova因子去除变量不会降低自由度?
举个例子,让我们考虑中的R mtcars数据:
library(car)
test_data <- mtcars %>% mutate(factored_variable = as.factor(carb))
model_1 <- aov(drat ~ factored_variable , data = test_data)
Anova(model_1, type = "III")
# Anova Table (Type III tests)
#
# Response: drat
# Sum Sq Df F value Pr(>F)
# (Intercept) 94.870 1 313.3656 0.0000000000000005038 ***
# factored_variable 0.991 5 0.6546 0.6607
# Residuals 7.871 26
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
model_2 <- aov(drat ~ factored_variable - 1, data = test_data)
Anova(model_2, type = "III")
# Anova Table (Type III tests)
#
# Response: drat
# Sum Sq Df F value Pr(>F)
# factored_variable 414.92 6 228.42 < 0.00000000000000022 ***
# Residuals 7.87 26
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
所以,我只是做是创建两个模型来预测DRAT值。首先用因子(Df =等级数 - 1 = 5)和截距(Df = 1总是)取变量,所以使用6个Df。 我删除了第二个模型中的截距,所以我只有变量。我期望那个变量只使用5个Df,但显然不是这样的,因为Anova说有6个。
因此我的问题是:为什么最后一个Df 6而不是5?我想这与变量有因素有关,但我不明白为什么。难以比较两种涉及这种变量的模型吗?
编辑:谢谢你的回答。我认为我误解了理论而不是R,现在有点清楚