auto.arima警告在标准错误下产生的NaN


9

我的数据是从业人口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

为什么会这样?auto.arima为什么会选择具有这些ar * ma *系数而不是数字的std误差的最佳模型?所选模型毕竟有效吗?

我的目标是估计模型L = L_0 * exp(n * year)中的参数n。有什么更好的建议吗?

TIA。

数据:

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

您可以发布一些数据以便我们重现问题吗?
罗伯·海德曼

@RobHyndman更新了数据
Ivy Lee

请输入dput(L)并粘贴输出。这使得复制非常容易。
Zach 2012年

Answers:


11

AR系数的总和接近1,这表明参数接近平稳区域的边缘。这将在尝试计算标准误差时造成困难。但是,估计没有错,因此,如果您需要的只是的值,就可以了。L0

auto.arima()需要一些捷径来尝试加快计算速度,并且当它给出一个看起来可疑的模型时,最好关闭这些捷径并查看得到的结果。在这种情况下:

> 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

此模型要好一些(例如,较小的AIC)。


1
如果无法计算标准误差并且需要将模型用于预测该怎么办?这会在预测中导致无效的,不切实际的较小置信区间吗?在我的情况(时间序列长度35的),采用approximation=FALSEstepwise=FALSE仍产生用于coefficiets的社会企业的NaN。
Mihael

4

您的问题是由规格过多引起的。一个带有AR(1)的简单的一阶差分模型就足够了。无需MA结构或功率变换。您也可以将其简单地建模为第二个差异模型,因为ar(1)系数接近1.0。实际/拟合/预测的在此处输入图片说明绘图为 时间段7的可能异常值/异常值,等式为残差的绘图!在此处输入图片说明在此处输入图片说明总而言之,估算受模型规范的约束,在这种情况下,模型规范被认为是缺乏[“ mene mene tekel upharsin”]。认真地说,我建议您使自己熟悉模型识别策略,而不要尝试以不必要的结构使模型沉入厨房。有时少即是多!简约是一个目标!希望这可以帮助 !为了进一步回答您的问题“为什么auto.arima会选择具有这些ar * ma *系数的std误差的最佳模型,而不是数字?可能的答案是,状态空间解决方案并非全部是因为尝试的假设模型,但这只是我的猜测,失败的真正原因可能是您对数xform的假设,转换就像毒品……..有些对您有好处,有些对您不利。只能使用功率变换将期望值与残差的标准偏差分离。如果存在链接,则可能适合进行Box-Cox转换(包括logs)。从耳朵后面拉一个变换可能不是一个好主意。

所选模型毕竟有效吗?当然不 !


0

我也遇到过类似的问题。请尝试使用optim.control和optim.method。这些NaN是黑森矩阵对角元素的负值的平方根。ARIMA(2,0,2)的拟合是非线性问题,优化似乎收敛到了一个鞍点(梯度为零,但Hesse矩阵不是正定义的),而不是似然最大值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.