如何在 R 中找到 ARMA(1,1) - MCsGARCH(1,1) 模型的预期日内回报?
1 回答
我认为你在这里混淆了一些东西。没有“预期的日内回报”,对于 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))
您可以看到从 object 获取的 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 模型主要用于波动率预测和了解时间序列的波动率动态(和/或多元模型中的相关动态)。现在,由于方差是二阶矩,转换为平方,它总是正的。但是回报总是积极的吗?当然不是。这意味着波动率预测让我们了解了下一个时期的回报幅度,但那时我们不知道它是正回报还是负回报。这就是风险价值(VaR)发挥作用的时候。
以拥有一项资产的投资组合经理为例。使用 GARCH 模型,他可以预测下一个时期的波动性(假设他使用每日收益序列,那么就是明天)。交易者关注他们投资组合的风险,它比潜在机会受到更密切的监控。因此,通过波动率预测,他可以很好地猜测他的资产明天会贬值的风险。假设 1,000 欧元的 95%-VaR 意味着,以 95% 的概率,明天的风险(或损失)不会超过 1,000 欧元。更高的概率伴随着更少的确定性,因此 99%-VaR 会更高,例如 1,500 欧元。
总结一下:没有“预期的”回报,只有明天的波动预测,它给出了明天回报的倾向(永远不确定)。借助 VaR,这可用于风险管理。这就是您提供的文章最后一部分所做的。
ugarchsim和roll函数有什么区别?
您可以查看rugarch 包的文档,其中对每个函数及其属性进行了更详细的解释。ugarchsim
如果您想将模型拟合到完整的时间序列,我会说是快速浏览。最后一个标准差就是下一个时期的预测。的文档ugarchroll
说:
ugarchroll-methods {rugarch} 函数:单变量 GARCH 滚动密度预测和回测
描述
从 ARMA-GARCH 模型创建滚动密度预测的方法,该模型可以选择使用并行功能每 n 个周期重新拟合一次。也用于预测和回测。
这是如果您想测试您的模型过去的表现。它只需要例如提供的前 300 个数据点并给出数据点 301 的预测。然后将 VaR(95% 或 99%)与数据点 301 的已实现回报进行比较。然后重新调整模型,对数据点 302 进行预测等等等等。
编辑:添加了评论中问题的答案。