Ich versuche, ein einfaches Potenzgesetzmodell an einen Datensatz anzupassen, der wie folgt lautet:
mydf
::
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
Das Ziel ist es, die Stromleitung durchzuleiten und damit rev
Werte für zukünftige Wochen vorherzusagen . Eine Reihe von Recherchen hat mich zu der nls
Funktion geführt, die ich wie folgt implementiert habe.
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)))
Während dies für ein lm
Modell funktioniert , erhalte ich einen singular gradient
Fehler, der meines Wissens mit meinen Startwerten a
und zu tun hat b
. Ich habe verschiedene Werte ausprobiert und bin sogar so weit gegangen, dies in Excel zu zeichnen, einen einzelnen zu übergeben, eine Gleichung zu erhalten und dann die Werte aus der Gleichung zu verwenden, aber ich erhalte immer noch den Fehler. Ich sah mir eine Reihe von Antworten wie diese an und versuchte die zweite Antwort (konnte die erste nicht verstehen), aber ohne Ergebnis.
Ich könnte hier wirklich Hilfe gebrauchen, um die richtigen Startwerte zu finden. Oder alternativ, welche andere Funktion kann ich anstelle von nls verwenden.
Für den Fall, dass Sie mydf
mit Leichtigkeit neu erstellen möchten :
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))