Estoy tratando de ajustar un modelo de ley de potencia simple a un conjunto de datos que es el siguiente:
mydf
:
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
El objetivo es pasar la línea eléctrica y usarla para predecir rev
vlaues para las próximas semanas. Un montón de investigación me ha llevado a la nls
función, que implementé de la siguiente manera.
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)))
Si bien esto funciona para un lm
modelo, recibo un singular gradient
error, que entiendo que tiene que ver con mis valores iniciales a
y b
. Intenté diferentes valores, incluso llegando a trazar esto en Excel, pasar un solitario, obtener una ecuación, luego usar los valores de la ecuación, pero aún obtengo el error. Miré un montón de respuestas como esta y probé la segunda respuesta (no pude entender la primera), pero no obtuve ningún resultado.
Realmente podría usar algo de ayuda aquí sobre cómo encontrar los valores iniciales correctos. O, alternativamente, qué otra función puedo usar en lugar de nls.
En caso de que quiera recrear mydf
con facilidad:
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))