Mengevaluasi akurasi ramalan untuk metode non-musiman
Dalam data science, training set (himpunan latih) adalah himpunan data yang digunakan untuk menemukan kemungkinan hubungan. Test set (himpunan uji) adalah himpunan data yang digunakan untuk memverifikasi kekuatan hubungan potensial tersebut. Saat Anda memisahkan himpunan data menjadi dua bagian ini, umumnya porsi data yang lebih besar dialokasikan untuk pelatihan, dan sisanya untuk pengujian.
Salah satu fungsi yang dapat digunakan untuk membuat himpunan latih dan uji adalah subset(), yang mengembalikan sebagian dari deret waktu ketika argumen opsional start dan end ditentukan menggunakan nilai indeks.
> # x adalah vektor numerik atau deret waktu
> # Untuk mengambil subset observasi dari 101 hingga 500
> train <- subset(x, start = 101, end = 500, ...)
> # Untuk mengambil subset 500 observasi pertama
> train <- subset(x, end = 500, ...)
Seperti yang Anda lihat di video, fungsi lain, accuracy(), menghitung berbagai statistik akurasi ramalan berdasarkan ramalan dan observasi aktual yang bersesuaian. Fungsi ini cukup cerdas untuk menemukan observasi yang relevan jika Anda memberikannya lebih banyak data daripada yang Anda ramalkan.
> # f adalah objek dengan kelas "forecast"
> # x adalah vektor numerik atau deret waktu
> accuracy(f, x, ...)
Ukuran akurasi yang disediakan mencakup root mean squared error (RMSE) yang merupakan akar kuadrat dari mean squared error (MSE). Meminimalkan RMSE, yang berhubungan dengan peningkatan akurasi, sama dengan meminimalkan MSE.
Deret waktu gold yang telah dimuat berisi harga emas harian selama 1108 hari. Di sini, Anda akan menggunakan 1000 hari pertama sebagai himpunan latih, dan menghitung ramalan untuk 108 hari sisanya. Ramalan ini akan dibandingkan dengan nilai aktual untuk hari-hari tersebut menggunakan fungsi peramalan sederhana naive(), yang telah Anda gunakan sebelumnya di bab ini, dan meanf(), yang menghasilkan ramalan sama dengan rata-rata seluruh observasi. Anda harus menentukan kata kunci h (yang menyatakan jumlah nilai yang ingin Anda ramalkan) untuk keduanya.
Latihan ini adalah bagian dari kursus
Peramalan di R
Petunjuk latihan
- Gunakan
subset()untuk membuat himpunan latihgoldyang terdiri atas 1000 observasi pertama. Namai sebagaitrain. - Hitung ramalan untuk himpunan uji, yaitu data sisanya, menggunakan
naive()dan simpan sebagainaive_fc. Aturhsesuai kebutuhan. - Sekarang, hitung ramalan untuk himpunan uji yang sama menggunakan
meanf()dan simpan sebagaimean_fc. Aturhsesuai kebutuhan. - Bandingkan statistik akurasi ramalan dari kedua metode menggunakan fungsi
accuracy(). - Berdasarkan hasil di atas, simpan ramalan dengan akurasi lebih tinggi sebagai
bestforecasts.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Create the training data as train
train <- subset(___, end = ___)
# Compute naive forecasts and save to naive_fc
naive_fc <- naive(___, h = ___)
# Compute mean forecasts and save to mean_fc
mean_fc <- meanf(___, h = ___)
# Use accuracy() to compute RMSE statistics
accuracy(___, gold)
___(___, gold)
# Assign one of the two forecasts as bestforecasts
bestforecasts <- ___