Reputation: 21432
I'm plotting a mixed-effects model m_0
using plot_model
(data below):
library(lme4)
library(sjPlot)
m_0 <- glmer(Preselected_0 ~ Shift_Altnt_Ratio_Q + (Shift_Altnt_Ratio_Q | File / Person_anon), family = "binomial",
data = df)
summary(m_0)
plot_model(m_0, type = "eff", terms = c("Shift_Altnt_Ratio_Q"), ci.lvl = .68, line.size = 1.2,
title = ""
)
There are two issues with the resulting plot:
(i) the x-axis does not extend to 1, which it should
(ii) the random effects (Person_anon
nested in File
) are not plotted as individual lines
What I am looking for is shown in this graph (obtained from very convoluted base R code), where the thin grey lines represent the random effects:
The thin grey lines are added using this for
loop:
for (i in seq(nrow(ranef(m_0)[[1]]))) {
lines(seq(0, 1, 0.05),
# -----> Fixed effects intercept, read off of summary
plogis(-2.0987 + ranef(m_0)[[1]][i,1] +
# ---------------> Fixed effects slope, read off of summary
(seq(0, 1, 0.05)*(12.9791 +ranef(m_0)[[1]][i,2]))
),
col=rgb(0,0,0,70,maxColorValue=255))
}
How can the two issue be fixed for the sjPlot
plot, especially how can the random effects be added to it?
Data:
df <- structure(list(Shift_Altnt_Ratio_Q = c(0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.333333333333333,
0, 0.333333333333333, 0, 0.25, 0.333333333333333, 0, 0, 0, 0,
0.25, 0, 0, 0, 0.333333333333333, 0, 0, 0, 0, 0, 0.4, 0.4, 0,
0, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.333333333333333,
0, 0, 0, 0, 0, 0.2, 0, 0.333333333333333, 0, 0.2, 0.333333333333333,
0, 0, 0.428571428571429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0.444444444444444, 0.333333333333333, 0, 0, 0, 0, 0, 0,
0, 0.333333333333333, 0, 0, 0, 0, 0, 0, 0, 0.4, 0, 0, 0, 0, 0.4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0, 0, 0, 0, 0, 0.25, 0, 0.333333333333333,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.272727272727273,
0, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0.4, 0, 0.4, 0.333333333333333,
0.333333333333333, 0.4, 0, 0.333333333333333, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.222222222222222, 0, 0,
0, 0, 0.333333333333333, 0, 0, 0, 0, 0, 0, 0.375, 0.454545454545455,
0, 0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 0,
0, 0, 0, 0, 0, 0.333333333333333, 0.333333333333333, 0, 0, 0.4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.333333333333333,
0, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0.571428571428571), Preselected_0 = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L,
1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L,
2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L,
2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L,
2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L), levels = c("YES",
"NO"), class = "factor"), File = c("F01", "F01", "F01", "F01",
"F01", "F01", "F01", "F01", "F01", "F01", "F01", "F01", "F01",
"F01", "F01", "F01", "F01", "F01", "F01", "F01", "F01", "F01",
"F01", "F01", "F01", "F01", "F04", "F04", "F04", "F04", "F04",
"F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04",
"F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04",
"F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04",
"F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04",
"F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04",
"F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04", "F04",
"F04", "F04", "F04", "F04", "F04", "F07", "F07", "F07", "F07",
"F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07",
"F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07",
"F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07",
"F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07",
"F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07", "F07",
"F07", "F07", "F07", "F07", "F08", "F08", "F08", "F08", "F08",
"F08", "F08", "F08", "F08", "F08", "F08", "F08", "F08", "F08",
"F08", "F08", "F08", "F08", "F08", "F08", "F08", "F08", "F08",
"F08", "F08", "F08", "F08", "F08", "F08", "F08", "F08", "F08",
"F08", "F08", "F08", "F08", "F08", "F08", "F08", "F12", "F12",
"F12", "F12", "F12", "F12", "F12", "F12", "F12", "F12", "F12",
"F12", "F12", "F12", "F12", "F12", "F12", "F12", "F12", "F12",
"F12", "F12", "F12", "F12", "F12", "F12", "F12", "F12", "F16",
"F16", "F16", "F16", "F16", "F16", "F16", "F16", "F16", "F16",
"F16", "F16", "F16", "F16", "F16", "F16", "F16", "F16", "F16",
"F18", "F18", "F18", "F18", "F18", "F18", "F18", "F18", "F18",
"F18", "F18", "F18", "F18", "F18", "F18", "F18", "F18", "F18",
"F18", "F18", "F18", "F18", "F18", "F20", "F20", "F20", "F20",
"F20", "F20", "F20", "F20", "F20", "F20", "F20", "F20", "F20",
"F20", "F20", "F20", "F20", "F20", "F20", "F22", "F22", "F22",
"F22", "F22", "F22", "F22", "F22", "F22", "F22", "F23", "F23",
"F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23",
"F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23",
"F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23",
"F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23", "F23",
"F23", "F19", "F19", "F19", "F19", "F19", "F19", "F19", "F19",
"F19", "F19", "F19", "F16"), Person_anon = c("GGGGGGGGGGGGGGGl",
"IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "IIIIIIIIIIIIt",
"IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "GGGGGGGGGGGGGGGl", "IIIIIIIIIIIIt",
"IIIIIIIIIIIIt", "KKKKKKKKKKr", "IIIIIIIIIIIIt", "KKKKKKKKKKr",
"IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "GGGGGGGGGGGGGGGl",
"IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "KKKKKKKKKKr", "IIIIIIIIIIIIt",
"IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "IIIIIIIIIIIIt", "IIIIIIIIIIIIt",
"IIIIIIIIIIIIt", "DDDDDDDDDDDDe", "AAAAAAAAAAAAAn", "DDDDDDDDDDDDe",
"DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "CCCCCCCCCCx", "CCCCCCCCCCx",
"DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"DDDDDDDDDDDDe", "AAAAAAAAAAAAAn", "DDDDDDDDDDDDe", "CCCCCCCCCCx",
"CCCCCCCCCCx", "CCCCCCCCCCx", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"AAAAAAAAAAAAAn", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "AAAAAAAAAAAAAn",
"DDDDDDDDDDDDe", "CCCCCCCCCCx", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "CCCCCCCCCCx", "DDDDDDDDDDDDe",
"AAAAAAAAAAAAAn", "CCCCCCCCCCx", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "CCCCCCCCCCx", "CCCCCCCCCCx",
"CCCCCCCCCCx", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"CCCCCCCCCCx", "DDDDDDDDDDDDe", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"CCCCCCCCCCx", "AAAAAAAAAAAAAn", "CCCCCCCCCCx", "DDDDDDDDDDDDe",
"CCCCCCCCCCx", "DDDDDDDDDDDDe", "CCCCCCCCCCx", "DDDDDDDDDDDDe",
"CCCCCCCCCCx", "LLLLLLLLLLLLLn", "LLLLLLLLLLLLLn", "LLLLLLLLLLLLLn",
"CCCCCCCCCCx", "LLLLLLLLLLLLLn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"AAAAAAAAAAAAAn", "LLLLLLLLLLLLLn", "LLLLLLLLLLLLLn", "AAAAAAAAAAAAAn",
"AAAAAAAAAAAAAn", "CCCCCCCCCCx", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"AAAAAAAAAAAAAn", "CCCCCCCCCCx", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"AAAAAAAAAAAAAn", "CCCCCCCCCCx", "AAAAAAAAAAAAAn", "LLLLLLLLLLLLLn",
"LLLLLLLLLLLLLn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "LLLLLLLLLLLLLn",
"AAAAAAAAAAAAAn", "CCCCCCCCCCx", "CCCCCCCCCCx", "CCCCCCCCCCx",
"AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "CCCCCCCCCCx",
"AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"CCCCCCCCCCx", "CCCCCCCCCCx", "LLLLLLLLLLLLLn", "AAAAAAAAAAAAAn",
"CCCCCCCCCCx", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn", "AAAAAAAAAAAAAn",
"AAAAAAAAAAAAAn", "LLLLLLLLLLLLLn", "LLLLLLLLLLLLLo", "LLLLLLLLLLLLLo",
"LLLLLLLLLLLLLn", "LLLLLLLLLLLLLn", "LLLLLLLLLLLLLo", "NNNNNNNNNNNr",
"NNNNNNNNNNNr", "LLLLLLLLLLLLLn", "LLLLLLLLLLLLLn", "NNNNNNNNNNNr",
"NNNNNNNNNNNr", "NNNNNNNNNNNr", "NNNNNNNNNNNr", "NNNNNNNNNNNr",
"LLLLLLLLLLLLLo", "LLLLLLLLLLLLLo", "NNNNNNNNNNNr", "LLLLLLLLLLLLLo",
"NNNNNNNNNNNr", "NNNNNNNNNNNr", "NNNNNNNNNNNr", "NNNNNNNNNNNr",
"NNNNNNNNNNNr", "LLLLLLLLLLLLLn", "LLLLLLLLLLLLLn", "NNNNNNNNNNNr",
"LLLLLLLLLLLLLo", "LLLLLLLLLLLLLo", "LLLLLLLLLLLLLo", "LLLLLLLLLLLLLn",
"LLLLLLLLLLLLLo", "NNNNNNNNNNNr", "NNNNNNNNNNNr", "LLLLLLLLLLLLLn",
"LLLLLLLLLLLLLn", "NNNNNNNNNNNr", "LLLLLLLLLLLLLn", "NNNNNNNNNNNr",
"NNNNNNNNNNNr", "LLLLLLLLLLLLLo", "LLLLLLLLLLLLLo", "CCCCCCCCCCx",
"LLLLLLLLLLLLLo", "DDDDDDDDDDDDe", "CCCCCCCCCCx", "LLLLLLLLLLLLLo",
"LLLLLLLLLLLLLo", "LLLLLLLLLLLLLo", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"DDDDDDDDDDDDe", "CCCCCCCCCCx", "DDDDDDDDDDDDe", "CCCCCCCCCCx",
"CCCCCCCCCCx", "CCCCCCCCCCx", "CCCCCCCCCCx", "DDDDDDDDDDDDe",
"CCCCCCCCCCx", "CCCCCCCCCCx", "DDDDDDDDDDDDe", "DDDDDDDDDDDDe",
"DDDDDDDDDDDDe", "DDDDDDDDDDDDe", "LLLLLLLLLLLLLo", "DDDDDDDDDDDDe",
"DDDDDDDDDDDDe", "CCCCCCCCCCx", "CCCCCCCCCCx", "AAAAAAAAAAo",
"AAAAAAAAAAo", "AAAAAAAAAAo", "AAAAAAAAAAo", "AAAAAAAAAAo", "AAAAAAAAAAo",
"CCCCCCCCCCx", "CCCCCCCCCCCCCCx", "AAAAAAAAAAo", "AAAAAAAAAAo",
"AAAAAAAAAAo", "AAAAAAAAAAo", "AAAAAAAAAAo", "AAAAAAAAAAo", "CCCCCCCCCCCCCCx",
"AAAAAAAAAAo", "CCCCCCCCCCCCCCx", "SSSSSSSSSSd", "SSSSSSSSSSd",
"GGGGGGGGGGGGGi", "SSSSSSSSSSd", "SSSSSSSSSSd", "AAAAAAAAAAo",
"SSSSSSSSSSd", "SSSSSSSSSSd", "AAAAAAAAAAo", "SSSSSSSSSSd", "AAAAAAAAAAo",
"SSSSSSSSSSd", "SSSSSSSSSSd", "SSSSSSSSSSd", "AAAAAAAAAAo", "SSSSSSSSSSd",
"GGGGGGGGGGGGGi", "GGGGGGGGGGGGGi", "GGGGGGGGGGGGGi", "GGGGGGGGGGGGGi",
"GGGGGGGGGGGGGi", "GGGGGGGGGGGGGi", "SSSSSSSSSSd", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"JJJJJJJJJJJJy", "JJJJJJJJJJJJy", "JJJJJJJJJJJJy", "JJJJJJJJJJJJJJJJJJd",
"JJJJJJJJJJJJJJJJJJd", "JJJJJJJJJJJJJJJJJJd", "JJJJJJJJJJJJy",
"JJJJJJJJJJJJJJJJJJd", "JJJJJJJJJJJJy", "JJJJJJJJJJJJy", "LLLLLLLLLLn",
"CCCCCCCCCCCCd", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd",
"CCCCCCCCCCCCd", "OOOOOOOOOOOOm", "OOOOOOOOOOOOm", "LLLLLLLLLLn",
"CCCCCCCCCCCCd", "OOOOOOOOOOOOm", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd",
"LLLLLLLLLLn", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd",
"LLLLLLLLLLn", "LLLLLLLLLLn", "LLLLLLLLLLn", "OOOOOOOOOOOOm",
"CCCCCCCCCCCCd", "LLLLLLLLLLn", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd",
"OOOOOOOOOOOOm", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd",
"CCCCCCCCCCCCd", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd", "CCCCCCCCCCCCd",
"CCCCCCCCCCCCd", "LLLLLLLLLLn", "LLLLLLLLLLn", "LLLLLLLLLLn",
"LLLLLLLLLLn", "OOOOOOOOOOOOm", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl", "LLLLLLLLLLLLLLLLLLLl",
"AAAAAAAAAAo")), row.names = c(NA, -332L), class = c("tbl_df",
"tbl", "data.frame"))
Upvotes: 1
Views: 118
Reputation: 13
Not sure how to add the random effects to the plot but this code will extend the extent of the x-axis to 1.
plot_model(m_0, type = "eff", terms = c("Shift_Altnt_Ratio_Q"), ci.lvl = .68, line.size = 1.2,
title = "") + xlim(0, 1)
Upvotes: 0