【发布时间】:2017-01-29 12:19:47
【问题描述】:
这些年来我已经多次遇到过这个问题,所以也许我只是误解了某些东西,或者只是对此感到愚蠢。在对不规则时间序列进行滚动平均时,我遇到了一个奇怪的问题。包和简单脚本中可用方法的一个很好的概述在这里:Calculating moving average in R
我可能误读了其中一些,但我发现处理不规则时间序列时存在问题。例如,zoo 包中的滚动均值的常用方法需要每个数据的唯一值。但在这种情况下,这不是滚动平均值,而是每个时间单位平均值的滚动平均值 - 时间单位越少的数据点对平均值的影响越大。
在我看来,真正的移动平均线不需要使用聚合,而是需要使用每个计算点的分布。
鉴于我有以下数据框或不规则值,我如何才能最好地为每个值创建移动平均度量。
df <- data.frame(year = c(rep(2000,3),rep(2001,1),rep(2004,4),rep(2005,3),+
rep(2006,3),rep(2007,1),rep(2008,2),rep(2009,6),rep(2010,8)),+
value1=rnorm(31), value2=rnorm(31), value3=rnorm(31))
我找到了一种通过子集化的简单方法,我将把它作为初始答案发布,但这在有限的情况下有效,并且每次都需要自定义。我想知道什么是通用解决方案。此外,如果有人能够评论在滚动均值计算中使用平均值与分布平均值的做法,那将非常有帮助。谢谢!
【问题讨论】:
标签: r time-series mean rolling-computation