J'essaie d'adapter un modèle de loi de puissance simple à un ensemble de données qui se présente comme suit:
mydf
:
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
L'objectif étant de faire passer la ligne électrique et de l'utiliser pour prédire les rev
vlaues pour les semaines à venir. Un tas de recherches m'a conduit à la nls
fonction, que j'ai implémentée comme suit.
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)))
Bien que cela fonctionne pour un lm
modèle, j'obtiens une singular gradient
erreur, qui, je crois, a à voir avec mes valeurs de départ a
et b
. J'ai essayé différentes valeurs, allant même jusqu'à tracer cela dans Excel, passer un seul, obtenir une équation, puis utiliser les valeurs de l'équation, mais j'obtiens toujours l'erreur. J'ai regardé un tas de réponses comme celle-ci et essayé la deuxième réponse (je ne pouvais pas comprendre la première), mais sans résultat.
Je pourrais vraiment utiliser une aide ici sur la façon de trouver les bonnes valeurs de départ. Ou bien, quelle autre fonction je peux utiliser à la place de nls.
Si vous souhaitez recréer mydf
facilement:
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))