r-如何用编码为对比度和的3级因子来解释glmer输出



我有一个关于glmer模型解释的问题:

我拟合了一个有3个预测因子的模型:PA、PB和PC。PA和PB有两个级别,PC(动词的位置(有3个级别(动词位置1、动词位置2、动词位置3(。

预测因子在R:中使用cont.sum编码为和对比度

constrasts(data$PA) = contr.sum(levels(data$PA) 
constrasts(data$PB) = contr.sum(levels(data$PB) 
constrasts(data$PC) = contr.sum(levels(data$PC)

当我运行该模型时,结果显示了各种显著的主要影响和相互作用,也与PC有关。但我不明白如何解释PC的水平:PC1和PC2。

我用contr.sum(levels(data$PC)检查了PC的级别,得到了以下矩阵:1:1 0-1;2:0 1-1

但告诉了什么?据我所知,PC1包含向量1,0,-1,PC2包含向量0,1,-1。似乎3级是参考——这是正确的吗?如果是这种情况,我如何解释PC1和PC2的主要影响?它们如何指代措辞1、2或3?

非常感谢您的帮助。

这里有一个mtcars数据的示例。

library(dplyr)
data(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)
contrasts(mtcars$cyl) <- contr.sum(n=c("4", "6", "8"))
contrasts(mtcars$cyl) 
#>   [,1] [,2]
#> 4    1    0
#> 6    0    1
#> 8   -1   -1

对比度声明所说的是,第一个回归因子cyl1的系数是cyl = 4的系数,第二个回归因子是cyl = 6的系数,cyl = 8由其他两类的负面影响之和表示。这里的参考不是任何一个类别,而是所有群均值:下面是所有群均值,然后是群均值。

mtcars %>% 
group_by(cyl) %>% 
summarise(mpg = mean(mpg))
#> # A tibble: 3 × 2
#>   cyl     mpg
#>   <fct> <dbl>
#> 1 4      26.7
#> 2 6      19.7
#> 3 8      15.1
mtcars %>% 
group_by(cyl) %>% 
summarise(mpg = mean(mpg)) %>% 
select(mpg) %>% 
pull %>% 
mean
#> [1] 20.50216

在模型摘要中,您可以看到组截距是平均值的平均值。根据上述输出,CCD_ 8的CCD_ 7的平均值为26.7。将cyl1系数与截距相加得到:20.5+6.2=26.7。CCD_ 11组的平均值为19.7。我们可以通过在截距20.5 - .8 = 19.7上加上cyl2系数来得到这一点。最后,CCD_ 15组的CCD_ 14的平均值为15.1。我们通过以下方式获得:CCD_ 16。因此,我们解释以下系数的方式是,四缸车每加仑的预期里程数比所有平均值的平均值高出约6英里。六缸车预计每加仑行驶里程比所有平均值低0.8英里左右。最后,八缸车预计每加仑行驶里程约为-6.2+0.8英里,比所有组平均值低5.4英里。

mod2 <- lm(mpg ~ cyl, data=mtcars)
summary(mod2)
#> 
#> Call:
#> lm(formula = mpg ~ cyl, data = mtcars)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -5.2636 -1.8357  0.0286  1.3893  7.2364 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  20.5022     0.5935  34.543  < 2e-16 ***
#> cyl1          6.1615     0.8167   7.544 2.57e-08 ***
#> cyl2         -0.7593     0.9203  -0.825    0.416    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 3.223 on 29 degrees of freedom
#> Multiple R-squared:  0.7325, Adjusted R-squared:  0.714 
#> F-statistic:  39.7 on 2 and 29 DF,  p-value: 4.979e-09

创建于2022-11-02由reprex包(v2.0.1(

测试省略组的效果

由于我们知道被省略的组的系数是-cyl1 + -cyl2 = -cyl1 - cyl2,我们可以使用car包中的linearHypothesis()函数来测试这是否与平均值显著不同:

car::linearHypothesis(mod2, "-cyl1 - cyl2")
#> Linear hypothesis test
#> 
#> Hypothesis:
#> - cyl1 - cyl2 = 0
#> 
#> Model 1: restricted model
#> Model 2: mpg ~ cyl
#> 
#>   Res.Df    RSS Df Sum of Sq     F    Pr(>F)    
#> 1     30 806.86                                 
#> 2     29 301.26  1     505.6 48.67 1.139e-07 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

在这里,我们看到它是。

最新更新