Deviation coding(或称为Effect Coding)是一种contrast编码方式。因为采用该contrast的回归方程的回归系数之和等于0,又称作sum contrast。
Deviation Coding的定义是每个Level的反应变量的均值(Mean_per_Level)与每个Level的反应变量的均值的均值(Grand_Mean)进行对比。
参考dummy coding文中的例子。
如下是每个Level在反应变量weight上的均值(Mean_per_Level)
> tapply(ChickWeight$weight, ChickWeight$Diet, mean)
1 2 3 4
102.6455 122.6167 142.9500 135.2627
对于Deviation Coding,R会创建从第1个Level到第K-1个Level的dummy variable,并将之与Grand_Mean进行对照(求差)而得到该Level上的dummy variable的系数。这个系数的含义是:该Level上的反应变量的均值 与 总体的均值的偏差大小。(注:dummy coding,即treatment,的含义是该Level上的反应变量的均值与第一个Level的均值的偏差大小)
另外,第K个Level的dummy variable是不需要的,因为可以通过其他的dummy variable推导。
我们先来看个例子(还是用dummy coding文中的例子)
> options(contrasts=c("contr.sum", "contr.poly")) #options用以修改默认的treatment contrasts为sum contrasts;注:poly是ordinal factor的默认的contrasts,这里无需修改
> contrasts(ChickWeight$Diet)
[,1] [,2] [,3]
1 1 0 0
2 0 1 0
3 0 0 1
4 -1 -1 -1
> summary(lm(weight~Diet, data=ChickWeight))
Call:
lm(formula = weight ~ Diet, data = ChickWeight)
Residuals:
Min 1Q Median 3Q Max
-103.95 -53.65 -13.64 40.38 230.05
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 125.869 2.986 42.150 < 2e-16 ***
Diet1 -23.223 4.454 -5.214 2.59e-07 ***
Diet2 -3.252 5.380 -0.604 0.54576
Diet3 17.081 5.380 3.175 0.00158 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 69.33 on 574 degrees of freedom
Multiple R-squared: 0.05348, Adjusted R-squared: 0.04853
F-statistic: 10.81 on 3 and 574 DF, p-value: 6.433e-07
这个contrasts matrix用来创建dummy variable并作为赋值的依据。Level4全部赋值为-1,表示不参与对比。
来看模型:
截距就是Grand_Mean
根君Deviation coding的定义,Diet1的系数 -23.223 = Mean_of_Weight_Given_Diet1 - Grand_Mean = 102.6455 - 125.869 = -23.223
也就是说我们想知道在Diet1下的Weight的均值只要把截距+Diet1的系数即可:125.869 +(-23.223) = 102.646
以此类推,可以轻易获知Diet2、Diet3下的weight的均值。
那么,Diet4的系数怎么计算内?推导如下(共4步):
通过推导,Diet4的系数其实就是Diet1,Diet2,Diet3的系数求和的负数,这就是本文开篇称之为Sum Contrast的原因。这样可以轻易算出在Diet4下的weight的均值。
Sum Contrast可以通过每个dummy variable的系数查看在每个Level上的效用的大小(这里的效用是比较与总体的均值的偏差,主要用于比较各个Level的影响程度;而treatment方法下的系数的效用是指当给定该Level后,其他因素不考虑,该Level对反应变量提升(或降低)的偏差)
参考文献
http://www.ats.ucla.edu/stat/r/library/contrast_coding.htm
http://www.jds-online.com/files/JDS-563.pdf