Я пытаюсь подогнать эту нелинейную модель в R, используя функцию nls
.
Вот данные, которые я пытаюсь подогнать:
tab2 = data.frame(n = c(10,100,1000,10000,100000), Time = c(3.989220e-03,
1.994681e-02, 3.311172e-01, 5.142252e+00, 1.314725e+03))
Мы видим, что времярастет в геометрической прогрессии, поэтому я хочу смоделировать это, используя nls
.Это то, что я пробовал до сих пор:
mod4 = nls(Time ~ exp(a + b*n), data = tab2, start = list(a = -3, b = 0))
Однако это не работает, и появляется следующее сообщение об ошибке:
Error in numericDeriv(form[[3L]], names(ind), env) : Missing value or an
infinity produced when evaluating the model
Я понятия не имею, почему это происходит, но я предполагаю, что это связано с этими начальными значениями?Я получил их, оценивая модель, используя lm:
mod3 = lm(log(Time) ~ n, data = tab2); coef(mod3)
(Intercept) n
-2.5908574883 0.0001010623
Поскольку это в значительной степени та же модель, я подумал, что коэффициенты будут совпадать, но когда я использую близкие к ним значения для начальных значений, nls
модель не работает.
Есть какие-либо предложения относительно того, почему это происходит?