2017-06-20 35 views
3

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

回答

2

你的兩個模型基本上是相同的模型,但在第二個模型中,你已經強制截取爲零。移除截距不會改變自由度,因爲它會導致參數估計值的所有6個級別都獲得參數估計值,而不是factored_variable的6-1 = 5個級別加上截距。我們將創建等價的線性迴歸模型,然後查看係數。爲了查看模型在其他方面是否相同(並且每個方程相當於迴歸模型),我們將創建等效線性迴歸模型,然後查看係數。

aov1 <- aov(drat ~ factored_variable , data = test_data) 
aov2 <- aov(drat ~ factored_variable - 1, data = test_data) 

lm1 = lm(drat ~ factored_variable , data = test_data) 
lm2 = lm(drat ~ factored_variable - 1 , data = test_data) 

現在看下面的代碼和輸出中顯示的四個模型的係數。 aov1lm1估計factored_variable的截距加5個係數。缺失類別factored_variable(「參考」類別)的係數是截距。其他係數是該類別與參考類別之間的差異。 aov2lm2估計每個類別factored_variable的絕對係數,而不是相對於參考類別的係數。

coefs = data.frame(aov1=coef(aov1), aov2=coef(aov2), lm1=coef(lm1), lm2=coef(lm2)) 
          aov1  aov2   lm1  lm2 
(Intercept)/factored_variable1  3.68142857 3.681429 3.68142857 3.681429 
factored_variable2     0.01757143 3.699000 0.01757143 3.699000 
factored_variable3    -0.61142857 3.070000 -0.61142857 3.070000 
factored_variable4    -0.08542857 3.596000 -0.08542857 3.596000 
factored_variable6    -0.06142857 3.620000 -0.06142857 3.620000 
factored_variable8    -0.14142857 3.540000 -0.14142857 3.540000 

注意,該模型對lm1/aov1lm2/aov2每個具有相同的係數。對於型號aov1lm1,如果將每個factored_variable的係數添加到截距中,您還會看到係數與lm2aov2的係數相同。在每種情況下,該模型估計六個參數。