Ответ 1
Этот ответ, вероятно, немного для вас, но он может помочь некоторым людям, которые читают это в будущем:
Как работать с 2l.pan
Ниже приведены некоторые сведения об определении многоуровневых моделей вменения с mice
. Поскольку приложение является продольным, я использую термин "люди" для обозначения единиц на уровне 2. Это наиболее важные аргументы для 2l.pan
, как указано в документации mice
:
type
Вектор длины
ncol(x)
, определяющий случайные и переменные класса. Случайные эффекты идентифицируются с помощью2
. Групповая переменная (только одна разрешено) кодируется как-2
. Случайные эффекты также включают фиксированный эффект. Если для ковариацийX1
необходимо вычислить средства группы и в качестве дополнительных фиксированных эффектов выберите3
. В добавок к эффекты в3
, спецификация4
также включает случайные эффектыX1
.
Существует 5 разных кодов, которые вы можете использовать в матрице предикторов для переменных, вмененных в 2l.pan
. Идентификатор человека кодируется как -2
(это отличается от 2l.norm
). Чтобы включить предикторные переменные с фиксированными или случайными эффектами, эти переменные кодируются с помощью 1
или 2
, соответственно. Если кодируется как 2
, автоматически включается соответствующий фиксированный эффект.
Кроме того, 2l.pan
предлагает коды 3
и 4
, которые имеют похожие значения как 1
и 2
, но будут включать дополнительный фиксированный эффект для среднего значения этой переменной. Это полезно, если вы пытаетесь моделировать переменные предиктора, изменяющиеся во времени, и между людьми.
intercept
Логическое определение того, автоматически ли добавляется перехват.
По умолчанию 2l.pan
включает в себя перехват как фиксированного, так и случайного эффекта. По этой причине нет необходимости включать постоянный член в матрицу предсказателя. Если задано intercept=FALSE
, это поведение изменяется, а перехват удаляется из модели вменения.
groupcenter.slope
Если
TRUE
, в случае группового значения (type
есть3
или4
), среднее значение группы центрирование для этих предикторов проводится перед тем, как делать вменения. По умолчанию используетсяFALSE
.
Используя эту опцию, можно центрировать предикторные переменные вокруг значения человека вместо включения предикторной переменной "как есть" (т.е. без центрирования). Это относится только к переменным, закодированным как 3
или 4
. Для предикторов, закодированных как 3
, это не очень важно, потому что модели с центрированием и без него идентичны.
Однако, когда предикторные переменные кодируются как 4
(т.е. со случайным наклоном), то центрирование изменяет значение случайного эффекта, так что случайный уклон больше не применяется к переменной "как есть", но к отклонение от этой переменной внутри человека.
В вашем примере вы можете включить простой случайный уклон для time
следующим образом:
library(mice)
ini <- mice(df, maxit=0)
# predictor matrix (following 'type')
pred <- ini$predictorMatrix
pred["score",] <- c(-2, 1, 2, 0)
# imputation method
meth <- c("", "", "", "2l.pan")
imp <- mice(df, method=meth, pred=pred, maxit=10, m=10)
В этом примере кодирование time
как 3
или 4
не будет иметь большого смысла, потому что средство для лица time
идентично для всех лиц. Однако, если у вас есть изменяющиеся во времени ковариаты, которые вы хотите включить как предикторные переменные в модели вменения, могут быть полезны 3
и 4
.
Дополнительные аргументы, такие как intercept
и groupcenter.slope
, могут быть указаны непосредственно в вызове mice()
, например:
imp <- mice(df, ..., groupcenter.slope=TRUE)
Относительно ваших вопросов
Итак, чтобы ответить на ваши вопросы, как указано в сообщении:
1) Да, 2l.pan
предоставляет многоуровневую (или, скорее, двухуровневую) модель вменения. Перехват включен как фиксированный, так и случайный эффект по умолчанию (может быть изменен с помощью intercept=FALSE
) и не нужно указывать в матрице предсказателя (это контрастирует с 2l.norm
).
2) Да, вы можете указать случайные наклоны с помощью 2l.pan
. Для этого предсказатели со случайными склонами кодируются как 2
или 4
в матрице предсказателя. Если закодировано
как 2
, включен случайный наклон. Если кодируется как 4
, включается случайный наклон, а также дополнительный фиксированный эффект для средства пользователя этой переменной. Если кодируется как 4
, значение случайного наклона может быть изменено с помощью groupcenter.slope=TRUE
(см. Выше).
В этой статье также содержатся некоторые примеры работы с 2l.pan
и другими функциями для вменения mutlivel: [Ссылка]