在 R 中更改方差分析中的默认对比度

Change default contrast in ANOVA in R

假设我们有一个具有 3 个水平的因子 X,即 H、L 和 M。如果我使用 lm(Y~X) 函数在 R 中进行方差分析,则默认设置是将 H 视为参考组或基线。我的问题是是否有内置语法将 L 设置为基线。请注意,我知道我们可以使用指标函数来实现这一目标。我正在寻找的是 lm 函数的一些简单调整。谢谢!

尝试这样的事情

lm(Y~X, contrasts = list(X = "contr.treatment"))

其他选项是

contr.sum
contr.SAS

C 函数执行此操作,例如您的示例

dat <- data.frame(x=sample(c("H","L","M"), 30, rep=T), y=runif(30))
levels(dat$x)
# [1] "H" "L" "M"
lm(y ~ x, data=dat)  # "H" is base

lm(y ~ C(x, base=2), data=dat)  # use "L" as base

我认为relevel对于这种情况非常简单和灵活,例如:

dat <- data.frame(Y=1:3, X=c("H","L","M"))
lm(Y ~ X, data=transform(dat, X=relevel(X,"L") ))

#Call:
#lm(formula = Y ~ X, data = transform(dat, X = relevel(X, "L")))
# 
#Coefficients:
#(Intercept)           XH           XM  
#          2           -1            1 

根据:

contrasts(dat$X)
#  L M
#H 0 0
#L 1 0
#M 0 1

contrasts(relevel(dat$X,"L"))
#  H M
#L 0 0
#H 1 0
#M 0 1