Rollapply 回测风险价值
Rollapply for backtesting the value at risk
我想回测时间序列向量风险的经验(无条件)值:
x = rnorm(1000)
xt = diff(x)
quantile(xt,0.01)
所以我认为 R 中的 rollapply 函数可能会有帮助,因为我想滚动估计从时间 t 到结束时间 T 的分位数 a,通过一次观察滚动 window 100。
如果我编写以下代码:
a = rollapply(xt,width=100,quantile(xt,probs=c(0.01)))
我收到一个错误:
Error in match.fun(FUN) :
'quantile(xt, probs = c(0.01))' is not a function, character or symbol
我做错了什么?
另外:如何在一个图中绘制两个系列(历史估计和回测结果)?
将 x 转换为动物园系列 z,然后使用 diff、rollapply 和 plot,如图所示。 cbind.zoo 将对齐系列。请注意,rollapply 使用居中 windows。如果您想要右对齐 windows,请改用末尾带有 r 的 rollapplyr。如果你想在单个面板中添加 screen = 1 参数到 plot.
library(zoo)
set.seed(123)
x <- rnorm(1000)
z <- zoo(x)
zt <- diff(z)
a <- rollapply(zt, 100, quantile, probs = 0.01)
plot(cbind(z, zt, a))
我想回测时间序列向量风险的经验(无条件)值:
x = rnorm(1000)
xt = diff(x)
quantile(xt,0.01)
所以我认为 R 中的 rollapply 函数可能会有帮助,因为我想滚动估计从时间 t 到结束时间 T 的分位数 a,通过一次观察滚动 window 100。
如果我编写以下代码:
a = rollapply(xt,width=100,quantile(xt,probs=c(0.01)))
我收到一个错误:
Error in match.fun(FUN) :
'quantile(xt, probs = c(0.01))' is not a function, character or symbol
我做错了什么?
另外:如何在一个图中绘制两个系列(历史估计和回测结果)?
将 x 转换为动物园系列 z,然后使用 diff、rollapply 和 plot,如图所示。 cbind.zoo 将对齐系列。请注意,rollapply 使用居中 windows。如果您想要右对齐 windows,请改用末尾带有 r 的 rollapplyr。如果你想在单个面板中添加 screen = 1 参数到 plot.
library(zoo)
set.seed(123)
x <- rnorm(1000)
z <- zoo(x)
zt <- diff(z)
a <- rollapply(zt, 100, quantile, probs = 0.01)
plot(cbind(z, zt, a))