Nilai "Frekuensi" untuk data interval detik / menit dalam R

28

Saya menggunakan R (3.1.1), dan model ARIMA untuk perkiraan. Saya ingin tahu apa yang seharusnya menjadi parameter "frekuensi", yang ditugaskan dalam ts()fungsi , jika saya menggunakan data deret waktu yaitu:

  1. dipisahkan oleh menit dan tersebar lebih dari 180 hari (1440 menit / hari)
  2. dipisahkan oleh detik dan tersebar selama 180 hari (86.400 detik / hari).

Jika saya ingat benar definisi, "frekuensi" dalam ts dalam R, adalah jumlah pengamatan per "musim".

Pertanyaan bagian 1:

Apa "musim" dalam kasus saya?

Jika musim adalah "hari", lalu apakah "frekuensi" untuk menit = 1440 dan 86.400 untuk detik?

Pertanyaan bagian 2:

Bisakah "frekuensi" juga tergantung pada apa yang saya coba capai / ramalkan? misalnya, dalam kasus saya, saya ingin memiliki perkiraan jangka pendek. Selangkah lebih maju dari 10 menit setiap kali. Maka apakah mungkin untuk mempertimbangkan musim sebagai satu jam, bukan satu hari? Dalam hal frekuensi = 60 untuk menit, frekuensi = 3600 untuk detik?

Saya sudah mencoba misalnya menggunakan frekuensi = 60 untuk data menit dan mendapatkan hasil yang lebih baik dibandingkan dengan frekuensi = 1440 (digunakan fourierlihat tautan di bawah oleh Hyndman) http://robjhyndman.com/hyndsight/forecasting-weekly-data/

(Perbandingan dibuat dengan menggunakan MAPE untuk mengukur akurasi perkiraan)

Seandainya hasilnya lengkap arbitrer, dan frekuensinya tidak dapat diubah. Apa yang sebenarnya menjadi interpretasi menggunakan freq = 60 pada data saya?

Saya juga berpikir perlu menyebutkan bahwa data saya mengandung musiman setiap jam dan setiap dua jam (dengan mengamati data mentah dan fungsi Autokorelasi)

Apython
sumber

Jawaban:

38

"Frekuensi" adalah jumlah pengamatan per "siklus" (biasanya satu tahun, tetapi kadang-kadang seminggu, sehari, satu jam, dll). Ini adalah kebalikan dari definisi frekuensi dalam fisika, atau dalam analisis Fourier, di mana "periode" adalah panjang siklus, dan "frekuensi" adalah kebalikan dari periode. Saat menggunakan ts()fungsi dalam R, pilihan berikut harus digunakan.

Data      frequency
Annual     1
Quarterly  4
Monthly   12
Weekly    52

Sebenarnya, tidak ada 52 minggu dalam setahun, tetapi rata-rata 365,25 / 7 = 52,18. Tetapi sebagian besar fungsi yang menggunakan tsobjek membutuhkan frekuensi integer.

Setelah frekuensi pengamatan lebih kecil dari satu minggu, maka biasanya ada lebih dari satu cara menangani frekuensi. Misalnya, data yang diamati setiap menit mungkin memiliki musiman per jam (frekuensi = 60), musiman setiap hari (frekuensi = 24x60 = 1440), musiman musiman (frekuensi = 24x60x7 = 10080) dan musiman musiman (frekuensi = 24x60x365.25 = 525960). Jika Anda ingin menggunakan tsobjek, maka Anda harus memutuskan mana yang paling penting.

Alternatifnya adalah dengan menggunakan mstsobjek (didefinisikan dalam forecastpaket) yang menangani beberapa seri waktu musiman. Kemudian Anda dapat menentukan semua frekuensi yang mungkin relevan. Ini juga cukup fleksibel untuk menangani frekuensi non-integer.

Anda tidak perlu ingin memasukkan semua frekuensi ini --- hanya frekuensi yang mungkin ada dalam data. Karena Anda hanya memiliki data 180 hari, Anda mungkin dapat mengabaikan musiman musiman. Jika data pengukuran dari fenomena alam (misalnya, suhu), Anda mungkin juga bisa mengabaikan musiman musiman.

Dengan beberapa musiman, Anda bisa menggunakan model TBATS, atau istilah Fourier dalam model regresi atau ARIMA. The fourierfungsi dari paket perkiraan akan menangani mstsbenda.

Rob Hyndman
sumber
Variasi jawaban ini telah diposting di blog saya: robjhyndman.com/hyndsight/seasonal- Periods
Rob Hyndman
Prof. Hyndman, terima kasih banyak atas posting Anda! Saya senang pertanyaan saya dijawab.
Apython