2017-06-20 46 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的系数相同。在每种情况下,该模型估计六个参数。