R中季度转月度数据:替代舍入法的25bp增量约束精准实现方案
带25基点约束的季度转月度频率转换优化方案
问题描述
我手头有一组季度频率的时间序列数据,使用tempdisagg包将其转换为月度数据时,要求转换后的月度序列季度平均值必须与原季度值完全一致。同时有一个硬性约束:月度数据只能以25个基点(bp)为增量变动,也就是数值的小数部分只能是x.00、x.25、x.50、x.75这四种情况。
目前我通过简单舍入来实现这个约束:output <- round(output / 0.25) * 0.25,但这种方法不够精确,希望能找到更严谨的实现方式。我已经查阅了tempdisagg包的官方文档,没有找到内置的约束实现方法,也在全网搜索过带类似约束的频率转换方案,但没有找到合适的结果。
可复现代码
# 转换低频序列为高频序列,输入需为ts对象 input <- ts(c(1.62, 2.83, 3.85, 4.25, 4.25, 4.25, 4.09, 3.84), frequency = 4, start = c(2022,3)) library(tempdisagg) # 执行无约束的频率转换,确保季度均值与原数据一致 output <- predict(td(input ~ 1, conversion = "average", to = "monthly", method = "denton-cholette")) # 将结果舍入到最近的25bp增量 output <- round(output / 0.25) * 0.25
输入输出示例
输入(原始季度数据)
> input Qtr1 Qtr2 Qtr3 Qtr4 2022 1.62 2.83 2023 3.85 4.25 4.25 4.25 2024 4.09 3.84
当前输出(舍入后的月度数据)
> output Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2022 1.50 1.50 2.00 2.50 2.75 3.25 2023 3.50 4.00 4.00 4.25 4.25 4.25 4.25 4.25 4.25 4.25 4.25 4.25 2024 4.25 4.00 4.00 4.00 3.75 3.75
需求
寻找一种比简单舍入更精确的实现方式,既要满足月度数据的25bp增量约束,又要严格保证每个季度的月度数据平均值与原季度数据完全一致。
内容的提问来源于Stack Exchange,提问作者Ondrej
相关产品推荐
相关产品推荐

