我在 R 中有几个年度频率的变量,我想将它们包含在回归分析中,其他变量以季度频率可用。此外,我希望能够以重现原始年度数据的方式将季度数据转换回年度频率。
我目前将低频时间序列数据转换为高频时间序列数据的方法是使用 zoo 包中的 na.spline 函数。但是,我不知道如何限制季度数据以匹配相应的年度平均值。因此,当我将数据从季度频率转换回年度频率时,我得到的年度值与原始系列不同。
可重现的例子:
library(zoo)
# create annual example series
a <- as.numeric(c("100", "110", "111"))
b <- as.Date(c("2000-01-01", "2001-01-01", "2002-01-01"))
z_a <- zoo(a, b); z_a
# current approach using na.spline in zoo package
end_z <- as.Date(as.yearqtr(end(z_a))+ 3/4)
z_q <- na.spline(z_a, xout = seq(start(z_a), end_z, by = "quarter"), method = "hyman")
# result, with first quarter equal to annual value
c <- merge(z_a, z_q); c
# convert back to annual using aggregate in zoo package
# …Run Code Online (Sandbox Code Playgroud)