我想计算 R 中时间序列的任何类型的“移动统计”,超出移动平均线。例如,我将如何计算长度为 3 的时间窗口上的移动标准差?
我尝试了以下方法:
#example data
x <- c(3,9,2,8,4,6,5,8)
#moving standard deviation over a time window of length 3
msd3 <- (cumsum(x^2)-cumsum(Lag(x^2,3)))/((1:length(x))-(Lag(1:length(x),3)))-((cumsum(x)-cumsum(Lag(x,3)))/((1:length(x))-(Lag(1:length(x),3))))^2
但它不仅不起作用(因为滞后向量的 cumsum 给出了所有 NA 的向量),而且我停止尝试解决最后一个问题,因为它看起来不必要地复杂。这个问题有什么优雅的解决方案吗?