У меня есть некоторые основные данные о сокращении выбросов и стоимости автомобиля:
q24 <- read.table(text = "reductions cost.per.car
50 45
55 55
60 62
65 70
70 80
75 90
80 100
85 200
90 375
95 600
",header = TRUE, sep = "")
Я знаю, что это экспоненциальная функция, поэтому я ожидаю, что смогу найти модель, которая соответствует:
model <- nls(cost.per.car ~ a * exp(b * reductions) + c,
data = q24,
start = list(a=1, b=1, c=0))
но я получаю ошибку:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
Я прочитал тонну вопросов об ошибке, которую я вижу, и я понимаю, что проблема, вероятно, в том, что мне нужны лучшие / другие start
значения (они initial parameter estimates
имеют немного больше смысла), но я не уверен, учитывая Данные, которые у меня есть, как я бы пошел об оценке лучших параметров.
exp(50)
и exp(95)
с y-значениями при x = 50 и x = 95. Если вы установили c=0
и взяли журнал у (построение линейной зависимости), вы можете использовать регрессию, чтобы получить начальные оценки для журналов ( ) и b, которые будут достаточны для ваших данных (или, если вы укажете линию через начало координат, вы можете оставить a на 1 и просто используйте оценку для b ; этого также достаточно для ваших данных). Если b находится за пределами довольно узкого интервала вокруг этих двух значений, вы столкнетесь с некоторыми проблемами. [В качестве альтернативы попробуйте другой алгоритм]