Tengo un marco de datos que contiene dos series de tiempo: las fechas y los números de versión de las versiones de Emacs y Firefox. Usando un comando ggplot2 es fácil hacer un gráfico que use loess (de una manera que parece un poco divertida, lo que no me importa) para convertir los puntos en líneas.
¿Cómo puedo extender las líneas hacia el futuro? Quiero determinar dónde y cuándo se cruzarán los números de versión de Emacs y Firefox, y si hay una manera de mostrar un rango de error, mucho mejor.
Dado que ggplot2 está trazando las líneas, debe tener un modelo, pero no veo cómo decirle que extienda las líneas o que saque el modelo y haga algo con él.
> library(ggplot2)
> programs <- read.csv("http://www.miskatonic.org/files/se-program-versions.csv")
> programs$Date <- as.Date(programs$Date, format="%B %d, %Y")
> head(programs)
Program Version Date
1 Emacs 24.1 2012-06-10
2 Emacs 23.4 2012-01-29
3 Emacs 23.3 2011-03-10
4 Emacs 23.2 2010-05-08
5 Emacs 23.1 2009-07-29
6 Emacs 22.3 2008-09-05
> head(subset(programs, Program == "Firefox"))
Program Version Date
18 Firefox 16 2012-10-09
19 Firefox 15 2012-08-28
20 Firefox 14 2012-06-26
21 Firefox 13 2012-06-15
22 Firefox 12 2012-04-24
23 Firefox 11 2012-03-13
> ggplot(programs, aes(y = Version, x = Date, colour = Program)) + geom_point() + geom_smooth(span = 0.5, fill = NA)
(Nota: tuve que falsificar las primeras versiones de Firefox y convertir 0.1 en 0.01, etc., porque "punto uno" y "punto diez" son iguales aritméticamente. Sé que Firefox se lanza cada seis semanas, pero no existen todavía, y estoy interesado en una respuesta general a esta pregunta de predicción).
fuente
Tendría que predecir los valores para futuras observaciones fuera de ggplot2 y luego trazar los valores pronosticados, también podría obtener un intervalo de confianza para estas predicciones.
Mire la función loess, aunque no estoy seguro si hace predicciones fuera de su rango de datos, sin embargo, estoy seguro de que alguna función suave sí lo hace.
Sin embargo, generalmente no es aconsejable predecir valores fuera de su rango de datos. No confiaría mucho en estas predicciones.
Es posible que desee investigar la predicción de valores utilizando un modelo de serie temporal.
fuente