#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().