Saya ingin menggabungkan perkiraan dan backcasted (yaitu nilai-nilai masa lalu yang diprediksi) dari data time-series yang ditetapkan ke dalam satu time-series dengan meminimalkan Mean Squared Prediction Error.
Katakanlah saya memiliki deret waktu dari 2001-2010 dengan celah untuk tahun 2007. Saya telah dapat meramalkan 2007 menggunakan data 2001-2007 (garis merah - menyebutnya ) dan melakukan backcast menggunakan data 2008-2009 (biru muda) line - sebut saja ).Y b
Saya ingin menggabungkan titik data dan menjadi titik data Y_i yang diperhitungkan untuk setiap bulan. Idealnya saya ingin mendapatkan bobot sedemikian rupa sehingga meminimalkan Kesalahan Prediksi Kuadrat Rata-Rata (MSPE) dari . Jika ini tidak memungkinkan, bagaimana saya bisa menemukan rata-rata antara dua titik data seri waktu?Y b w Y i
Sebagai contoh cepat:
tt_f <- ts(1:12, start = 2007, freq = 12)
tt_b <- ts(10:21, start=2007, freq=12)
tt_f
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2007 1 2 3 4 5 6 7 8 9 10 11 12
tt_b
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2007 10 11 12 13 14 15 16 17 18 19 20 21
Saya ingin mendapatkan (hanya menunjukkan rata-rata ... Idealnya meminimalkan MSPE)
tt_i
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2007 5.5 6.5 7.5 8.5 9.5 10.5 11.5 12.5 13.5 14.5 15.5 16.5
sumber
predict
fungsi paket perkiraan. Namun, saya pikir saya akan menggunakan model peramalan HoltWinters untuk memprediksi dan membatalkan. Saya memiliki deret waktu dengan jumlah <50, dan mencoba perkiraan regresi Poisson - tetapi untuk beberapa alasan prediksi sangat lemah.NA
nilai? Tampaknya membuat periode pembelajaran MSPE bisa menyesatkan karena sub-periode 'dijelaskan dengan baik oleh kecenderungan linier, tetapi pada periode yang terlewatkan, penurunan di suatu tempat terjadi, dan itu sebenarnya bisa berupa titik apa pun. Perhatikan juga bahwa karena prakiraannya adalah tren linier, rata-rata mereka akan memperkenalkan dua jeda struktural bukannya satu.Jawaban:
Dengan asumsi Anda memiliki Kesalahan Prediksi Kuadrat untuk perkiraan dan backcast secara individual, saya akan merekomendasikan ini: Biarkan w menjadi vektor dengan panjang 12, biarkan m menjadi bulan yang Anda minati.
Sekarang w adalah bobot untuk ramalan dan 1-w adalah bobot untuk backcast.
sumber
s/w/m/
Ketika model deret waktu dapat dimasukkan ke dalam bentuk State Space (SS), smoothing FI adalah operasi standar berdasarkan penyaringan Kalman dan dapat dilakukan misalnya menggunakan fungsi R yang tersedia. Anda hanya perlu menentukan bahwa nilai-nilai di celah tersebut hilang. Algoritma smoothing memperkirakan status tersembunyi yang berisi semua informasi yang relevan tentang untuk di celah. Model ARIMA dapat dimasukkan dalam bentuk SS.Y t tαt Yt t
Menariknya, penghalusan FI dapat ditulis sebagai kombinasi dari dua filter: satu ke depan dan satu ke belakang, mengarah ke formula seperti yang Anda harapkan, tetapi untuk estimasi status tersembunyi (perkiraan dan backcast), tapi tidak untuk pengamatan . Ini dikenal sebagai penyaringan Rauch-Tung-Striebel .Y tαt Yt
Setidaknya dalam versi multiplikatif, prosedur peramalan 'ad hoc' seperti Holt-Winters mengandalkan model stokastik tanpa algoritma FI sederhana karena tidak dapat dimasukkan ke dalam bentuk SS. Formula penghalusan mungkin dapat diperkirakan dengan menggunakan model SS, tetapi jauh lebih sederhana untuk menggunakan model Structural Time Series dengan transformasi log. Fungsi 'KalmanSmooth', 'tsSmooth' dan 'StructTS' dari paket statistik R dapat melakukan pekerjaan itu. Anda harus melihat buku-buku karya Harvey atau oleh Durbin dan Koopman yang dikutip di halaman bantuan R. Algoritma smoothing dapat memberikan varian bersyarat untuk estimasiYt dan dapat digunakan untuk membangun interval smoothing, yang biasanya cenderung lebih besar di tengah celah. Namun perlu dicatat bahwa estimasi Model Stuktural bisa sulit.
sumber
Saya menemukan pendekatan yang Anda sarankan, untuk mengambil cara para pemain depan dan belakang, menarik.
Satu hal yang mungkin perlu ditunjukkan adalah bahwa dalam sistem apa pun yang memperlihatkan struktur kacau, perkiraannya cenderung lebih akurat dalam periode yang lebih pendek. Itu tidak berlaku untuk semua sistem, misalnya pendulum teredam dapat dimodelkan oleh fungsi dengan periode yang salah, dalam hal ini semua perkiraan jangka menengah cenderung salah, sedangkan yang jangka panjang semuanya akan menjadi sangat akurat, karena sistem konvergen ke nol. Tetapi bagi saya, dari grafik di pertanyaan, bahwa ini mungkin asumsi yang masuk akal untuk dibuat di sini.
Itu menyiratkan bahwa kita mungkin lebih baik lebih mengandalkan data perkiraan untuk bagian awal dari periode yang hilang, dan lebih banyak pada data back-cast untuk bagian terakhir. Cara paling sederhana untuk melakukan ini adalah menggunakan bobot yang menurun secara linear untuk perkiraan, dan sebaliknya untuk pemain belakang:
Ini memberikan sedikit bobot backcast pada elemen pertama. Anda juga bisa menggunakan n-1, tanpa subskrip di akhir, jika Anda hanya ingin menggunakan nilai perkiraan pada titik interpolasi pertama.
Saya tidak memiliki data Anda, jadi mari kita coba ini pada dataset AirPassenger di R. Saya hanya akan menghapus periode dua tahun di dekat pusat:
Dan ada interpolasi Anda.
Tentu saja, itu tidak sempurna. Saya kira itu adalah hasil dari pola di bagian awal data yang berbeda dengan pola di bagian terakhir (puncak Juli-Agustus tidak begitu kuat di tahun-tahun sebelumnya). Tapi seperti yang bisa Anda lihat dari gambar, itu jelas lebih baik daripada hanya perkiraan atau pengecoran kembali saja. Saya akan membayangkan bahwa data Anda mungkin mendapatkan hasil yang sedikit kurang andal, karena tidak ada variasi musiman yang kuat.
Dugaan saya adalah Anda bisa mencoba ini termasuk interval kepercayaan juga, tapi saya tidak yakin validitas melakukannya sesederhana ini.
sumber