auto.arima std hatasıyla üretilen NaN'leri uyarır


9

Verilerim, istihdam edilen nüfusun zaman dizisi, L ve zaman aralığı, yıl.

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

bu neden oluyor? Auto.arima neden bu ar * ma * katsayılarının std hatası ile en iyi modeli seçer? Bu seçilen model sonuçta geçerli mi?

Amacım, L = L_0 * exp (n * yıl) modelindeki n parametresini tahmin etmektir. Daha iyi bir yaklaşım önerisi var mı?

TIA.

veri:

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

Sorunu tekrarlayabilmemiz için bazı veriler gönderebilir misiniz?
Rob Hyndman

@RobHyndman güncellenmiş veri
Ivy Lee

Lütfen dput(L)çıktıyı yazın ve yapıştırın. Bu, çoğaltmayı çok kolaylaştırır.
Zach

Yanıtlar:


11

AR katsayılarının toplamı 1'e yakındır, bu da parametrelerin durağanlık bölgesinin kenarına yakın olduğunu gösterir. Bu, standart hataları hesaplamaya çalışırken zorluklara neden olacaktır. Bununla birlikte, tahminlerde yanlış bir şey yoktur, bu yüzden ihtiyacınız olan şey değeri ise, .L0

auto.arima()hesaplamayı hızlandırmak için birkaç kısa yol alır ve şüpheli görünen bir model verdiğinde, bu kısa yolları kapatmak ve ne elde ettiğinizi görmek iyi bir fikirdir. Bu durumda:

> 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

Bu model biraz daha iyidir (örneğin daha küçük bir AIC).


1
standart hatalar hesaplanamazsa ve modelin tahmin için kullanılması gerekiyorsa ne olur? Bu, bir öngörmede geçersiz, gerçekçi olmayan küçük güven aralıklarına neden olur mu? Benim durumumda (35 uzunluklu bir zaman serisi), katsayıların SE'leri için NaN'leri kullanmak approximation=FALSEve stepwise=FALSEhala üretmek.
Mihael

4

Sorununuz fazla spesifikasyondan kaynaklanıyor. AR (1) ile basit bir ilk fark modeli oldukça yeterlidir. MA yapısı veya güç dönüşümü gerekmez. Ayrıca ar (1) katsayısı 1.0'a yakın olduğu için bunu ikinci bir fark modeli olarak da modelleyebilirsiniz. Fiili / form / tahminin resim açıklamasını buraya girinbir grafiği  zaman periyodunda olası aykırı / aykırı 7ve denklemli bir artık grafiktir ! resim açıklamasını buraya girinresim açıklamasını buraya girinÖzetle Tahmin, bu durumda ["mene mene tekel upharsin"] isteyen Model Spesifikasyonuna tabidir. Cidden, model tanımlama stratejilerini tanımanızı ve modellerinizi garanti edilmeyen bir yapı ile mutfak batırmaya çalışmamanızı öneririm. Bazen daha az ! Parsimony bir hedeftir! Bu yardımcı olur umarım ! "Auto.arima neden bu ar * ma * katsayılarının std hatası ile en iyi modeli seçer? Bir sayı değil?" varsayımsal modeller deniyor, ama bu sadece benim tahminim, başarısızlığın gerçek nedeni bir log xform varsayımı olabilir. Güç dönüşümleri SADECE kalıntıların standart sapmasından beklenen değeri ayırmak için kullanılmalıdır. Bağlantı varsa, o zaman bir Box-Cox dönüşümü (logları içerir) uygun olabilir. Kulaklarınızın arkasından bir dönüşüm çekmek iyi bir fikir olmayabilir.

Bu seçilen model sonuçta geçerli mi? Kesinlikle hayır !


0

Benzer sorunlarla karşılaştım. Lütfen optim.control ve optim.method ile oynamaya çalışın. Bu NaN'ler, Hesse matrisinin köşegen elemanlarının negatif değerlerinin sqrt değeridir. ARIMA'nın (2,0,2) takılması doğrusal olmayan bir sorundur ve optim, maksimum olasılık yerine bir eyer noktasına (gradyanın sıfır olduğu, ancak Hesse matrisinin pozitif olarak tanımlanmadığı) yakınsamış gibi görünüyordu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.