Функция самостоятельного запуска в R

Я пытаюсь приспособить нелинейную регрессию для развития комара относительно температуры, которую я получил из бумаги, но автор не установил функцию. Кроме того, чтобы установить нелинейную регрессию, я использую первую модель, заявленную breier et al (1999):

скорость разработки (1/ дней) = *Tpred*(Tpred-TO)*sqrt(TL-Tpred) для TO

где a - постоянная Tpred - температура, используемая в качестве предиктора скорости развития. TO - температура, при которой развитие равно нулю. TL - смертельная температура.

данные:

Temp: 15, 20, 25, 30, 35

rate_to_adult:0,028571430, 0,06944444, 0,09615385, 0,11363636, 0,08130081.

и мой код после книги Ритца нелинейной регрессии с R

model_function<-function(Tpred,a,TO,Tl){a*Tpred*(Tpred-TO)*sqrt(Tl-Tpred)}
#function   for the model

model_initial<-function(mCall,LHS,data){
xy<-sortedXyData(mCall[['Tpred']],LHS,data)
fit<-lm(xy[,'y']~xy[,'x'])
coefs<-coef(fit)
a<-coefs[1]    
TO<-coefs[2]
Tl<-coefs[3]
value<-c(a,TO,Tl)

names(value)<-mCall[c('a','TO','Tl')]
value
}

Self_starter<-selfStart(model_function,model_initial,c('a','TO','Tl'))

print(getInitial(rate_to_adult ~ Self_starter(Temp,a,TO,Tl), param), digits = 3)

предыдущая строка генерирует:

0,00300 0,00299 НС

для а, к и тл соответственно

и m1 <-nls (rate_gon ~ Self_starter (Temp, a, TO, Tl), data = param)

генерирует: Ошибка в numericDeriv(форма [[3L]], имена (ind), env): отсутствует значение или бесконечность, возникающая при оценке мода

Что я должен изменить, чтобы на самом деле получить начальные значения (все) и подгонку модели?

Спасибо

0 ответов

Другие вопросы по тегам