Ho un frame di dati che contiene due serie temporali: le date e i numeri di versione delle versioni di Emacs e Firefox. Usando un comando ggplot2 è facile creare un grafico che usa loess (in un modo che sembra un po 'divertente, che non mi dispiace) per trasformare i punti in linee.
Come posso estendere le linee nel futuro? Voglio determinare dove e quando verranno incrociati i numeri di versione di Emacs e Firefox e se c'è un modo per mostrare un intervallo di errori, tanto meglio.
Dato che ggplot2 sta disegnando le linee, deve avere un modello, ma non vedo come dirgli di estendere le linee o di far uscire il modello e fare qualcosa con esso.
> 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: ho dovuto spostare le prime versioni di Firefox e passare da 0.1 a 0.01, ecc., Perché "punto uno" e "punto dieci" sono uguali aritmeticamente. So che Firefox viene rilasciato ogni sei settimane, ma non esistono e sono interessato a una risposta generale a questa domanda di previsione.)