R 从季度系列中形成月度系列

R 从季度系列中形成月度系列,r,time-series,interpolation,R,Time Series,Interpolation,假设我们有如下季度GDP变化数据: Country 1999Q3 0.01 1999Q4 0.01 2000Q1 0.02 2000Q2 0.00 2000Q3 -0.01 Country 2000-01 0.01 2000-02 0.01 2000-03 0.01 2000-04 0.015 2000-05 0.015 2000-06 0.015 2000-07 0.01 2000-08 0.01 200

假设我们有如下季度GDP变化数据:

         Country
1999Q3   0.01
1999Q4   0.01
2000Q1   0.02
2000Q2   0.00
2000Q3  -0.01
          Country
2000-01   0.01
2000-02   0.01
2000-03   0.01
2000-04   0.015
2000-05   0.015
2000-06   0.015
2000-07   0.01
2000-08   0.01
2000-09   0.01
2000-10  -0.005
2000-11  -0.005
2000-12  -0.005
现在,我想将其转换为基于前两个季度平均值的月度序列,作为代表经济状况的一个指标。即,根据上述数据,我想得出以下结论:

         Country
1999Q3   0.01
1999Q4   0.01
2000Q1   0.02
2000Q2   0.00
2000Q3  -0.01
          Country
2000-01   0.01
2000-02   0.01
2000-03   0.01
2000-04   0.015
2000-05   0.015
2000-06   0.015
2000-07   0.01
2000-08   0.01
2000-09   0.01
2000-10  -0.005
2000-11  -0.005
2000-12  -0.005
这是为了我可以运行与其他每月系列回归。将数据从较高频率聚合到较低频率是很容易的,但如何将其反向聚合呢

编辑。 使用
样条曲线
似乎是正确的方法。问题是,当使用
apply
进行
spline
时,在国家系列开始时,如何处理不同数量的NA。与往常一样,数据框中有多个国家作为列,它们在系列开始时有不同数量的NA。

使用
“yearmon”
类索引转换为zoo,假设值在季度末。然后执行滚动平均值给定
z.mu
。现在将其与包含所有月份的零宽度zoo对象合并,并使用
na.spline
填充缺少的值(或使用
na.locf
na.approx
进行不同形式的插值)。可以选择使用
fortify.zoo
转换回data.frame

library(zoo)

z <- zoo(coredata(DF), as.yearmon(as.yearqtr(rownames(DF)), frac = 1))
z.mu <- rollmeanr(z, 2, partial = TRUE)
ym <- seq(floor(start(z.mu)), floor(end(z.mu)) + 11/12, 1/12)
z.ym <- na.spline(merge(z.mu, zoo(, ym)))

fortify.zoo(z.ym)
注意:使用的可复制形式的输入
DF

Lines <- "         Country
1999Q3   0.01
1999Q4   0.01
2000Q1   0.02
2000Q2   0.00
2000Q3  -0.01"

DF <- read.table(text = Lines)

行您是否尝试过近似()-将插值数据谢谢,这将导致找到
样条函数
,似乎三次样条插值是经济学中实现这一点的标准方法。虽然这会导致序列相关性,但我只能使用Newey West。