Menilai perkiraan rentetan waktu


11

Misalkan saya memiliki lebih dari 20.000 seri waktu bulanan mulai dari Jan'05 hingga Dec'11. Masing-masing mewakili data penjualan global untuk produk yang berbeda. Bagaimana jika, alih-alih menghitung perkiraan untuk masing-masing, saya hanya ingin fokus pada sejumlah kecil produk yang "benar-benar penting"?

Saya bisa memberi peringkat produk-produk tersebut dengan total pendapatan tahunan dan memangkas daftar menggunakan Pareto klasik. Masih nampak bagi saya bahwa, meskipun mereka tidak berkontribusi banyak pada bottom line, beberapa produk sangat mudah untuk diramalkan sehingga meninggalkan mereka akan menjadi penilaian yang buruk. Sebuah produk yang dijual senilai $ 50 setiap bulan selama 10 tahun terakhir mungkin tidak terdengar banyak, tetapi membutuhkan sedikit usaha untuk menghasilkan prediksi tentang penjualan di masa depan sehingga saya mungkin juga melakukannya.

Jadi katakanlah saya membagi produk saya dalam empat kategori: pendapatan tinggi / mudah diperkirakan - pendapatan rendah / mudah diperkirakan - pendapatan tinggi / sulit diperkirakan - pendapatan rendah / sulit diperkirakan.

Saya pikir akan masuk akal untuk meninggalkan hanya seri waktu milik kelompok keempat. Tetapi bagaimana tepatnya saya bisa mengevaluasi "perkiraan"?

Koefisien variasi sepertinya merupakan titik awal yang baik (saya juga ingat pernah melihat beberapa makalah tentang itu beberapa waktu yang lalu). Tetapi bagaimana jika seri waktu saya menunjukkan perubahan musiman / level / efek kalender / tren yang kuat?

Saya akan membayangkan saya harus mendasarkan evaluasi saya hanya pada variabilitas komponen acak dan bukan salah satu dari data "mentah". Atau apakah saya melewatkan sesuatu?

Adakah yang pernah menemukan masalah serupa sebelumnya? Bagaimana kalian akan melakukannya?

Seperti biasa, bantuan apa pun sangat dihargai!

Jawaban:


9

Inilah ide kedua berdasarkan stl.

Anda bisa memasukkan dekomposisi stl ke setiap seri, dan kemudian membandingkan kesalahan standar dari komponen sisanya dengan rata-rata data asli mengabaikan setiap tahun parsial. Seri yang mudah diprediksi harus memiliki rasio kecil se (sisa) terhadap rata-rata (data).

Alasan saya menyarankan mengabaikan sebagian tahun adalah bahwa musiman akan mempengaruhi rata-rata data sebaliknya. Dalam contoh dalam pertanyaan, semua seri memiliki tujuh tahun penuh, jadi itu bukan masalah. Tetapi jika seri diperpanjang sebagian hingga 2012, saya sarankan rerata dihitung hanya sampai akhir 2011 untuk menghindari kontaminasi musiman rerata.

Gagasan ini mengasumsikan bahwa rata-rata (data) masuk akal - yaitu bahwa data tersebut rata-rata diam (terlepas dari musiman). Ini mungkin tidak akan bekerja dengan baik untuk data dengan tren kuat atau unit root.

Ini juga mengasumsikan bahwa stl fit yang baik diterjemahkan ke dalam prakiraan yang baik, tapi saya tidak bisa memikirkan contoh di mana itu tidak benar sehingga mungkin asumsi yang ok.


Hai Rob, terima kasih sudah kembali padaku. Saya suka ide Anda, jadi saya akan mencobanya dan melihat apakah itu memberikan tingkat penyaringan yang diinginkan. Hanya satu hal lagi, apakah ada alasan khusus untuk menggunakan mean (data) lebih dari rata-rata (sisa)? Saya khawatir beberapa seri waktu saya mungkin memiliki tren yang agak kuat. Seri dekomposisi STL, sebaliknya, seharusnya tidak. Menurut Anda, apakah pendekatan yang telah kami sebutkan sejauh ini untuk menilai perkiraan / pencilan outlier cukup baik untuk diterapkan dalam lingkungan bisnis nyata? Atau itu terlalu "amatir"? Apakah Anda biasanya melakukan hal yang sangat berbeda?
Bruder

berarti (sisa) akan mendekati nol. Anda ingin membandingkan noise dengan skala data, jadi mean (data) harus ok. Tidak yakin bagaimana menghadapi tren Anda. Saya akan menguji pendekatan dengan hati-hati pada berbagai data sebelum percaya hasilnya.
Rob Hyndman

8

Ini adalah masalah yang cukup umum dalam peramalan. Solusi tradisional adalah untuk menghitung kesalahan persentase absolut rata-rata (MAPE) pada setiap item. Semakin rendah MAPE, semakin mudah diprediksi.

Satu masalah dengan itu banyak seri mengandung nilai nol dan kemudian MAPE tidak terdefinisi.

Saya mengusulkan solusi di Hyndman dan Koehler (IJF 2006) [versi pracetak ] menggunakan rata-rata skala kesalahan absolut (MASE). Untuk deret waktu bulanan, penskalaan akan didasarkan pada perkiraan naif musiman yang ada dalam sampel. Yaitu jika adalah pengamatan pada waktu , data tersedia dari waktu 1 hingga dan maka kesalahan skala adalah , di mana adalah perkiraan menggunakan metode peramalan apa pun yang Anda terapkan untuk item itu. Ambil nilai absolut rata-rata dari kesalahan yang diskalakan untuk mendapatkan MASE. Misalnya, Anda dapat menggunakan asal bergulir (aliasyttT

Q=1T12t=13T|ytyt12|,
qt=(yty^t)/Q y tythy^tytvalidasi silang seri waktu ) dan ambil nilai absolut rata-rata dari kesalahan satu langkah (atau -langkah) yang dihasilkan .h

