Prediksi Arimax: Menggunakan Paket Forecast

9

The arimaxfungsi dalam TSApaket adalah untuk pengetahuan saya satu-satunya Rpaket yang akan cocok dengan fungsi transfer untuk model intervensi. Tidak memiliki fungsi prediksi meskipun yang kadang-kadang diperlukan.

Apakah langkah-langkah berikut untuk mengatasi masalah ini, memanfaatkan forecastpaket yang sangat baik ? Apakah interval prediksi benar? Dalam contoh saya, kesalahan std adalah "tutup" untuk komponen.

  1. Gunakan fungsi paket arima ramalan untuk menentukan seri kebisingan pra-intervensi dan menambahkan penyesuaian outlier apa pun.
  2. Cocok dengan model yang sama arimaxtetapi tambahkan fungsi transfer
  3. Ambil nilai yang cocok untuk fungsi transfer (koefisien dari arimax) dan tambahkan sebagai xreg arima.
  4. Ramalan dengan arima
library(TSA)
library(forecast)
data(airmiles)
air.m1<-arimax(log(airmiles),order=c(0,0,1),
              xtransf=data.frame(I911=1*(seq(airmiles)==69)),
              transfer=list(c(1,0))
              )

air.m1

Keluaran:

Coefficients:
  ma1  intercept  I911-AR1  I911-MA0
0.5197    17.5172    0.5521   -0.4937
s.e.  0.0798     0.0165    0.2273    0.1103

sigma^2 estimated as 0.01223:  log likelihood=88.33
AIC=-168.65   AICc=-168.09   BIC=-155.02

Ini adalah filter, diperpanjang 5 periode lebih dari data

tf<-filter(1*(seq(1:(length(airmiles)+5))==69),filter=0.5521330,method='recursive',side=1)*(-0.4936508)
forecast.arima<-Arima(log(airmiles),order=c(0,0,1),xreg=tf[1:(length(tf)-5)])
forecast.arima

Keluaran:

Coefficients:
         ma1  intercept  tf[1:(length(tf) - 5)]
      0.5197    17.5173                  1.0000
s.e.  0.0792     0.0159                  0.2183

sigma^2 estimated as 0.01223:  log likelihood=88.33
AIC=-168.65   AICc=-168.28   BIC=-157.74

Kemudian untuk Memprediksi

predict(forecast.arima,n.ahead = 5, newxreg=tf[114:length(tf)])
B_Miner
sumber
1
+1, sangat pintar Saya tidak melihat ada yang salah dengan pendekatannya, se terlihat bagus, saya tidak yakin yang Anda maksud?
peramal
1
Peramal Ah! Saya merindukanmu! :) Saya maksudkan SE dari MA dan mencegat antara dua cocok. Varians residual identik. Saya berpikir bahwa varian residual adalah yang terpenting untuk kesalahan prediksi perkiraan dari model ARIMA (walaupun saya berkarat).
B_Miner
Sekarang saya mengerti, saya akan terkejut jika se tidak dekat, menjadi dekat baik, sigma ^ 2 digunakan untuk interval prediksi, tidak ada perbedaan antara dua model sehingga interval prediksi akan sama untuk arimax atau Arima saya percaya.
peramal
Cara Anda mendefinisikan tf <- filter(...)... Saya tersesat. Apakah Anda punya tips untuk memahaminya? Apa yang akan terjadi jika saya punya: I911-AR1: 0.55, I911-AR2: 0.66, I911-MA0: 0.49, I911-MA1: 0.39?
Konstantinos
1
Gagap jaring, untuk penyaringan, saya menemukan cukup banyak wawasan di sini: onlinecourses.science.psu.edu/stat510/node/75
Konstantinos

Jawaban:

8

Interval prediksi didasarkan pada varians residual seperti yang diperkirakan oleh optimalisasi kemungkinan maksimum.

Saya suka forecastfungsi dari forecastpaket:

fc <- forecast(forecast.arima,h = 5, xreg=tf[114:length(tf)])

yang memberi saya prediksi berikut:

  Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Jun 2005       17.61393 17.47222 17.75565 17.39720 17.83067
Jul 2005       17.51725 17.35753 17.67697 17.27299 17.76152
Aug 2005       17.51725 17.35753 17.67697 17.27299 17.76152
Sep 2005       17.51725 17.35753 17.67697 17.27299 17.76152
Oct 2005       17.51725 17.35753 17.67697 17.27299 17.76152

cara interval prediksi berfungsi adalah dengan rumus berikut:

yt±zσ mana adalah pengganda yang mengambil nilai-nilai seperti 1,96 untuk interval prediksi 95% dan 1,28 untuk 80% interval prediksi adalah standar deviasi residual dan perkiraan distribusi yang juga merupakan akar kuadrat dari sigma ^ 2 dalam estimasi kemungkinan maksimum. Saat Anda menunjukkan sigma ^ 2 (0,01223) identik di kedua model Anda, interval prediksi juga akan sama dan akan cocok.zσ

Jika Anda ingin memeriksanya,

Batas Atas:

> fc$mean[1]+sqrt(forecast.arima$sigma2)*1.96
[1] 17.83068

Batas Bawah:

> fc$mean[1]-sqrt(forecast.arima$sigma2)*1.96
[1] 17.39719

yang cocok dengan interval prediksi yang disediakan oleh forecastfungsi. Untuk menjawab pertanyaan Anda, ya forecastpaket pengungkit akan berfungsi dalam kasus ini dan interval prediksi akan benar.

peramal cuaca
sumber