Я намагаюся пристосувати просту модель закону про владу до набору даних таким чином:
mydf
:
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
Мета полягає в тому, щоб пропустити лінію електропередачі і використовувати її для прогнозування rev
властей на майбутні тижні. Купка досліджень привела мене до nls
функції, яку я реалізував так.
newMod <- nls(rev ~ a*weeks^b, data=modeldf, start = list(a=1,b=1))
predict(newMod, newdata = data.frame(weeks=c(1,2,3,4,5,6,7,8,9,10)))
Хоча це працює для lm
моделі, я отримую singular gradient
помилку, яка, наскільки я розумію, має відношення до моїх вихідних значень a
і b
. Я спробував різні значення, навіть зайшовши так, щоб побудувати це в Excel, пройти одиноку, отримати рівняння, потім використати значення з рівняння, але я все одно отримую помилку. Я переглянув купу відповідей на кшталт цієї і спробував другу відповідь (не зміг зрозуміти першу), але безрезультатно.
Я дійсно міг би скористатися деякою допомогою тут, як знайти правильні вихідні значення. Або в якості альтернативи, яку іншу функцію я можу використовувати замість nls.
У випадку, якщо ви хочете відтворити його mydf
з легкістю:
mydf <- data.frame(rev=c(17906.4, 5303.72, 2700.58 ,1696.77 ,947.53 ,362.03), weeks=c(1,2,3,4,5,6))