1

我在 lmer 中拟合了一个模型,其中包括一个三向交互项,其中两个变量是分类变量,一个是连续变量。我正在尝试恢复所有斜率和截距的均值参数化,而不是 lmer 中默认的效果参数化,但我坚持正确的编码。例如(不包括随机效应),使用 iris 数据集我做了一个额外的分类变量(土壤),并用物种、萼片宽度和土壤拟合模型:

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)仍在效果参数化中,我无法计算出正确的编码来获得平均值。我认为这可能吗?任何建议将不胜感激。

4

1 回答 1

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))

您是否也想将 Sepal Width 居中 ( scale(Sepal.Width,scale=FALSE))?

您可能会发现effectslsmeans包也很有用。

于 2015-04-08T20:48:22.237 回答