利用有马模型预测matlab中的汇率

时间:2016-08-19 14:52:33

标签: matlab forecasting autoregressive-models

让我们假设我们有一个国家的货币汇率样本被评为外币,样本量是229,这里是这个样本的图表

enter image description here

在分析了时间序列之后,让我们假设结论是在最佳水平上拟合这个时间序列的模型是在一阶差分后具有阶数3的自回归模型,所以我创建了以下

Mdl = arima(3,1,0);
EstMdl = estimate(Mdl,y);

我的问题是如何在229之后进行预测?我知道matlab中有功能预测,我尝试了这种方法的不同变体,但我不知道应该使用哪一种?所以我需要在229之后预测,所以例如我想预测时间指数为230?例如在229之后的10天?我需要很少的matlab代码

已编辑:

p=forecast(Mdl,y,15)
The value of 'numPeriods' is invalid. Expected forecast horizon to be a scalar.

1 个答案:

答案 0 :(得分:1)

您正在查看arima课程中的基本功能。一旦您进行了模型设置(即您已经对其进行了估算),您需要在估算的模型上运行预测,而不是模型本身。

试试这个,或者你想要的任何时期。

forecast(EstMdl, 12)

我生成了一组随机的Y变量来向您展示。

y=rand(100,1)
Mdl = arima(3,1,0);
EstMdl=estimate(Mdl,y)

查看Mdl变量,您会看到以下内容。

>> Mdl

Mdl = 

    ARIMA(3,1,0) Model:
    --------------------
    Distribution: Name = 'Gaussian'
               P: 4
               D: 1
               Q: 0
        Constant: NaN
              AR: {NaN NaN NaN} at Lags [1 2 3]
             SAR: {}
              MA: {}
             SMA: {}
        Variance: NaN

但如果你看看EstMdl

>> EstMdl

EstMdl = 

    ARIMA(3,1,0) Model:
    --------------------
    Distribution: Name = 'Gaussian'
               P: 4
               D: 1
               Q: 0
        Constant: -0.00644614
              AR: {-0.764413 -0.399603 -0.0888918} at Lags [1 2 3]
             SAR: {}
              MA: {}
             SMA: {}
        Variance: 0.108477

最后运行如下所示的代码可以显示汇率应该是多少。

    >> forecast(EstMdl, 12)

ans =

   -0.0064
   -0.0080
   -0.0107
   -0.0139
   -0.0167
   -0.0195
   -0.0224
   -0.0252
   -0.0281
   -0.0309
   -0.0338
   -0.0367

另一方面,您应该考虑ARIMA模型是否是汇率模型的最佳形式。