Perbedaan deret waktu sebelum Arima atau di dalam Arima


12

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):

masukkan deskripsi gambar di sini

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.

X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1? Apakah Anda mengatakan saya "tidak membedakan" dengan salah?


1
Mengenai pembaruan Anda. 1) Saya tidak melihat ada gunanya melakukan ini. Arima () akan menghasilkan nilai dan perkiraan yang sesuai. Mengapa saya harus menghasilkan kode R tambahan untuk melakukan hal yang sama seperti Arima () sudah melakukannya? 2) Ya, tetapi membedakan X-hat tidak memberi Anda Y-hat. Jadi tidak membedakan Y-hat tidak memberi Anda X-hat.
Rob Hyndman

2
Terima kasih. 1) Merupakan latihan pembelajaran bagi saya. 2) Kesalahan saya dalam perhitungan dalam pertanyaan asli saya (menggunakan diffinv) adalah dalam menggunakan nilai yang dipasang dan bukan yang asli adalah apa yang saya pikir saya dapatkan dari ini. (?) ... yang mengarah ke # 1 tentang bagaimana cara yang benar tidak membedakan data. Saya tahu Arima akan melakukannya, hanya mencoba mengikuti contoh buku menggunakan persamaan.
B_Miner

Jawaban:


14

Ada beberapa masalah di sini.

  1. Jika Anda berbeda lebih dulu, maka Arima()akan cocok dengan model untuk data yang dibedakan. Jika Anda membiarkan Arima()melakukan pembedaan sebagai bagian dari prosedur estimasi, ia akan menggunakan difus sebelum inisialisasi. Ini dijelaskan dalam file bantuan untuk arima(). 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 membiarkan Arima()menangani perbedaan jika Anda menginginkan perkiraan atau nilai yang dipasang pada data asli (tidak berbeda).

  2. modBmodAArima()d=0d>0include.mean

  3. X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.

1
+1, saya akan memberikan 2 poin sebagai jawaban. Kudos untuk memasukkan yang lain 2.
mpiktas

Hyndman, terima kasih atas tanggapannya! Saya punya BANYAK untuk belajar tentang analisis deret waktu. Bisakah saya meminta tindak lanjut? Saya tidak yakin saya tahu persis apa yang harus dilakukan dengan informasi ini sehingga saya memposting tambahan untuk pertanyaan awal saya.
B_Miner

2

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.


Haruskah itu berdampak pada nilai-nilai yang dipasang dalam kasus ini antara arima (1,0,0) pada delta-y dan arima (1,1,0) pada y?
B_Miner

Dalam kedua kasus Anda memasang AR (1) untuk perbedaan pertama dari deret waktu, kan? Jika itu masalahnya dan metode kecocokannya sama, mereka harus melakukan hal yang persis sama. Bahkan tidak ada perbedaan dalam urutan operasi.
Michael R. Chernick

Sepertinya tidak menjadi masalah di sini. Mungkin @Rob_Hyndman akan check-in.
B_Miner

1

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.


0

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).


Apakah Anda berharap perbedaannya sebesar ini? Itu membuat saya berpikir saya melakukan sesuatu yang salah dalam bagaimana saya membalik dari perbedaan ke aslinya.
B_Miner

Bisakah Anda jelaskan apa yang Anda lakukan? Saya tidak pandai membaca kode R. Jika Anda mengambil jumlah perbedaan yang sama dari kedua cara dan cocok dengan model ARMA yang sama setelah berbeda, Anda harus mendapatkan hasil yang sama selama teknik pemasangannya sama (biasanya kuadrat bersyarat yang digunakan).
Michael R. Chernick

Dia mengambil beberapa data, cocok dengan ARIMA (1,1,0), kemudian mengambil perbedaan dan cocok dengan ARIMA (1,0,0). Akhirnya, ia membandingkan satu periode dari perkiraan sampel satu sama lain. Agaknya mereka berbeda, tetapi kami tidak dapat melihat grafik di pos.
John

yt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt
John

1
Akhirnya benar. Saya tidak bisa melakukan LaTex dalam 5 menit! Sebaik yang saya tahu persamaan di atas keluar dua arah.
Michael R. Chernick
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.