auto.arima memperingatkan NaN yang diproduksi pada kesalahan std

9

Data saya adalah serangkaian waktu populasi yang dipekerjakan, L, dan rentang waktu, tahun.

n.auto=auto.arima(log(L),xreg=year)
summary(n.auto)
Series: log(L) 
ARIMA(2,0,2) with non-zero mean 

Coefficients:
         ar1      ar2      ma1     ma2  intercept    year
      1.9122  -0.9567  -0.3082  0.0254    -3.5904  0.0074
s.e.     NaN      NaN      NaN     NaN     1.6058  0.0008

sigma^2 estimated as 1.503e-06:  log likelihood=107.55
AIC=-201.1   AICc=-192.49   BIC=-193.79

In-sample error measures:
           ME          RMSE           MAE           MPE          MAPE 
-7.285102e-06  1.225907e-03  9.234378e-04 -6.836173e-05  8.277295e-03 
         MASE 
 1.142899e-01 
Warning message:
In sqrt(diag(x$var.coef)) : NaNs produced

mengapa ini terjadi? Mengapa auto.arima memilih model terbaik dengan kesalahan std dari koefisien ar * ma * ini Bukan Angka? Apakah model yang dipilih ini valid?

Tujuan saya adalah memperkirakan parameter n dalam model L = L_0 * exp (n * tahun). Adakah saran pendekatan yang lebih baik?

TIA.

data:

L <- structure(c(64749, 65491, 66152, 66808, 67455, 68065, 68950, 
69820, 70637, 71394, 72085, 72797, 73280, 73736, 74264, 74647, 
74978, 75321, 75564, 75828, 76105), .Tsp = c(1990, 2010, 1), class = "ts")
year <- structure(1990:2010, .Tsp = c(1990, 2010, 1), class = "ts")
L
Time Series:
Start = 1990 
End = 2010 
Frequency = 1 
 [1] 64749 65491 66152 66808 67455 68065 68950 69820 70637 71394 72085 72797
[13] 73280 73736 74264 74647 74978 75321 75564 75828 76105
Ivy Lee
sumber
Bisakah Anda memposting beberapa data sehingga kami dapat mereplikasi masalah?
Rob Hyndman
@RobHyndman memperbarui data
Ivy Lee
Silakan ketik dput(L)dan tempel output. Ini membuat replikasi sangat mudah.
Zach

Jawaban:

11

Jumlah koefisien AR mendekati 1 yang menunjukkan bahwa parameter berada di dekat tepi wilayah stasioneritas. Itu akan menyebabkan kesulitan dalam mencoba menghitung kesalahan standar. Namun, tidak ada yang salah dengan perkiraan, jadi jika yang Anda butuhkan hanyalah nilai , Anda sudah mendapatkannya.L.0

auto.arima()Dibutuhkan beberapa jalan pintas untuk mencoba mempercepat perhitungan, dan ketika itu memberikan model yang terlihat mencurigakan, itu ide yang baik untuk mematikan jalan pintas itu dan melihat apa yang Anda dapatkan. Pada kasus ini:

> n.auto <- auto.arima(log(L),xreg=year,stepwise=FALSE,approx=FALSE)
> 
> n.auto
Series: log(L) 
ARIMA(2,0,0) with non-zero mean 

Coefficients:
         ar1      ar2  intercept    year
      1.8544  -0.9061    11.0776  0.0081
s.e.  0.0721   0.0714     0.0102  0.0008

sigma^2 estimated as 1.594e-06:  log likelihood=107.19
AIC=-204.38   AICc=-200.38   BIC=-199.15

Model ini sedikit lebih baik (AIC yang lebih kecil misalnya).

Rob Hyndman
sumber
1
bagaimana jika kesalahan standar tidak dapat dihitung dan model perlu digunakan untuk perkiraan? Akankah hal itu menyebabkan interval kepercayaan yang tidak valid, tidak realistis dalam perkiraan? Dalam kasus saya (seri waktu panjang 35), menggunakan approximation=FALSEdan stepwise=FALSEmasih menghasilkan NaN untuk UK koefisien.
Mihael
4

Masalah Anda muncul dari spesifikasi yang berlebihan. Model perbedaan pertama sederhana dengan AR (1) cukup memadai. Tidak diperlukan struktur MA atau transformasi daya. Anda juga bisa memodelkan ini sebagai model perbedaan kedua karena koefisien ar (1) mendekati 1.0. Plot Actual / fit / forecast is masukkan deskripsi gambar di sinidan plot residual  kemungkinan outlier / inlier pada periode waktu 7dengan persamaan! masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini.Dalam ringkasan Estimasi tunduk pada Spesifikasi Model yang dalam hal ini ditemukan ingin ["mene mene tekel upharsin"]. Serius, saya sarankan Anda membiasakan diri dengan strategi identifikasi model dan tidak mencoba untuk menenggelamkan model Anda dengan struktur yang tidak beralasan. Terkadang lebih sedikit lebih banyak! Parsimony adalah tujuan! Semoga ini membantu ! Untuk menjawab pertanyaan Anda lebih lanjut, "Mengapa auto.arima memilih model terbaik dengan kesalahan std dari koefisien ar * ma * ini Bukan Angka? Jawaban yang mungkin adalah bahwa solusi ruang-ruang tidak semuanya mungkin karena model asumtif yang dicoba Tapi itu hanya dugaan saya .. Penyebab sebenarnya dari kegagalan mungkin asumsi Anda tentang log xform .. Transformasi seperti narkoba ..... ada yang baik untuk Anda dan ada yang tidak baik untuk Anda. Transformasi daya harus HANYA digunakan untuk memisahkan nilai yang diharapkan dari standar deviasi residu. Jika ada keterkaitan maka transformasi Box-Cox (yang mencakup log) mungkin lebih sesuai. Menarik transformasi dari belakang telinga Anda mungkin bukan ide yang baik.

Apakah model yang dipilih ini valid? Tentu saja tidak !

IrishStat
sumber
0

Saya telah menghadapi masalah serupa. Silakan, coba mainkan dengan optim.control dan optim.method. NaN ini adalah sqrt dari nilai negatif elemen diagonal dari matriks Hesse. Pemasangan ARIMA (2,0,2) adalah masalah nonlinier dan optim tampaknya konvergen ke titik sadel (di mana gradien adalah nol, tetapi matriks Hesse tidak didefinisikan positif) alih-alih kemungkinan maksimum.

0x2207
sumber