R中的ANCOVA:ANCOVA与误差回归=它们是否应该相同?
我有一个问题很吸引我。我不确定问题是在于我对协方差分析(ancova)的理解,还是在R范围内。也许前者就是这里发生的事情。总之,我关心的是,常规ancova应该输出相同的结果(平方和F值之和),就像我手工计算一样(进行方差分析并回归误差项),对吗?让我们举个例子: 假设这个基本数据集R中的ANCOVA:ANCOVA与误差回归=它们是否应该相同?,r,covariance,anova,R,Covariance,Anova,我有一个问题很吸引我。我不确定问题是在于我对协方差分析(ancova)的理解,还是在R范围内。也许前者就是这里发生的事情。总之,我关心的是,常规ancova应该输出相同的结果(平方和F值之和),就像我手工计算一样(进行方差分析并回归误差项),对吗?让我们举个例子: 假设这个基本数据集 > datas Pen Sex Ration X Y 1 1 M A 38 9.52 2 1 F A 48 9.94 3 1 M
> 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
>
现在,做一个安科娃
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进行方差分析
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的方差分析
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中进行方差分析
Zreg = 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值相同吗?尽管残差相同,但它们看起来不同。在方差分析中,性别和日粮的平方和与ancova中的平方和不同。为什么呢
好的,我知道Pen的平方和是不同的,在第一种情况下,我没有用协变量X调整Pen效应。但是,我不希望性别和定量的值不同
这是R问题还是我遗漏了什么
非常感谢您的关注
已更新
好的,我这里有问题。事实上,这个问题就像Dason所说的——不同的自由度等等——协变量X对Y的影响的一部分没有考虑变量Z的变化。似乎X对Y有一个遗留效应(0.4128)。注意(现在Zreg anova在Y中看起来与ancova相同):
也许,更彻底的比较应该是Z和Y的方差分析。但还有一个问题。。。具有分类和连续协变量的一般线性模型上的最小二乘法是否不同于errorX上的errorY回归,然后执行变量变化(找到Z并在Z中进行方差分析)?理论上,我想它们应该看起来一样。如果不是的话,我希望它们至少能产生相同的效果解释 一个好的开始总是看你的自由度。如果自由度不匹配,那么测试就真的不可能是一样的…@Dason:好吧,这是因为在安科娃我有共价,所以我失去了1 d.f。然而,尽管如此,我得到的性别和定量的平方和不同。但请注意,即使在这种情况下,我仍然有相同的剩余。。。为什么我的平方和不同,但残差相同?
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