【问题标题】:Why does proc arima with NoEst throw 'There is not enough data to fit the model' error?为什么带有 NoEst 的 proc arima 会抛出“没有足够的数据来拟合模型”错误?
【发布时间】:2016-12-16 13:36:20
【问题描述】:

我在 SAS 9.4 中使用 proc arima 使用先前校准的模型生成预测,但它会抛出错误,就好像它正在尝试校准模型本身一样:

错误:没有足够的数据来拟合模型

样本数据:

data inputs;
input x var1 var2 var3 var4 var5;
datalines;
  20    5   2   4   5   4
  25    12  56  13  44  4
  20    5   2   4   5   4
  25    12  56  13  44  4
  20    5   2   4   5   4
  25    12  56  13  44  4
   .    2   5   6   5   4
;

失败的版本:

proc arima;
  identify 
    data = inputs 
    var = x
    crossCorr = ( var1 var2 var3 var4 var5 ) 
    noPrint;

  estimate 
    p = 1 input = ( var1 var2 var3 var4 var5 )
    ar = 0.9
    initVal = ( 0.1$var1 0.2$var2 0.3$var3 0.4$var4 0.4$var5 ) 
    noint 
    noEst /* Using noEst so should not need to do any estimation and short data-set should not be a problem */
    method=ml 
    noprint
;

  forecast lead=1 out=outputs noOutAll noprint;
quit;

如果我从模型中删除最终变量,它可以正常工作:

proc arima;
  identify 
    data = inputs 
    var = x
    crossCorr = ( var1 var2 var3 var4 ) 
    noPrint;

  estimate 
    p = 1 input = ( var1 var2 var3 var4 )
    ar = 0.9
    initVal = ( 0.1$var1 0.2$var2 0.3$var3 0.4$var4 ) 
    noint 
    noEst /* Using noEst so should not need to do any estimation and short data-set should not be a problem */
    method=ml 
    noprint 
;

  forecast lead=1 out=outputs noOutAll noprint;
quit;

我还可以通过向数据添加一个新值来使其“工作”。但是,如果模型已经校准(使用更多数据),则不需要这样做。

我检查了 SAS 文档,看看是否有任何标志可以防止导致此错误的不必要检查,但它们都没有帮助。

【问题讨论】:

  • 我无法从您的代码中分辨出哪个变量代表时间以及您的数据中有多少个先前的周期,但是 ARMIA 需要一定数量的先前周期进行预测,具体取决于订单或模型.如果我没记错的话,顺序模型 (p,d,q) 需要 max(p+d, q+d+1) 先前的观察。
  • 我在顶部的样本数据位有 6 个先前的观察结果。我在这里选择了最简单的模型,即 (1,0,0),因此根据您的公式,我应该只需要 1 次之前的观察(有一个单独的问题,SAS 似乎需要至少 6 次观察)。
  • 我认为我不需要提供时间变量,因为无论时间步长是多少,只要它是恒定时间步长,模型的行为都应该相同。它应用的限制基于我使用的预测变量的数量,因为如果我删除一个它可以正常工作。但这种检查只有在必须校准模型时才有意义,而事实并非如此。

标签: sas time-series


【解决方案1】:

答案已在 SAS 社区论坛上提供。这是已知的行为,因此不支持我不常见的用例。唯一的解决方法是添加一些虚拟数据,但在我的情况下,使用 MA 术语会改变结果。

Response on SAS Communities

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 2017-12-29
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多