如何在R中为月度时间序列自动添加滚动均值并扩展18个月
在R中自动扩展月度时间序列(滚动均值法)
直接上可运行的解决方案,全程无需手动指定月份,完全依托ts对象的自动时间维护机制:
# 示例月度时间序列(替换成你的实际数据) original_ts <- ts(rnorm(24), start = c(2022, 1), frequency = 12) # 要生成的未来月份数 future_months <- 18 # 循环生成滚动均值扩展数据 for (i in 1:future_months) { # 计算最后3个月的均值 next_value <- mean(tail(original_ts, 3)) # 追加值并重新转为ts对象,自动维护月度时间戳 original_ts <- ts(c(original_ts, next_value), start = start(original_ts), frequency = 12) } # 查看最终结果 original_ts # 查看时间戳确认是否正确扩展 time(original_ts)
关键细节
tail(original_ts, 3):不管当前序列多长,始终取最近3个观测值,完美适配滚动计算需求- 每次追加后重新构造
ts对象,让R自动处理时间递增——原序列是月度频率,新值会自动对应下一个月,完全不用手动指定后续月份的时间参数 - 循环18次刚好生成未来18个月的数据,逻辑直接高效
如果你的原始ts对象已经是月度频率(frequency=12),直接替换示例中的original_ts即可,无需额外调整。
内容的提问来源于stack exchange,提问作者user20203146
相关产品推荐
相关产品推荐

