library(MASS)
head(dta <- cats)
##   Sex Bwt Hwt
## 1   F 2.0 7.0
## 2   F 2.0 7.4
## 3   F 2.0 9.5
## 4   F 2.1 7.2
## 5   F 2.1 7.3
## 6   F 2.1 7.6

dummy code

lm()預設的比對方式是dummy coding,截距是參照組(Sex = F)的平均值。
迴歸係數是操弄組(Sex = M)的平均值減去截距所得的數值。

coef(lm(Bwt ~ Sex, data = cats))
## (Intercept)        SexM 
##   2.3595745   0.5404255
mean(subset(cats, Sex == "F")$Bwt)
## [1] 2.359574
mean(subset(cats, Sex =="M")$Bwt) - mean(subset(cats, Sex == "F")$Bwt)
## [1] 0.5404255

effect code

lm()中加入contrasts = list(Sex = “contr.sum”),會將dummy coding改成effect coding。
此時截距等於未加權總平均數(Unweighted grandmean),而迴歸係數為截距減去操弄組的細格平均數(Cell mean)所得的值。

coef(lm(Bwt ~ Sex, data = cats, contrasts = list(Sex = "contr.sum")))
## (Intercept)        Sex1 
##   2.6297872  -0.2702128
(mean(subset(cats, Sex =="M")$Bwt) + mean(subset(cats, Sex == "F")$Bwt))/2
## [1] 2.629787
(mean(subset(cats, Sex =="M")$Bwt) + mean(subset(cats, Sex == "F")$Bwt))/2 - mean(subset(cats, Sex =="M")$Bwt)
## [1] -0.2702128

END