rollapply给出一个相同的值

时间:2017-04-06 19:58:21

标签: r

我想使用rollapply来构建Value at Risk函数的滚动窗口。我使用以下代码:

var<-rollapply(phelix, width=1000, FUN=function(x) VaR(R=phelix, p=0.95, method="historical"),by=1, by.column=TRUE )

phelix是带返回的数据向量的名称。这是3995观测。我想使用一个有1000个观测值的滚动窗口。从1001开始,每次观察都执行VaR功能。

执行rollapply函数后,我得到一个具有2996个和相同值的向量。看来我的窗户已经卡住而且没有滚动:)

你可以帮我解决这个问题吗?非常感谢提前!

1 个答案:

答案 0 :(得分:0)

Rollapply重复使用包含滚动窗口内数据的向量调用您提供给它的函数。在您的情况下,您提供FUN=function(x),因此x将包含窗口内的数据。但是,您定义的函数没有引用x,所以它总是返回相同的东西。假设VaR的第一个参数是应该接收滚动数据的参数,您应该使用:var<-rollapply(phelix, width=1000, FUN=function(x) VaR(R=x, p=0.95, method="historical"),by=1, by.column=TRUE )