J'ai une trame de données qui contient deux séries chronologiques: les dates et les numéros de version des versions d'Emacs et de Firefox. En utilisant une commande ggplot2, il est facile de créer un graphique qui utilise le loess (d'une manière qui semble un peu amusante, ce qui ne me dérange pas) pour transformer les points en lignes.
Comment prolonger les lignes dans le futur? Je veux déterminer où et quand les numéros de version d'Emacs et de Firefox se croiseront, et s'il y a un moyen d'afficher une plage d'erreur, tant mieux.
Étant donné que ggplot2 trace les lignes, il doit avoir un modèle, mais je ne vois pas comment lui dire d'étendre les lignes, ou d'extraire le modèle et de faire quelque chose avec.
> 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)
(Remarque: j'ai dû truquer les premières versions de Firefox et passer de 0,1 à 0,01, etc., car "point un" et "point dix" sont arithmétiquement égaux. Je sais que Firefox sort maintenant toutes les six semaines, mais elles n'existent pas encore, et je suis intéressé par une réponse générale à cette question de prédiction.)
la source
Vous devrez prédire les valeurs des observations futures en dehors de ggplot2, puis tracer les valeurs prédites, vous pouvez également obtenir un intervalle de confiance pour ces prédictions.
Regardez la fonction loess, bien que je ne sois pas sûr qu'elle fasse des prédictions en dehors de votre plage de données, je suis sûr que certaines fonctions lisses le font cependant.
Cependant, il n'est généralement pas judicieux de prévoir des valeurs en dehors de votre plage de données. Je ne ferais pas beaucoup confiance à ces prévisions.
Vous souhaiterez peut-être étudier la prévision des valeurs à l'aide d'un modèle de série chronologique.
la source