Построить нелинейную смешанную модель поверх исходных подогнанных данных

#r #curve-fitting #lme4

#r #Подгонка кривой #lme4

Вопрос:

Я пытаюсь построить результирующую кривую из подгонки нелинейной смешанной модели. Это должно быть что-то вроде кривой нормального распределения, но с наклоном вправо. Я следовал предыдущим ссылкам здесь и здесь, но когда я использую свои данные, я не могу добиться этого из-за разных трудностей (см. Ниже).

Вот набор данных и код

 s=read.csv("GRVMAX tadpoles.csv") 
t=s[s$SPP== levels(s$SPP)[1],]
head(t)
vmax=t[t$PERFOR=="VMAX",]
colnames(vmax)[6]="vmax"
vmax$TEM=as.numeric(as.character(vmax$TEM));
require(lme4)
start =c(TEM=25)
is.numeric(start)
nm1 <- nlmer ( vmax ~ deriv(TEM)~TEM|INDIVIDUO,nlpars=start, nAGQ  =0,data= vmax)# this gives an error suggesting nlpars is not numeric, despite start is numeric...:~/
 

После этого я хочу построить кривую по исходным данным

  with(vmax,plot(vmax ~ (TEM)))
 x=vmax$TEM
 lines(x, predict(nm1, newdata = data.frame(TEM = x, INDIVIDUO = "ACI5")))
 

Какой-нибудь намек?

Заранее спасибо

Комментарии:

1. Как выглядит «просто не бывает»?

2. быстрый взгляд, но хотите ли вы lines curve вместо, и должен ли newdata (не new.data ) быть data.frame?

3. Краткое примечание: вы сказали, что хотите подогнать нелинейную смешанную модель. lmer для линейных смешанных моделей. Кроме того, x это не новый фрейм данных, это вектор фактических значений. Прогнозирование принимает только фреймы данных с теми же именами столбцов, что и исходные данные.

4. спасибо, ошибка выглядит следующим образом: Ошибка в кривой (предсказать (m1, новый. data = x), add = T): ‘expr’ не вычислял объект длины ‘n ‘ lines также не работал

5. Может быть x <- with(vmax, seq(min(TEM), max(TEM), length = 100)); lines(x, predict(m1, newdata = data.frame(TEM = x, INDIVIDUO = "ACI1")))