Сравните внутрииндивидуальные переменные за несколько временных точек с отсутствующими данными, используя пакет смешанных моделей lme4 в R - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь сравнить среднее значение нескольких измерений (y1, y2, некоторые из которых являются непрерывными, другие дихотомические, с отсутствующими данными) с течением времени для 3 различных групп населения, у которых было 1, 2 или 3 процедуры (p1 , p2, p3). Вот симуляция данных. Я пытаюсь сравнить среднее значение y1 и частоту y2 между несколькими временными точками _tx (Примечание: меня не особо интересует влияние y1 на y2 и наоборот). Я думаю, что ANOVA не будет учитывать межиндивидуальную изменчивость, поэтому я думаю, что тест для использования должен быть смешанной моделью, правильно? Если да, то как мне написать сценарий? Должен ли я использовать пакет lme4?

Вот вывод смоделированных данных

    pop    date_t1   y1 y2    date_t2 y1_t2 y2_t2    date_t3 y1_t3 y2_t3
1   p1 2012-03-24 13.3 NA       <NA>    NA    NA       <NA>    NA    NA
2   p1 2012-03-20   NA NA       <NA>    NA    NA       <NA>    NA    NA
3   p1 2012-01-21  8.3  0       <NA>    NA    NA       <NA>    NA    NA
4   p1 2012-03-27   NA NA       <NA>    NA    NA       <NA>    NA    NA
5   p1 2012-01-14 11.6 NA       <NA>    NA    NA       <NA>    NA    NA
6   p1 2011-12-21  8.1 NA       <NA>    NA    NA       <NA>    NA    NA
7   p1 2012-01-17 12.5  0       <NA>    NA    NA       <NA>    NA    NA
8   p1 2011-12-24 18.3  1       <NA>    NA    NA       <NA>    NA    NA
9   p1 2011-12-24   NA NA       <NA>    NA    NA       <NA>    NA    NA
10  p1 2011-12-09 14.5  0       <NA>    NA    NA       <NA>    NA    NA
11  p2 2012-02-28  8.3  0 2013-02-16  15.1    NA       <NA>    NA    NA
12  p2 2012-04-16   NA  1 2013-02-19    NA     1       <NA>    NA    NA
13  p2 2012-01-09  8.7  0 2013-02-07  15.8    NA       <NA>    NA    NA
14  p2 2011-12-05 11.6 NA 2013-05-26  16.4    NA       <NA>    NA    NA
15  p2 2012-03-28   NA  1 2013-03-24    NA     1       <NA>    NA    NA
16  p2 2011-12-19 15.7  0 2013-03-27  17.9     0       <NA>    NA    NA
17  p3 2012-01-03  7.7  0 2013-04-12  15.0     0 2013-04-09  13.1     1
18  p3 2012-01-09  5.8 NA 2013-03-14  10.3     0 2013-04-06  14.9     1
19  p3 2011-11-18   NA NA 2013-05-15    NA    NA 2013-04-08  14.7    NA
20  p3 2011-11-22 11.1  0 2013-04-12  13.3     1 2013-04-27    NA     1

Вот код для симуляции данных:

library(lubridate)
library(dplyr)

# 3 different populations
pop = c(rep("p1", 10), rep("p2", 6), rep("p3", 4))

# value at time of first intervention
date_t1 = as.Date(as.Date(rep("2012-01-30",10)) -replicate(20, 40*rnorm(1)) %>% round())


y1 = c(10-(replicate(20, 20+(3*rnorm(1))) %>% round(digit = 1))) %>% abs()
y1[c(2,4, 9, 12, 15, 19)] = NA
y2 = rbinom(20,1,0.4)
y2[c(1,2, 4,5,6, 9, 14, 18, 19)] = NA

# value at time of second intervention
date_t2 = as.Date(as.Date(rep("2013-04-03",10)) -replicate(20, 40*rnorm(1)) %>% round())
date_t2[1:10] = NA

y1_t2 = c(10-(replicate(20, 25+(3*rnorm(1))) %>% round(digit = 1))) %>% abs()
y1_t2[c(1:10, 12, 15, 19)] = NA

y2_t2 = rbinom(20,1,0.4)
y2_t2[c(1:10, 11, 13, 14, 19)] = NA

# value at time of third intervention
date_t3 = as.Date(as.Date(rep("2013-04-03",10)) -replicate(20, 40*rnorm(1)) %>% round())
date_t3[1:16] = NA

y1_t3 = c(10-(replicate(20, 26+(3*rnorm(1))) %>% round(digit = 1))) %>% abs()
y1_t3[c(1:16, 20)] = NA

y2_t3 = rbinom(20,1,0.4)
y2_t3[c(1:16, 19)] = NA

data = data.frame(pop, date_t1, y1, y2, date_t2, y1_t2, y2_t2, date_t3, 
y1_t3, y2_t3, check.names = F)
data
...