Проблема R: оценка параметров nls

#r #nls

#r #nls

Вопрос:

Я пытаюсь оценить значения 4 параметров с помощью функции nls (), используя несколько переменных из большого фрейма данных. Однако, когда я запускаю свой скрипт, я получаю эту ошибку:

Ошибка в формуле.default(object, env = baseenv()) : недопустимая формула

Формула должна быть правильной, так как она работает правильно, когда я использую ее в другом месте. Может ли это быть связано с тем, что в функции больше параметров, чем я говорю nls для оценки? Могут ли быть проблемы с тем фактом, что в функции есть как постоянные параметры, так и переменные?

Ниже приведен код. Для простоты я изменил все параметры на «param1, param2 и т. Д.», А переменные в моем фрейме данных на «var1, var2 и т. Д.».

Большое спасибо.

   param1 <- 0.5
  param2 <- 25 
  param3 <- 1 
  param4 <- 400 
  param5 <- -46.02 
  param6 <- 15

params <- nls(formula = (-(param1*param2*var1)/((param1*var1) param2) (param3*exp(param4*(1/(param6 - param5))-(1/(var2-param5))))), start = list(param1=.5, param2=25, param3=1, param4=400))
 

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

1. формула должна иметь левую часть для обозначения переменной ответа: formula = y ~ .... В каком другом контексте вы использовали его там, где это сработало??

2. Спасибо. Я внес это изменение, но теперь получаю ошибку «сингулярная градиентная матрица при начальных оценках параметров». Похоже, это распространенная ошибка при использовании nls().