Zeichnen der Vorhersagen eines gemischten Modells als Linie in R.

Nov 24 2020

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

2 MagnusNordmo Nov 24 2020 at 20:21

Mehr sjPlot. Sehen Sie sich den Parameter gridan, 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 dropconBegriff innerhalb des sjPlotFrameworks zu entfernen . Ich gab auf und fiel zurück patchwork. Ich bin sicher, Daniel könnte den richtigen Weg kennen.

Oliver Nov 24 2020 at 20:14

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 pc1und enthalten pred. Sie können diese Diagramme aufteilen und mit kombinieren. patchworkDas 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).