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 revvlaues pour les semaines à venir. Un tas de recherches m'a conduit à la nlsfonction, 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 lmmodèle, j'obtiens une singular gradienterreur, qui, je crois, a à voir avec mes valeurs de départ aet 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 mydffacilement:
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))