我有一个时间序列,并且希望找到具有最低连续变化的时段,即滚动SD在最长连续时间步长中徘徊在最小值的时段。
test=c(10,12,14,16,13,13,14,15,15,14,16,16,16,16,16,16,16,15,14,15,12,11,10)
rol=rollapply(x, width=4, FUN=sd)
rol
我可以从数据或图表中很容易地看出,具有最低可变性的最长周期从t = 11开始。是否有一个功能可以帮助我找到持续低变化的这段时间,也许会自动尝试不同大小的滚动窗口?我对找到SD最低的时间步长感兴趣,但是这个低SD的时间比其他SD更稳定。
我现在能想到的只是看一下rol [i] -rol [i + 1]之间的区别,循环通过向量并使用计数器来查找连续的低SD值的周期。我也在考虑使用聚类分析,比如kmeans(rol, 5)
,但我可以有很长的时间序列,这些序列很复杂,我必须手动选择聚类的数量。