我有一个具有三向交互的 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 的两个级别绘制为每个面板中的两个单独的斜率(点击下面的链接查看图像):
Q1:如何修改我的 plot_model 代码以生成上述 2x2 绘图?
Q2:我还想更改每个分类因素的两个级别的标签,即我想显示文本而不是简单的“0”和“1”。我知道这可以通过对数据框本身进行更改并重新运行模型来完成,但这对我来说是不现实的,原因有几个。
谢谢你。