模拟ARMA(1,1)的回报 - MCsGARCH(1,1)模型

时间:2017-07-18 21:09:28

标签: r forecasting estimation volatility

如何在R中找到ARMA(1,1) - MCsGARCH(1,1)模型的预期日内回报?

该模型的示例代码位于http://www.unstarched.net/2013/03/20/high-frequency-garch-the-multiplicative-component-garch-mcsgarch-model/

1 个答案:

答案 0 :(得分:0)

我认为你在这里混淆了一些东西。没有“预期的日内回报”,对于ARMA(1,1) - MCsGARCH(1,1),只有对下一个时期/日的波动性的估计(sigma,正如您在评论中已经注意到的那样) )。

假设 您指的是您提供的网站上的最后一个情节,这意味着您想要知道VaR(风险价值)用估算程序的波动率计算。

如果你看一下用于提供情节的代码:

D = as.POSIXct(rownames(roll@forecast$VaR))
VaRplot(0.01, actual = xts(roll@forecast$VaR[, 3], D), VaR = xts(roll@forecast$VaR[,1], D))

您可以看到VaR(和返回)从对象roll中获取的位置。在运行模拟之后(不更改示例中的任何变量名称),您可以将它们存储在变量中以供以后使用,如下所示:

my_VaR = roll@forecast$VaR[, 1]
my_act = roll@forecast$VaR[, 3]

VaR, 1]是VaR的第一个听众。如果你检查str(roll),那么你最后会看到:

  • 元素1:代表alpha(1%)VaR
  • 元素2:代表alpha(5%)VaR和
  • 元素3:代表实现的回报。

要在评论中说明您的意见:
查看变量df(从as.data.frame(roll)生成,可能包含您要查找的内容。

  

我想比较预期回报和实际回报。

这似乎在Cross Validated方向上有所偏差,但我会尝试简要介绍一下。

GARCH模型主要用于波动率预测,并了解时间序列的波动率动态(和/或多变量模型中的相关动态)。现在因为方差是of the second moment,它转换为平方,所以它总是正的。但回报总是积极的吗?当然他们不是。这意味着波动率预测让我们了解下一个时期的回报幅度,但在那时我们不知道它将是正回报还是负回报。那就是风险价值(VaR)发挥作用。

拿e。 G。拥有一项资产的投资组合经理。使用GARCH模型,他可以预测下一个时期的波动性(假设他使用的是每日回报系列,那么那将是明天)。交易者观察他们投资组合的风险,它比潜在的机会更加密切监控。因此,通过波动性预测,他可以很好地猜测他明天的资产价值下降的风险。 95%-VaR可以说1000欧元意味着,明天的风险(或损失)概率为95%,不会超过1,000欧元。更高的可能性带来更少的确定性,因此99%-VaR会更高,例如。 G。 1,500欧元。

要把它包起来:没有“预期的”回归,明天只有一个波动率预测会给出明天的回报(从不确定) 可以结果。使用VaR,这可用于风险管理。这就是您提供的文章的最后部分所做的工作。

  

ugarchsim和roll功能有什么区别?

您可以查看rugarch package的文档,其中详细说明了每个函数及其属性。如果您想将模型拟合到完整的时间序列,我会快速浏览一下ugarchsim。最后一个标准偏差是下一个时期的预测。 ugarchroll的文档说:

  

ugarchroll-methods {rugarch}功能:单变量GARCH滚动   密度预测和回溯测试

     

描述
  从ARMA-GARCH模型创建滚动密度预测的方法,其中包含用于重新安排每n个周期的选项   并行功能。用于预测也是如此   回溯测试。

如果你想测试你的模型在过去的执行情况。它只需要e。 G。提供的前300个数据点并给出数据点301的预测。然后将VaR(95%或99%)与数据点301的实现返回进行比较。然后重新拟合模型,给出数据点302的预测,依此类推上。

编辑:添加了评论中问题的答案。