Модель ADBUG nls единственного градиента - PullRequest
0 голосов
/ 03 декабря 2018

Я пытался вписать следующее в модель ADBUG, используя функцию nls в r, но ошибка единичной матрицы продолжала повторяться, и я действительно не знаю, как это сделать ...

     nprice       nlv2
[1,] 0.6666667 1.91666667
[2,] 0.7500000 1.91666667
[3,] 0.8333333 1.91666667
[4,] 0.9166667 1.44444444
[5,] 1.0000000 1.00000000
[6,] 1.0833333 0.58333333
[7,] 1.1666667 0.22222222
[8,] 1.2500000 0.08333333
[9,] 1.3333333 0.02777778

код:

fit <- nls(f=nprice~a+b*nlv2^c/(nlv2^c+d),start=list(a=0.083,b=1.89,c=-10.95,d=0.94))

Ошибка в nls (f = nprice ~ a + b * nlv2 ^ c / (nlv2 ^ c + d), начало = список (a =0,083, градиент единственного числа

1 Ответ

0 голосов
/ 04 декабря 2018

Пакет nlsr предоставляет обновленную версию nls с помощью функции nlxb, которая в большинстве случаев позволяет избежать ошибки «сингулярного градиента».

library(nlsr)
fit <- nlxb(f = nprice~a+b*nlv2^c/(nlv2^c+d),
       data = df,
       start = list(a=0.083,b=1.89,c=-10.95,d=0.94))
## vn:[1] "nprice" "a"      "b"      "nlv2"   "c"      "d"     
## no weights

fit$coefficients
##           a           b           c           d 
## -2.1207e+04  2.1208e+04 -7.4083e-01  1.6236e-05 

Установленные коэффициенты далекодалеко от начальных значений и довольно большой, что указывает на то, что проблема недостаточно обоснована.

...