我有一个时间序列,并希望找到具有最低连续变异性的时期,即滚动 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 比其他时间步长更一致的时期。
我现在能想到的就是查看 rol[i]-rol[i+1] 之间的区别,循环遍历向量并使用计数器来查找 SD 连续低值的周期。我也在考虑使用聚类分析, kmeans(rol, 5)
但我可以有很长的时间序列,这些序列很复杂,我必须手动选择聚类的数量。