Zeichnen der Vorhersagen eines gemischten Modells als Linie in R.
Ich versuche, die Vorhersagen ( predict()
) meines gemischten Modells unten so darzustellen, dass ich mein konzeptionell gewünschtes Diagramm als Linie unten erhalten kann.
Ich habe versucht, die Vorhersagen meines Modells zu zeichnen, aber ich erreiche nicht die gewünschte Darstellung. Gibt es eine bessere Möglichkeit zu definieren, predict()
damit ich mein gewünschtes Diagramm erreichen kann?
library(lme4)
dat3 <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/dat3.csv')
m4 <- lmer(math~pc1+pc2+discon+(pc1+pc2+discon|id), data=dat3)
newdata <- with(dat3, expand.grid(pc1=unique(pc1), pc2=unique(pc2), discon=unique(discon)))
y <- predict(m4, newdata=newdata, re.form=NA)
plot(newdata$pc1+newdata$pc2, y)

Antworten
Mehr sjPlot
. Sehen Sie sich den Parameter grid
an, um mehrere Prädiktoren in einem Diagramm zu verpacken.
library(lme4)
library(sjPlot)
library(patchwork)
dat3 <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/dat3.csv')
m4 <- lmer(math~pc1+pc2+discon+(pc1+pc2+discon|id), data=dat3) # Does not converge
m4 <- lmer(math~pc1+pc2+discon+(1|id), data=dat3) # Converges
# To remove discon
a <- plot_model(m4,type = 'pred')[[1]]
b <- plot_model(m4,type = 'pred',title = '')[[2]]
a + b

Edit 1: Ich hatte einige Probleme, den dropcon
Begriff innerhalb des sjPlot
Frameworks zu entfernen . Ich gab auf und fiel zurück patchwork
. Ich bin sicher, Daniel könnte den richtigen Weg kennen.
Wie Magnus Nordmo vorschlägt, ist dies sehr einfach sjPlotund bietet einige vordefinierte Funktionen für diese Arten von Plots.
library(lme4)
dat3 <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/dat3.csv')
m4 <- lmer(math~pc1+pc2+discon+(pc1+pc2+discon|id), data=dat3)
plot_model(m4, type = 'pred', terms = c('pc1', 'pc2'),
ci.lvl = 0)
was das folgende Ergebnis ergibt.

Dieses Diagramm soll verschiedene Quantile des zweiten Terms terms
über den Achsen von pc1
und enthalten pred
. Sie können diese Diagramme aufteilen und mit kombinieren. patchwork
Das Intervall kann durch eckige Klammern nach dem Term in geändert werden terms
(z. B. pc1 [-10:1]
für Intervalle zwischen -10 und 1).