#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")))