Wykreślanie prognoz modelu mieszanego jako linii w R.

Nov 24 2020

Próbuję wykreślić predict()poniżej prognozy ( ) mojego modelu mieszanego, tak aby uzyskać mój pożądany koncepcyjnie wykres jako linię poniżej.

Próbowałem wykreślić przewidywania mojego modelu, ale nie osiągnąłem pożądanego wykresu. Czy jest lepszy sposób na zdefiniowanie predict(), abym mógł osiągnąć pożądaną fabułę?

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)

Odpowiedzi

2 MagnusNordmo Nov 24 2020 at 20:21

Więcej sjPlot. Zobacz parametr, gridaby zawinąć kilka predyktorów na jednym wykresie.

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 

Edycja 1: miałem problemy z usunięciem dropconterminu w sjPlotramach. Poddałem się i wróciłem patchwork. Jestem pewien, że Daniel znałby właściwy sposób.

Oliver Nov 24 2020 at 20:14

Jak sugeruje Magnus Nordmo, jest to bardzo proste, sjPlotponieważ ma pewne predefiniowane funkcje dla tego typu działek.

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)

co daje następujący wynik.

Ten wykres ma obejmować różne kwantyle drugiego członu termsna osiach pc1i pred. Możesz podzielić te wykresy i połączyć je za pomocą, patchworka interwał można zmienić, używając nawiasów kwadratowych po wyrazie w terms(np. pc1 [-10:1]Dla przedziału od -10 do 1).