Построение случайного подмножества отдельных квадратичных кривых роста в R из объекта lme или lmerMod? - PullRequest
0 голосов
/ 09 марта 2019

Я хотел бы построить случайное подмножество из 10 индивидуальных квадратичных кривых роста из lme4 или nlme в R, используя либо ggplot2, либо sjPlot.Я знаю, как сделать это для линейной линии, но не для квадратичной.Очевидно, что приведенный ниже сюжет со 105 участниками слишком сумасшедший.

Моя модель:

growthquadsl <- lmer(count~time_point+I(time_point^2) + (1+time_point|ParticipantID),
                 REML = TRUE,
                 data = longfix)
summary(growthquadsl)
    Linear mixed model fit by REML ['lmerMod']
    Formula: count ~ time_point + I(time_point^2) + (1 + time_point |  
        ParticipantID)
       Data: longfix

Вывод:

REML criterion at convergence: 23004.3

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.3234 -0.6165 -0.0802  0.5312  4.2995 

Random effects:
 Groups        Name        Variance Std.Dev. Corr 
 ParticipantID (Intercept) 28228422 5313.0        
               time_point    209490  457.7   -0.40
 Residual                  18922159 4350.0        
Number of obs: 1157, groups:  ParticipantID, 107

Fixed effects:
                Estimate Std. Error t value
(Intercept)     14242.57     605.82  23.510
time_point        874.18     157.42   5.553
I(time_point^2)   -73.47      14.75  -4.979

Correlation of Fixed Effects:
            (Intr) tm_pnt
time_point  -0.510       
I(tm_pnt^2)  0.355 -0.923

Все кривые:

ggplot(longfix, aes(x=time_point, y=count)) +
    geom_line(aes(y = predict(growthquadsl, level=1, group=ParticipantID), colour = factor(ParticipantID)), size = 1)

Вывод:

График всех 105 участников

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Это может сработать:

library(ggeffects)
pr <- ggpredict(growthquadsl, c("time_point", "ParticipantID [sample=10]"), type = "re")
plot(pr)

См. эту виньетку для более подробного объяснения с примерами и эту виньетку как нанести предельные эффекты на конкретные значения(например, для случайной подвыборки с n = 10, как в приведенном выше примере).

0 голосов
/ 09 марта 2019

Невозможно проверить это без каких-либо данных, но вы можете сэмплировать фрейм данных и построить график всех участников в этом примере.

# With `modelr::add_predictions`, if it works correctly for your type of model
longfix %>%
  sample_n(100) %>%
  modelr::add_predictions(fit) %>%
  ggplot(aes(x = time_point, y = pred)) +
  geom_line(aes(colour = factor(growthquadsl)), size = 1)

# Otherwise create a column with the predictions explicitly
longfix %>%
  sample_n(100) %>%
  mutate(pred = predict(fit, newdata = .)) %>%
  ggplot(aes(x = time_point, y = pred)) +
  geom_line(aes(colour = factor(growthquadsl)), size = 1)
...