Saya memiliki empat seri pengukuran waktu yang berbeda:
- Konsumsi panas di dalam rumah
- Suhu di luar rumah
- Radiasi matahari
- Kecepatan angin
Saya ingin dapat memprediksi konsumsi panas di dalam rumah. Ada tren musiman yang jelas, baik secara tahunan, dan setiap hari. Karena ada korelasi yang jelas antara seri yang berbeda, saya ingin memasangnya dengan menggunakan model ARIMAX. Ini dapat dilakukan dalam R, menggunakan fungsi arimax dari paket TSA.
Saya mencoba membaca dokumentasi tentang fungsi ini, dan membaca tentang fungsi transfer, tetapi sejauh ini, kode saya:
regParams = ts.union(ts(dayy))
transferParams = ts.union(ts(temp))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams,xtransf=transferParams,transfer=list(c(1,1))
pred10 = predict(model10, newxreg=regParams)
memberi saya:
di mana garis hitam adalah data yang diukur sebenarnya, dan garis hijau adalah model yang cocok saya sebagai perbandingan. Bukan hanya itu bukan model yang baik, tetapi jelas ada sesuatu yang salah.
Saya akan mengakui bahwa pengetahuan saya tentang model-ARIMAX dan fungsi transfer terbatas. Dalam fungsi arimax (), (sejauh yang saya mengerti), xtransf adalah deret waktu eksogen yang ingin saya gunakan (menggunakan fungsi transfer) untuk memprediksi deret waktu utama saya. Tapi apa sebenarnya perbedaan antara xreg dan xtransf?
Secara umum, apa yang telah saya lakukan salah? Saya ingin bisa mendapatkan yang lebih baik daripada yang dicapai dari lm (panas ~ temp radi wind * time).
Suntingan: Berdasarkan beberapa komentar, saya menghapus transfer, dan menambahkan xreg sebagai gantinya:
regParams = ts.union(ts(dayy), ts(temp), ts(time))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams)
di mana dayy adalah "angka hari dalam setahun", dan waktu adalah jam dalam sehari. Temp adalah suhu di luar. Ini memberi saya hasil berikut:
mana yang lebih baik, tetapi tidak hampir seperti yang saya harapkan.