我試圖在不同模型之間進行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,現在有點清楚