Saya memiliki kerangka data yang berisi dua seri waktu: tanggal dan nomor versi rilis Emacs dan Firefox. Menggunakan satu perintah ggplot2 mudah untuk membuat bagan yang menggunakan loess (dengan cara yang terlihat sedikit lucu, yang saya tidak keberatan) untuk mengubah poin menjadi garis.
Bagaimana saya bisa memperluas garis ke masa depan? Saya ingin menentukan di mana dan kapan nomor versi Emacs dan Firefox akan bersilangan, dan jika ada cara untuk menunjukkan rentang kesalahan, semakin baik.
Mengingat bahwa ggplot2 merencanakan garis, ia harus memiliki model, tetapi saya tidak tahu bagaimana cara mengatakannya untuk memperluas garis, atau untuk mengeluarkan model dan melakukan sesuatu dengannya.
> 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)
(Catatan: Saya harus memalsukan versi Firefox awal dan mengubah 0,1 menjadi 0,01, dll., Karena "titik satu" dan "titik sepuluh" adalah sama secara hitung. Saya tahu Firefox merilis setiap enam minggu sekarang, tetapi mereka tidak ada namun, dan saya tertarik pada jawaban umum untuk pertanyaan prediksi ini.)
sumber
Anda harus memprediksi nilai untuk pengamatan di masa depan di luar ggplot2 dan kemudian memplot nilai yang diprediksi, Anda juga bisa mendapatkan interval kepercayaan untuk prediksi ini.
Lihatlah fungsi loess, meskipun saya tidak yakin apakah prediksi di luar rentang data Anda, saya yakin beberapa fungsi mulus tidak.
Namun biasanya tidak bijaksana untuk memprediksi nilai di luar rentang data Anda. Saya tidak akan menaruh banyak kepercayaan pada prediksi ini.
Anda mungkin ingin menyelidiki nilai prediksi menggunakan model deret waktu.
sumber