Estou tentando ajustar um modelo simples de lei de energia a um conjunto de dados da seguinte maneira:
mydf:
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
O objetivo é passar a linha de força e usá-la para prever revvlaues para as próximas semanas. Um monte de pesquisas me levou à nlsfunção, que eu implementei da seguinte maneira.
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)))
Enquanto isso funciona para um lmmodelo, recebo um singular gradienterro, que eu entendo tem a ver com meus valores iniciais ae b. Tentei valores diferentes, chegando a traçar isso no Excel, passar sozinho, obter uma equação e usar os valores da equação, mas ainda assim recebo o erro. Eu olhei para um monte de respostas como essa e tentei a segunda resposta (não conseguia entender a primeira), mas sem resultado.
Eu realmente poderia usar alguma ajuda aqui sobre como encontrar os valores iniciais corretos. Ou, alternativamente, que outra função eu posso usar em vez de nls.
Caso você queira recriar mydfcom facilidade:
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))