Sto cercando di adattare un semplice modello di legge di potere a un set di dati che è il seguente:
mydf
:
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
L'obiettivo è quello di passare attraverso la linea elettrica e usarla per prevedere i rev
vlaues per le settimane future. Un gruppo di ricerche mi ha portato alla nls
funzione, che ho implementato come segue.
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)))
Mentre questo funziona per un lm
modello, ricevo un singular gradient
errore, che capisco ha a che fare con i miei valori iniziali a
e b
. Ho provato valori diversi, arrivando persino a tracciare questo in Excel, passare un solitario, ottenere un'equazione, quindi utilizzare i valori dell'equazione, ma continuo a ricevere l'errore. Ho guardato un sacco di risposte come questa e ho provato la seconda risposta (non riuscivo a capire la prima), ma senza risultato.
Potrei davvero usare un po 'di aiuto qui su come trovare i giusti valori iniziali. O in alternativa, quale altra funzione posso usare al posto di nls.
Nel caso in cui desideri ricrearlo mydf
facilmente:
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))