Kesalahan optimal saat mencocokkan model arima di R


8

Saya menggunakan metode arima paket statistik R dengan deret waktu 17376 elemen saya. Tujuan saya adalah untuk mendapatkan nilai kriteria AIC, saya amati dalam tes pertama saya ini:

 ts <- arima(serie[,1], order = c(2,1,1), seasonal = list(order=c(2,0,1),period = 24), 
         method = "CSS", optim.method = "BFGS",)
> ts$coef
           ar1        ar2        ma1       sar1       sar2       sma1 
     0.8883730 -0.0906352 -0.9697230  1.2047580 -0.2154847 -0.7744656 
    > ts$aic
[1] NA

Seperti yang Anda lihat, AIC tidak didefinisikan. Tentang AIC, "Bantuan" dalam R mengatakan bahwa itu hanya dapat digunakan dengan "ML". Namun, itu terjadi:

> ts <- arima(serie[,1], order = c(2,1,1), seasonal = list(order=c(2,0,1),period = 24), 
          method = "ML", optim.method = "BFGS",)

Error en optim(init[mask], armafn, method = optim.method, hessian = TRUE,  : 
  non-finite finite-difference value [1]

Plus: warning messages lost
In log(s2) : There have been NaNs

Saya tidak mengerti apa yang sedang terjadi. Saya juga ingin tahu lebih banyak tentang parameter "metode pas".


1
Bisakah Anda memasukkan representasi grafis dari data Anda?
mpiktas

3
Mengekstrak parameter dari solusi CSS dan meneruskannya sebagai nilai awal ke solver ML (melalui optim.controlargumen) akan memiliki peluang bagus untuk menghindari masalah ini. Saya belum menguji ini karena Anda tidak memberikan contoh kesulitan yang dapat direproduksi.
whuber

@whuber ini adalah arah yang benar. Dalam beberapa buku ekonometrik dikatakan bahwa ambil pertama dari nilai parameter solusi CSS sebagai nilai awal untuk fungsi objektif ML penuh.
Analis

Jawaban:


3

Menyesuaikan model ARIMA dengan Kemungkinan Maksimum (metode = "ML") memerlukan pengoptimalan (meminimalkan) model log-kemungkinan negatif ARIMA atas parameter. Ini ternyata menjadi masalah optimasi terbatas karena parameter harus menghasilkan model stasioner. Batasan nonlinier ini diperhitungkan dengan log negatif-kemungkinan kembali Inf (infinity) jika kendala tidak puas. Jika MLE dekat batas evaluasi kendala dari kemungkinan log negatif di dekat MLE dapat mengembalikan tak terhingga. Karena hessian diperoleh dengan diferensiasi numerik dengan mengevaluasi kemungkinan log negatif di dekat MLE, ini dapat menghasilkan kesalahan perbedaan hingga tidak terbatas yang Anda peroleh. Jadi jika hessian tidak diperlukan, letakkan hessian = FALSE. Jika tidak,


2

Diedit: jika Anda memilih ini, tolong jelaskan mengapa? Saya baru disini.

Saya memiliki masalah yang sama. Saya melihat-lihat online dan menemukan solusi yang disarankan di tempat lain di Cross Validated. Saya pikir saya akan berbagi di sini kalau-kalau ada yang menginginkannya.

Saya baru saja menambahkan "method =" CSS "" ke model saya dan itu berhasil. Sebagai contoh:

model = Arima(x, order=c(1,1,1), seasonal=list(order=c(1,1,1), period=12), xreg=xreg, 
              method="CSS") 

Inilah rujukannya:
auto.arima dan Arima (paket perkiraan)


Saya melihat sekarang jawaban Anda dan mungkin untuk data Anda Berhasil, tetapi untuk data saya tidak, target utama saya tahu Mengapa kesalahan pertanyaan saya terjadi dan mengapa metode ML tidak berfungsi dalam kasus saya atau yang lain
Cyberguille

3
Saya melihat ini menyelesaikan masalah tetapi bagaimana Anda akan menggunakan nilai AIC untuk membandingkan model yang berbeda misalnya ARIMA (1,1,2) kecuali Anda menggunakan metode ML atau CSS-ML? "Teori AIC mensyaratkan bahwa log-likelihood telah dimaksimalkan: sedangkan AIC dapat dihitung untuk model yang tidak dilengkapi dengan kemungkinan maksimum, nilai AIC mereka tidak boleh dibandingkan". stat.ethz.ch/R-manual/R-devel/library/stats/html/AIC.html OP membutuhkan nilai AIC.
Mumbo.Jumbo

0

Anda tampaknya memiliki masalah dengan konvergensi algoritma. Ini kadang-kadang terjadi dengan optimasi numerik.

Berikut ini tautan ke artikel wikipedia tentang metode pengoptimalan khusus ini:

http://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%808093Shanno_algorithm


3
ya, saya tahu ini kadang-kadang terjadi tetapi mengapa itu bekerja dengan metode pas dengan css dan dengan ml tidak, dan mengapa css tidak membuat AIC
Cyberguille

1
@GuillermoAyranTorresLores CSS didasarkan pada conditional likelihood dan tidak menghasilkan nilai likelihood yang sama yang dihasilkan oleh fungsi likelihood tanpa syarat ketika dioptimalkan untuk parameter yang sama.
Analis

1
@GuillermoAyranTorresLores mencoba mengubah masalah optimisasi Anda dengan cara yang pertama-tama mengambil nilai parameter dari solusi CSS sebagai nilai awal untuk fungsi objektif ML penuh.
Analis
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.