1

我有一个具有三向交互的 GLMM(参见下面的“m”)。交互项包括一个连续 (A) 和两个分类 (B & C) 固定因子。因子 B 和 C 各有 2 个水平,0 和 1。该模型还包括两个随机因子 (a 和 b) 和一个空间协方差项,以解释空间自相关:

library(glmmTMB)

df$pos <- numFactor(x = df$LONG, y = df$LAT)
df$group <- factor(1)    

m = glmmTMB(y ~ A * B * C + (1|a) + (1|b) + exp(0 + pos|group), data = df, REML = TRUE) 

我想制作一个有四个面板(2x2)的图形,其中连续固定效应(A)沿着所有四个面板的 x 轴绘制,第一类固定效应(B)的两个水平被绘制在两列中,第二个类别固定效应 (C) 的两个水平绘制在两行中。即我希望面板显示 A x B:0 x C:0(右上)、A x B:1 x C:0(左上)、A x B0 x C1(右下)的交互,和 A x B:1 x C:1(左下)。

我使用以下代码使用 sjPlot::plot_model 函数绘制了这种交互:

library(sjPlot)
library(ggplot2)

# Simplify plot aesthetics
fig <- theme_bw() + theme(panel.grid.minor=element_blank(), panel.grid.major=element_blank(), panel.background=element_blank()) + 
  theme(strip.background=element_blank(), strip.text.y = element_text()) + theme(legend.background=element_blank()) + 
  theme(legend.key=element_blank()) + theme(panel.border = element_rect(colour="black", fill=NA))

plot_model(m, type = "pred", terms =c("A","B","C"),
           show.data = TRUE,
           title = "")+ 
           fig

这将生成一个 1x2 面板图,其中 C 的两个级别绘制在单独的列中,B 的两个级别绘制为每个面板中的两个单独的斜率(点击下面的链接查看图像):

plot_model 输出

Q1:如何修改我的 plot_model 代码以生成上述 2x2 绘图?

Q2:我还想更改每个分类因素的两个级别的标签,即我想显示文本而不是简单的“0”和“1”。我知道这可以通过对数据框本身进行更改并重新运行模型来完成,但这对我来说是不现实的,原因有几个。

谢谢你。

4

0 回答 0