Apakah lebih baik untuk membedakan rangkaian (dengan asumsi perlu) sebelum menggunakan Arima ATAU lebih baik menggunakan parameter d dalam Arima?
Saya terkejut betapa berbedanya nilai-nilai yang dipasang tergantung pada rute mana yang diambil dengan model dan data yang sama. Atau apakah saya melakukan sesuatu yang salah?
install.packages("forecast")
library(forecast)
wineindT<-window(wineind, start=c(1987,1), end=c(1994,8))
wineindT_diff <-diff(wineindT)
#coefficients and other measures are similar
modA<-Arima(wineindT,order=c(1,1,0))
summary(modA)
modB<-Arima(wineindT_diff,order=c(1,0,0))
summary(modB)
#fitted values from modA
A<-forecast.Arima(modA,1)$fitted
#fitted from modB, setting initial value to the first value in the original series
B<-diffinv(forecast.Arima(modB,1)$fitted,xi=wineindT[1])
plot(A, col="red")
lines(B, col="blue")
MENAMBAHKAN:
Harap dicatat bahwa saya membedakan seri satu kali dan menyesuaikan arima (1,0,0) kemudian saya menyesuaikan arima (1,1,0) dengan seri asli. Saya (saya pikir) membalikkan perbedaan pada nilai-nilai yang dipasang untuk arima (1,0,0) pada file yang dibedakan.
Saya membandingkan nilai yang dipasang - bukan prediksi.
Berikut ini plotnya (merah adalah arima (1,1,0) dan biru adalah arima (1,0,0) pada seri yang dibedakan setelah diubah kembali ke skala asli):
Tanggapan untuk Jawaban Dr. Hyndman:
1) Dapatkah Anda mengilustrasikan dalam kode R apa yang perlu saya lakukan untuk mendapatkan dua nilai yang cocok (dan mungkin perkiraan) untuk mencocokkan (memungkinkan perbedaan kecil karena poin pertama Anda dalam jawaban Anda) antara Arima (1,1, 0) dan Arima (1,0,0) pada seri yang dibedakan secara manual? Saya berasumsi ini ada hubungannya dengan mean yang tidak dimasukkan dalam modA, tetapi saya tidak sepenuhnya yakin bagaimana untuk melanjutkan.
? Apakah Anda mengatakan saya "tidak membedakan" dengan salah?
sumber
Jawaban:
Ada beberapa masalah di sini.
Jika Anda berbeda lebih dulu, maka
Arima()
akan cocok dengan model untuk data yang dibedakan. Jika Anda membiarkanArima()
melakukan pembedaan sebagai bagian dari prosedur estimasi, ia akan menggunakan difus sebelum inisialisasi. Ini dijelaskan dalam file bantuan untukarima()
. Jadi hasilnya akan berbeda karena perbedaan cara pengamatan awal ditangani. Saya tidak berpikir itu membuat banyak perbedaan dalam hal kualitas estimasi. Namun, jauh lebih mudah untuk membiarkanArima()
menangani perbedaan jika Anda menginginkan perkiraan atau nilai yang dipasang pada data asli (tidak berbeda).modB
modA
Arima()
include.mean
sumber
Terkadang Anda perlu menghapus cara lokal untuk membuat seri stasioner. Jika seri asli memiliki acf yang tidak padam, ini bisa disebabkan oleh level / step shift dalam seri. Obatnya adalah de-berarti seri.
TANGGAPAN TERHADAP BOUNTY:
Cara untuk mendapatkan hasil yang sama / nilai yang cocok adalah setelah secara fisik membedakan oroiginal (Y (t) seri untuk mendapatkan perbedaan pertama (dely), perkirakan AR (1) tanpa konstanta. Ini sama saja dengan memasang model OLS dari model form dely (t) = B1 * dely (t-1) + a (t) TANPA intersep. Nilai-nilai yang dipasang dari model ini, yang terintegrasi secara berurutan pada pesanan 1 akan (saya percaya) memberikan Anda nilai-nilai yang cocok dari suatu model; [ 1-B] [AR (1)] Y (t) = a (t). Sebagian besar perangkat lunak, dengan pengecualian AUTOBOX yang disebutkan TIDAK akan memungkinkan Anda untuk memperkirakan model AR (1) tanpa konstanta. persamaan untuk dely = + [(1- .675B * 1)] ** - 1 [A (T)] sedangkan persamaan untuk Y adalah
[(1-B * 1)] Y (T) = + [(1- .676B * 1)] ** - 1 [A (T)]. Catat kesalahan pembulatan yang disebabkan oleh perbedaan fisik Y. Perhatikan bahwa ketika perbedaan sedang berlaku (dalam model) ATAU tidak, pengguna dapat memilih apakah akan menyertakan atau tidak memasukkan konstanta. Proses normal adalah memasukkan konstanta untuk model ARIMA stasioner (mis. Tidak terdiferensiasi) dan secara opsional memasukkan konstanta ketika perbedaan berada dalam model. Tampaknya pendekatan alternatif (Arima) memaksa konstan ke model stasioner yang menurut saya telah menyebabkan dilema Anda.
sumber
Saya tidak tahu mengapa akan ada perbedaan dalam hasil kecuali jika entah bagaimana Anda membedakan lebih dari satu cara daripada yang lain. untuk ARIMA (p, d, q) perbedaan d dilakukan terlebih dahulu sebelum pemasangan model apa pun. Kemudian model ARMA stasioner (p, q) cocok dengan seri dibedakan. Asumsinya adalah bahwa setelah penghapusan tren polinomial dalam seri seri yang tersisa adalah stasioner. Jumlah perbedaan sesuai dengan urutan polinomial yang ingin Anda hapus. Jadi untuk tren linier Anda hanya mengambil satu perbedaan, untuk tren kuadratik Anda mengambil dua perbedaan. Saya tidak setuju dengan sebagian besar dari apa yang dikatakan dalam jawaban John.
sumber
Salah satu alasan untuk membedakan seri I (1) adalah membuatnya seri. Dengan anggapan Anda memiliki spesifikasi yang benar untuk model ARIMA, residu untuk model akan menghilangkan komponen autoregresif dan rata-rata bergerak dan harus diam. Dalam hal itu masuk akal untuk menggunakan residu untuk model, daripada membedakan. Namun, dalam keadaan di mana Anda memiliki banyak data yang menurut Anda kira-kira I (1), beberapa orang hanya akan membedakan data daripada memperkirakan model ARIMA sepenuhnya. Model ARIMA dapat memenuhi semua masalah rangkaian waktu di mana mungkin tidak masuk akal untuk perbedaan. Misalnya, jika data mengalami pembalikan rata-rata, ini mungkin tidak selalu sesuai untuk perbedaan karena mungkin bukan saya (1).
sumber