Saya mendapat pertanyaan tentang pemodelan seri waktu dalam R. data saya terdiri dari matriks berikut:
1 0.03333333 0.01111111 0.9555556
2 0.03810624 0.02309469 0.9387991
3 0.00000000 0.03846154 0.9615385
4 0.03776683 0.03119869 0.9310345
5 0.06606607 0.01201201 0.9219219
6 0.03900325 0.02058505 0.9404117
7 0.03125000 0.01562500 0.9531250
8 0.00000000 0.00000000 1.0000000
9 0.04927885 0.01802885 0.9326923
10 0.06106870 0.02290076 0.9160305
11 0.03846154 0.00000000 0.9615385
12 0.00000000 0.00000000 1.0000000
13 0.06028636 0.03843256 0.9012811
14 0.09646302 0.05144695 0.8520900
15 0.04444444 0.06666667 0.8888889
matriks ini memiliki total 200 baris.
seperti yang Anda lihat dalam setiap situasi jumlah dari setiap baris adalah 1, itu menjadi karena nilainya adalah persentase dari keseluruhan. misalnya baris 1 berisi 3,33% dari variabel a, 1,11% dari variabel 2 dan 95,5% dapat diverifikasi 3. kolom pertama menunjukkan tahun ketika nilai-nilai diukur.
target saya adalah membuat prediksi untuk 5 tahun ke depan, jadi dari tahun 200 hingga 205.
Saya dapat melakukannya dengan membuat tiga perkiraan deret waktu normal. Tetapi untuk ramalan itu jumlah totalnya tidak pernah sama dengan 1, yang sangat penting. Normaly menggunakan teknik seperti arima dan smoothing eksponensial.
Apakah ada yang tahu metode untuk membuat perkiraan untuk masalah seperti itu?
sumber
Jawaban:
Anda mencoba memperkirakan serangkaian waktu komposisi . Artinya, Anda memiliki tiga komponen yang semuanya dibatasi antara 0 dan 1 dan hingga 1.
Anda dapat mengatasi masalah ini menggunakan smoothing eksponensial standar, dengan menggunakan transformasi logistik umum yang sesuai. Ada presentasi mengenai hal ini oleh Koehler, Snyder, Ord & Beaumont di Simposium Internasional 2010 tentang Peramalan , yang berubah menjadi makalah ( Snyder et al., 2017, International Journal of Forecasting ).
Mari kita mulai dengan data Anda. Baca data ke dalam matriks
obs
deret waktu:Anda dapat memeriksa apakah ini berhasil dengan mengetik
Sekarang, Anda memiliki beberapa nol di sana, yang akan menjadi masalah setelah Anda mengambil logaritma. Solusi sederhana adalah dengan mengatur segala sesuatu yang kurang dari kecil ke :ϵ ϵ
Sekarang baris yang dimodifikasi tidak menjumlahkan 1 lagi. Kita dapat memperbaikinya (meskipun saya pikir ini dapat membuat perkiraan cuaca lebih buruk):
Sekarang kami mengubah data sesuai halaman 35 presentasi:
Muat
forecast
paket dan atur horizon 5 poin waktu:Sekarang model dan prakiraan kolom data yang diubah oleh kolom. Di sini saya hanya menelepon
ets()
, yang akan berusaha agar sesuai dengan model pemulusan eksponensial ruang keadaan. Ternyata itu menggunakan smoothing eksponensial tunggal untuk ketiga seri, tetapi terutama jika Anda memiliki lebih dari 15 periode waktu, itu dapat memilih model tren. Atau jika Anda memiliki data bulanan, jelaskan kepada R bahwa Anda memiliki potensi musiman, dengan menggunakants()
denganfrequency=12
- makaets()
akan melihat model musiman.Selanjutnya kami melakukan backform ulang ramalan sesuai halaman 38 dari presentasi:
Akhirnya, mari plot sejarah dan ramalan:
EDIT: makalah tentang peramalan seri waktu komposisi baru saja muncul. Saya belum membacanya, tetapi mungkin menarik.
sumber
ets()
dalamforecast
paket untuk smoothing eksponensial ruang ruang negara).