预测5个变量的BEKK(1,1)模型

时间:2017-07-04 12:54:57

标签: r time-series forecasting volatility

我估算了一个BEKK(1,1)模型,现在我想要预测模型的值。以下是用于估算R模型的BEKK(1,1)代码。

> install.packages('MTS')
> install.packages('rmgarch')
> simulated <- simulateBEKK(2, 1000, c(1, 1))

##prepare the matrix:
> simulated <- do.call(cbind, simulated$eps)

##Estimate with default arguments:
> estimated <- BEKK(simulated)
> diagnoseBEKK(estimated)

2 个答案:

答案 0 :(得分:0)

既然你的问题(这是一个问题吗?)并没有真正说明你想要实现的目标(并混合包/命令),我将回答我认为你想知道的事情。

首先,您描述的命令来自包 mgarchBEKK ,而不是MTSrmgarch

我会坚持你的例子,它有两个系列(不是五个,就像你的标题暗示的那样)。

<强> 1。模型模拟与估算

您运行代码(示例实际上来自documentation, page 4

install.packages('mgarchBEKK')
library('mgarchBEKK')
## Simulate series: (2 = number of series to be simulated,
##                   1000 = length of series to be simulated,
##                   c(1,1) = BEKK(p, q) order. 
simulated = simulateBEKK(2, 1000, c(1,1))
## Prepare the matrix:
simulated = do.call(cbind, simulated$eps)
## Estimate with default arguments:
estimated = BEKK(simulated)

现在,您已将所有信息存储在estimated中。假设你的输入变量是e。 G。来自股票或指数的每日回报系列H的最后一个值将是您对明天的条件方差的预测,以及您对明天条件相关的预测的最后一个值。所以基本上是1天的预测。

<强> 2。准备数据

您可以将条件标准偏差和条件相关性存储在sepearte数据框中以方便使用。像:

results = data.frame('bekk.csd.variable1' = estimated$sd[[1]],
                     'bekk.csd.variable2' = estimated$sd[[2]],
                     'bekk.ccor.var1_var2' = estimated$[[1]][[2]])

第3。显示结果

然后显示条件波动率和条件相关性的1天/期间预测:

tail(results, n = 1)

答案 1 :(得分:0)

号,

我认为你的代码遗漏了一些东西。在第2部分。以下是我认为可以解决的问题:

results = data.frame('bekk.csd.variable1' = estimated$sd[[1]],
                 'bekk.csd.variable2' = estimated$sd[[2]],
                 'bekk.ccor.var1_var2' = estimated$cor[[1]][[2]])

希望这有帮助。