R 从季度系列中形成月度系列
假设我们有如下季度GDP变化数据: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
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。