我有一个非常有趣的问题。我不确定问题是否是我对协方差分析(ancova)的理解,或者它在R内。可能前者是这里发生的事情。总之,我担心的是,常规的ancova应该输出相同的结果(平方和F值的总和),好像我会手工计算(做anova和他们回归错误术语),对吧?我们来举个例子:
假设这个基本数据集
> datas
Pen Sex Ration X Y
1 1 M A 38 9.52
2 1 F A 48 9.94
3 1 M B 39 8.51
4 1 F B 48 10.00
5 1 M C 48 9.11
6 1 F C 48 9.75
7 2 M A 35 8.21
8 2 F A 32 9.48
9 2 M B 38 9.95
10 2 F B 32 9.24
11 2 M C 37 8.50
12 2 F C 28 8.66
13 3 M A 41 9.32
14 3 F A 35 9.32
15 3 M B 46 8.43
16 3 F B 41 9.34
17 3 M C 42 8.90
18 3 F C 33 7.63
>
现在,执行ancova
ancova1 = lm(Y ~ Pen + X + Sex + Ration, data=datas)
> anova(ancova1)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
Pen 2 1.3403 0.67017 2.1851 0.1588
X 1 0.7337 0.73372 2.3923 0.1502
Sex 1 0.8773 0.87728 2.8604 0.1189
Ration 2 1.1741 0.58703 1.9140 0.1935
Residuals 11 3.3737 0.30670
请记住那些F值(Fsex和Fration)。现在,让我们进行手动计算。
首先,Y的anova
Yreg = lm(Y ~ Pen + Sex + Ration, data=datas)
> anova(Yreg)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
Pen 2 1.3403 0.67017 1.7386 0.2172
Sex 1 0.4705 0.47045 1.2204 0.2909
Ration 2 1.0626 0.53129 1.3783 0.2892
Residuals 12 4.6257 0.38548
第二,X的anova
Xreg = lm(X ~ Pen + Sex + Ration, data=datas)
> anova(Xreg)
Analysis of Variance Table
Response: X
Df Sum Sq Mean Sq F value Pr(>F)
Pen 2 374.78 187.389 8.4325 0.005162 **
Sex 1 20.06 20.056 0.9025 0.360854
Ration 2 18.78 9.389 0.4225 0.664787
Residuals 12 266.67 22.222
第三,让我们在errorX上回归errorY,因此我们得到协变量调整的斜率。
errorY = resid(Yreg)
errorX = resid(Xreg)
errorreg = lm(errorY ~ errorX)
> coef(errorreg)
(Intercept) errorX
5.465170e-18 6.852083e-02
您可能需要注意,errorX的斜率与我们的第一个ancova(即0.06852083)计算的斜率相同。
现在,是时候改变变量了:
Z = datas$Y - 0.06852083*(datas$X)
datas = cbind(datas, Z)
最后,让我们在Z
中执行anovaZreg = lm(Z ~ Pen + Sex + Ration, data=datas)
> anova(Zreg)
Analysis of Variance Table
Response: Z
Df Sum Sq Mean Sq F value Pr(>F)
Pen 2 1.0602 0.53009 1.8855 0.19406
Sex 1 0.9856 0.98556 3.5056 0.08573 .
Ration 2 1.1821 0.59105 2.1023 0.16491
Residuals 12 3.3737 0.28114
在这里,我怀疑。性别和定额的F值不应该与从我们的第一个常规ancova获得的F值相同吗?它们看起来不同,尽管残差是相同的。 Sum Sq。对于性和理性而言,在anova上的anova与ancova中的不同。这是为什么?
好吧,我明白Pen的Sum Sq会有所不同,一次是在第一种情况下,我没有通过协变量X来调整Pen效果。但是,我不会期望Sex和Ration有不同的值。
这是一个R问题,还是我在这里遗漏了什么?
非常感谢您的关注!
已更新
好的,我在这里遇到了问题。实际上,问题就像Dason所说的那样 - 不同的自由度和更多的东西 - 协变量X对Y的影响的一部分没有考虑变量Z的变化。似乎X对Y的遗留效应( 0.4128)。请注意(现在Zreg anova与Y中的ancova相同):
Zreg = lm(Z ~ X + Pen + Ration + Sex + interaction(Ration, Sex), data=datas)
> anova(Zreg)
Analysis of Variance Table
Response: Z
Df Sum Sq Mean Sq F value Pr(>F)
X 1 0.4128 0.41277 1.3459 0.2706
Pen 2 0.7637 0.38187 1.2451 0.3255
Sex 1 0.8773 0.87728 2.8604 0.1189
Ration 2 1.1741 0.58703 1.9140 0.1935
Residuals 11 3.3737 0.30670
或许,在Z中的anova和Y中的anova之间进行更彻底的比较。但问题仍然是......在一般线性模型上的最小二乘法,其中分类和连续协变量与errorX和errorX上的errorY回归不同然后执行变量的变化(找到Z并在Z中进行anova)?从理论上讲,我猜它们看起来应该是一样的。如果没有,我希望至少他们会产生相同的效果解释。