Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的ANCOVA:ANCOVA与误差回归=它们是否应该相同?_R_Covariance_Anova - Fatal编程技术网

R中的ANCOVA:ANCOVA与误差回归=它们是否应该相同?

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

我有一个问题很吸引我。我不确定问题是在于我对协方差分析(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      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