У меня проблема с использованием функцииpret () в lme4. Точнее, мне не очень понятно, как объявлять имена случайных эффектов, которые будут использоваться во фрейме данных newdata, которым я подпитываю функцию pregnet (), чтобы получить некоторые прогнозы. Я попытаюсь подробно описать мою проблему.
Данные
Данные, с которыми я работаю, являются продольными. У меня есть 119 наблюдений, для каждого из которых у меня есть несколько (6-7) измерений для каждого наблюдения, которые представляют размер белков, которые агрегируют во времени и становятся больше (назовем это LDL).
Модель
Модель, используемая для описания этого процесса, представляет собой кривую Ричарда (обобщенную логистическую функцию), которую можно записать как
![enter image description here](https://i.stack.imgur.com/iVCAm.gif)
Теперь я подгоняю отдельную кривую для группы измерений каждого наблюдения со следующими фиксированными, случайными эффектами и переменными:
alpha_fix - фиксированный эффект дляальфа alpha | Obs - случайный эффект для альфы, который варьируется между наблюдениями gamma_fix - фиксированный эффект для гаммы gamma | Obs - случайный эффект для гаммы, который варьируется между наблюдениями delta_f - фиксированный эффект Время - непрерывная переменная, время в часах LDL - переменная реакции, непрерывная, представляющая размер белков в момент времени t.
Прогнозы
После того, как я подгоню модель, я хочу использовать ее для прогнозирования значения LDL в определенный момент времени для каждогонаблюдение. Для этого мне нужно использовать функцию прогнозирования и назначить фрейм данных для newdata . читая документацию здесь , он говорит следующее:
Если в re.form включены какие-либо случайные эффекты (см. ниже), новые данные должны содержать столбцы, соответствующие всемгруппирование переменных и случайных эффектов, используемых в исходной модели, даже если не все используются в прогнозировании;однако в этом случае они могут быть безопасно установлены на NA
Теперь, как я понимаю, мне нужно иметь новый кадр данных, который в моем случае содержит следующие столбцы: «Время», "Obs", "alpha_f", "gamma_f", "delta_f", а также два столбца для случайных эффектов альфа и гамма, соответственно. Однако я не уверен, как эти два столбца со случайными эффектами должны быть названы, чтобы функция предиката () могла их понять. Я пробовал с "alpha | Obs" и "gamma | Obs", а также с "Obs $ alpha", "Obs $ gamma", но оба выдают ошибку
Ошибка в FUN (X [[i]], ...): случайные эффекты, указанные в re.form, которые не присутствовали в исходной модели.
Мне было интересно, есть ли у кого-нибудь идеи, как правильно это сделать. ,
Для полноты код, используемый для соответствия модели, приведен ниже:
ModelFunction = function (alpha, gamma, delta, Time) {
15 + (alpha-15) / (1 + exp ((gamma-Time) / delta))
}
ModelGradient = deriv(body(ModelFunction) [[2]], namevec = c ("alpha", "gamma", "delta"), function.arg = ModelFunction)
starting_conditions = c (alpha = 5000, gamma = 1.5, delta = 0.2) # Based on visual observation
fit = nlmer (
LDL ~
ModelGradient (alpha, gamma, delta, Time)
~ (gamma | Obs) + (alpha | Obs),
start = starting_conditions,
nlmerControl(optimizer="bobyqa", optCtrl = list(maxfun = 100000)),
data = ldlData)
Я был бы очень признателен, если бы кто-то мог дать мне какой-то совет.
Спасибоваше время!