Pemilihan model deret waktu: AIC vs SSE out-of-sample dan kesetaraannya

9

AIC sering direkomendasikan sebagai kriteria untuk membandingkan model untuk peramalan seri waktu. Lihat misalnya ini dalam konteks model regresi dinamis :

AIC dapat dihitung untuk model akhir, dan nilai ini dapat digunakan untuk menentukan prediktor terbaik. Artinya, prosedur harus diulangi untuk mempertimbangkan semua himpunan bagian prediktor, dan model dengan nilai AICc terendah yang dipilih.

Mengapa tidak membandingkan model berdasarkan kinerja out-of-sample mereka? (mis. pilih model dengan SSE terendah dalam prakiraan out-of-sample). Saya telah membaca beberapa buku pelajaran dan situs web tentang perkiraan seri waktu dan belum menemukan diskusi ini. Yang paling dekat dengan saya adalah entri blog ini tentang Fakta dan kekeliruan AIC :

AIC sebenarnya bukan ukuran "dalam sampel". Ya, itu dihitung menggunakan data pelatihan. Tetapi asimtotik, meminimalkan AIC setara dengan meminimalkan MSE validasi silang keluar-keluar untuk data cross-sectional, dan setara dengan meminimalkan MSE perkiraan satu langkah out-of-sample untuk model deret waktu. Properti ini yang menjadikannya kriteria yang sangat menarik untuk digunakan dalam memilih model untuk perkiraan.

Dalam contoh saya telah bekerja (tidak dapat memposting plot di sini, meskipun; Saya perlu lebih banyak reputasi di situs ini), saya mencoba kedua pendekatan dan sebagian besar waktu AIC dan out-of-sample SSE tidak menghasilkan yang sama hasil. Prosedur yang saya gunakan adalah sebagai berikut:

  1. Saya membagi data dalam pelatihan dan sampel uji (pada titik arbitrer; pertanyaan tentang ini di bawah)
  2. Saya memperkirakan model yang bersaing (ARIMA dengan regressor eksternal, mengubah parameter ARIMA dan regressor) menggunakan sampel pelatihan (230 periode pertama; semua model memiliki jumlah pengamatan yang sama sehingga AIC sebanding).
  3. Kemudian, saya memperkirakan seri untuk periode yang sama dengan sampel uji (periode 231-260).
  4. Untuk setiap model, saya menghitung SSE sederhana seperti mana adalah nilai yang diamati dari seri (sampel uji) dan adalah nilai yang diramalkan oleh model.SSE=t=231260(yt^-yt)2ytyt^
  5. Saya membandingkan model yang ditunjukkan oleh AIC (dihitung menggunakan data pelatihan) dengan model dengan SSE out-of-sample terendah. Sebagian besar waktu model yang dipilih berbeda (dan setidaknya secara visual, yang dipilih oleh SSE berkinerja lebih baik).

Jika seseorang dapat menjelaskan kepada saya apa yang terjadi di balik ini saya akan sangat berterima kasih. Saya jelas bukan ahli dalam hal ini. Saya hanya mencoba sedikit belajar sendiri, jadi mohon maaf jika saya mengabaikan sesuatu yang penting dalam buku teks yang saya baca.

Akhirnya, sebuah pertanyaan tentang pemisahan data dalam pelatihan dan sampel uji untuk deret waktu. Menurut saya ada sesuatu yang secara fundamental berbeda dari menggunakan prosedur yang sama untuk data cross sectional. Untuk data cross sectional Anda dapat mengambil dua sampel acak dari seluruh dataset Anda. Untuk deret waktu ini tidak masuk akal. Jadi, Anda perlu mengambil titik sewenang-wenang untuk membagi seri dalam pelatihan dan sampel uji. Masalahnya adalah bahwa biasanya model terbaik berbeda untuk setiap titik arbitrer. Mungkin itu sebabnya pendekatan ini sepertinya tidak sering digunakan. Apakah ini alasan mengapa AIC lebih disukai untuk pemilihan model? (Mengingat bahwa "tanpa gejala, meminimalkan AIC adalah ... setara dengan meminimalkan perkiraan satu langkah MSE untuk model seri waktu").)

pemrograman elikes
sumber

Jawaban:

6

Mengapa tidak membandingkan model berdasarkan kinerja out-of-sample mereka?

Tentu saja, Anda bisa melakukannya. Saya mengira bahwa keuntungan dari AIC adalah perhitungan yang lebih cepat dan lebih sedikit pengkodean (sementara AIC sering secara otomatis dilaporkan sebagai bagian dari diagnostik model, validasi silang untuk deret waktu mungkin tidak tersedia di perangkat lunak favorit Anda).

Saya mencoba kedua pendekatan dan sebagian besar waktu AIC dan out-of-sample SSE tidak menghasilkan hasil yang sama.

Anda tampaknya tidak menerapkan validasi silang dengan benar. Pertama, Anda membagi data hanya satu kali sementara Anda seharusnya membaginya beberapa kali. Kedua, Anda menilai kinerja peramalan berdasarkan satu percobaan peramalan beberapa cakrawala berbeda daripada beberapa percobaan peramalan satu cakrawala tetap. Mungkin karena itu Anda mendapatkan perbedaan antara AIC dan validasi silang

Saat menerapkan validasi silang dalam pengaturan seri waktu, Anda dapat menggunakan bergulir windows. Anda akan mengambil pengamatan darit untuk t+m dimana m adalah panjang dan gulung jendela t dari 1 hingga T-m-1 dimana Tadalah ukuran sampel. Anda akan memperkirakan model Anda di setiap jendela bergulir dan memprediksi satu periode ke depan. Anda kemudian akan mengumpulkan prediksi ini dan membandingkannya dengan nilai aktual. Itu akan memberi Anda metrik out-of-sample kinerja perkiraan ketika menggunakan validasi silang dalam pengaturan seri waktu.

Lihat juga Hyndman dan Athanasopoulos "Peramalan: prinsip dan praktik", bagian 2.5 (gulirkan sepenuhnya) dan Bergmeir et al. "Catatan tentang validitas cross-validasi untuk mengevaluasi prediksi deret waktu" (2015, kertas kerja).

setidaknya secara visual, [model] yang dipilih oleh SSE berkinerja lebih baik

Bisa jadi residual model tidak memiliki asumsi distribusi atau model memiliki beberapa kesalahan lain yang membatalkan AIC dengan beberapa cara. Itulah salah satu argumen mengapa akurasi perkiraan out-of-sample bisa lebih disukai daripada AIC dalam pemilihan model.

Richard Hardy
sumber
Terima kasih, saya akan melakukan validasi silang seperti yang Anda sarankan dan saya akan memposting apa yang saya temukan. Terima kasih banyak
elikesprogramming