我在lmer中拟合了一个包含三向交互项的模型,其中两个变量是分类的,一个是连续的。我试图恢复所有斜率和截距的均值参数化,而不是效果参数化,这是lmer中的默认值,但我坚持正确的编码。例如(不包括随机效应),使用虹膜数据集我做了一个额外的分类变量(土壤),并使模型与物种,萼片宽度和土壤拟合:
data(iris)
iris$Soil<-c(rep(c("Y","N"),75) #my made up second factor
summary(lm(Sepal.Length~Species*Soil*Sepal.Width-1-Species-Soil-Sepal.Width,data=iris))
给出
的输出Coefficients:
Estimate Std. Error t value Pr(>|t|)
Speciessetosa:SoilN 2.9752 0.7069 4.209 4.60e-05 ***
Speciesversicolor:SoilN 3.0580 0.8293 3.688 0.000324 ***
Speciesvirginica:SoilN 2.7583 0.7543 3.657 0.000362 ***
Speciessetosa:SoilY 1.9934 0.9520 2.094 0.038105 *
Speciesversicolor:SoilY 3.9449 0.7379 5.346 3.63e-07 ***
Speciesvirginica:SoilY 5.7967 0.9106 6.366 2.68e-09 ***
Speciessetosa:Sepal.Width 0.5962 0.2078 2.869 0.004765 **
Speciesversicolor:Sepal.Width 1.0210 0.2984 3.422 0.000819 ***
Speciesvirginica:Sepal.Width 1.2994 0.2488 5.223 6.33e-07 ***
SoilY:Sepal.Width 0.2747 0.3426 0.802 0.424163
Speciesversicolor:SoilY:Sepal.Width -0.5582 0.5255 -1.062 0.289953
Speciesvirginica:SoilY:Sepal.Width -1.3331 0.5240 -2.544 0.012061 *
最后三个斜率值(Soil = Y)仍然在效果参数化中,我无法找到正确的编码来获得平均值。我认为这可能吗?任何建议将不胜感激。
答案 0 :(得分:2)
我不太确定你想要什么,但我认为这样做:
## data(iris) ## not actually necessary (lazy-loading)
iris2 <- transform(iris,
Soil=rep(c("Y","N"),75))
coef(lm(Sepal.Length~0+Species:Soil+Species:Soil:Sepal.Width,
data=iris2))
如果你想减法地做,你可以通过
来做coef(lm(Sepal.Length~Species*Soil*Sepal.Width-
(Species+Soil)*(1+Sepal.Width)-1,
data=iris2))
您是否也要将萼片宽度居中(scale(Sepal.Width,scale=FALSE)
)?
您可能会发现effects
和lsmeans
套餐也很有用。