Seri yang mudah diprediksi harus memiliki nilai MASE yang rendah. Di sini "mudah diperkirakan" ditafsirkan relatif terhadap perkiraan naif musiman. Dalam beberapa keadaan, mungkin lebih masuk akal untuk menggunakan ukuran dasar alternatif untuk mengukur hasilnya.


Hai Rob, terima kasih atas balasan Anda. Seperti biasa pendekatan Anda sangat rapi, lugas dan masuk akal. Saya sudah mengevaluasi perkiraan nilai tambah ( FTV ) terhadap model naif musiman sehingga ide Anda untuk menilai perkiraan menggunakan "ukuran dasar" yang sama terdengar sangat menarik. Satu-satunya masalah adalah bahwa, untuk menghitung MASE, saya harus memilih metode peramalan dan menjalankan simulasi untuk masing-masing 20000 time-series saya. Saya berharap bisa melihat seri yang mudah diramalkan sebelumnya, sehingga saya bisa menghemat waktu komputasi.
Bruder

Untuk beberapa alasan saya berpikir bahwa deret waktu dengan variabilitas relatif yang lebih rendah (yaitu CV) akan menghasilkan perkiraan yang lebih mudah & lebih akurat. Menghitung prakiraan dan kemudian, dan hanya mengukur kesalahan, semacam penolakan, saya pikir, tujuan saya. Saya kira yang ingin saya katakan adalah bahwa saya memandang MASE lebih seperti ukuran akurasi perkiraan daripada ukuran perkiraan. Tapi saya mungkin salah ... :)
Bruder

1
@ Bruder: 2 pemikiran: 1. Anda bisa melihat ramalan naif sederhana, bukan ramalan musiman. Perkiraan naif sederhana hanya menggunakan nilai seri waktu sebelumnya, dan akan mengambil tren yang kuat (dengan jeda 1 periode). 2. Dekomposisi STL adalah ide yang bagus. Jika residu sangat kecil dibandingkan dengan komponen musiman dan tren, maka Anda mungkin dapat dengan mudah memperkirakan seri.
Zach

1
@Rob - bagaimana dengan dekomposisi STL? Bisakah saya mendapatkan dua burung dengan satu batu (yaitu, melihat outlier dan menilai perkiraan, sehingga menilai perkiraan "benar")? Saya heran betapa banyak hal yang dapat saya capai hanya dengan STL dan model naif musiman. Tapi Anda tahu apa yang terjadi ketika segala sesuatu terlalu bagus untuk menjadi kenyataan ...
Bruder

1
Saya percaya bahwa indeks jumlah harus bukannya . iti
blakeoft

5

Anda mungkin tertarik dengan ForeCA: Analisis Komponen yang Dapat Diprediksi (disclaimer: Saya penulisnya). Seperti namanya, ini adalah teknik reduksi dimensi / pemisahan sumber buta (BSS) untuk menemukan sinyal yang paling dapat diprediksi dari banyak seri waktu multivarian - lebih atau kurang stasioner - waktu. Untuk kasus khusus Anda dari 20.000 seri waktu, mungkin bukan hal tercepat untuk dilakukan (solusinya melibatkan spektrum daya multivarian dan berulang, pembaruan analitik dari penimbang bobot terbaik; lebih lanjut saya kira ini mungkin akan menjadi masalah .)pn

Ada juga paket R ForeCA yang tersedia di CRAN (sekali lagi: Saya penulis) yang mengimplementasikan fungsionalitas dasar; sekarang ini mendukung fungsionalitas untuk memperkirakan ukuran prakiraan untuk deret waktu univariat dan ia memiliki beberapa fungsi pembungkus yang baik untuk spektrum multivarian (lagi-lagi deret waktu 20.000 mungkin terlalu banyak untuk ditangani sekaligus).Ω(xt)

Tetapi mungkin Anda dapat mencoba menggunakan ukuran MASE yang diusulkan oleh Rob untuk membuat pemisahan grid kasar dari 20.000 dalam beberapa sub-kelompok dan kemudian menerapkan ForeCA untuk masing-masing secara terpisah.


0

Jawaban ini sangat terlambat, tetapi bagi mereka yang masih mencari ukuran perkiraan yang tepat untuk seri waktu permintaan produk, saya sangat menyarankan untuk melihat perkiraan entropi .

Adanya pola fluktuasi berulang dalam deret waktu menjadikannya lebih mudah diprediksi daripada deret waktu di mana pola tersebut tidak ada. ApEn mencerminkan kemungkinan bahwa pola pengamatan yang sama tidak akan diikuti oleh pengamatan serupa yang serupa. [7] Serangkaian waktu yang mengandung banyak pola berulang memiliki ApEn yang relatif kecil; proses yang kurang dapat diprediksi memiliki ApEn yang lebih tinggi.

Permintaan produk cenderung memiliki komponen musiman yang sangat kuat, membuat koefisien variasi (CV) tidak sesuai. ApEn (m, r) dapat menangani ini dengan benar. Dalam kasus saya, karena data saya cenderung memiliki musiman mingguan yang kuat, saya menetapkan parameter m = 7 dan r = 0,2 * std seperti yang direkomendasikan di sini .


Dalam artikel wikipedia, apa artinya? u
blakeoft

Saya mengerti sekarang. Saya pikir dan terkait, tetapi mereka sebenarnya tidak. u *uu
blakeoft
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.