R 季度至每周数据的插值
我目前正试图通过所谓的插值法从季度数据中预测每周数据。不幸的是,我现在很难找到正确的方法,因为我认为R中的近似函数可能不是最好的例子。您是否有其他方法可以尝试将这些会计数据从季度数据转换为每周数据 期待听取建议。假设问题 给定季度数据:R 季度至每周数据的插值,r,interpolation,approximation,R,Interpolation,Approximation,我目前正试图通过所谓的插值法从季度数据中预测每周数据。不幸的是,我现在很难找到正确的方法,因为我认为R中的近似函数可能不是最好的例子。您是否有其他方法可以尝试将这些会计数据从季度数据转换为每周数据 期待听取建议。假设问题 给定季度数据: 插值每周数据点 然后预测未来的周周期 R中的例子,因为我绝对喜欢R 第一部分。插值每周数据点 美联储季度数据集示例: 通过样条插值从季度末时段到周末时段 要以图形形式查看输出,请执行以下操作: 第二部分。预测未来的周周期 指数状态空间模型实例 要以图形形式
第一部分。插值每周数据点 美联储季度数据集示例:
通过样条插值从季度末时段到周末时段 要以图形形式查看输出,请执行以下操作:
第二部分。预测未来的周周期 指数状态空间模型实例 要以图形形式查看投影,请执行以下操作:
嗨,卢卡斯,你能为你的问题提供一个可复制的例子吗?请参见以下部分答案:
require(tidyverse)
require(lubridate)
require(timeSeries)
require(xts)
require(tsbox)
gdp_data<-
tribble(
~DATE, ~GDPC1,
20180101, 18438.254,
20180401, 18598.135,
20180701, 18732.72,
20181001, 18783.548,
20190101, 18927.281,
20190401, 19021.86,
) %>%
mutate(DATE = ymd(alignQuarterly(ymd(DATE)))) %>%
ts_xts()
> gdp_data
GDPC1
2018-03-30 18438.25
2018-06-29 18598.13
2018-09-29 18732.72
2018-12-31 18783.55
2019-03-30 18927.28
2019-06-29 19021.86
# create weekly time periods
weekly_dates<-
gdp_data %>%
index() %>%
alignQuarterly() %>%
align(by = "w") %>%
ymd() %>%
as.xts()
# approximate values for each week
interpolated_data<-
weekly_dates %>%
merge(gdp_data) %>%
na.spline() %>%
merge(weekly_dates, join = 'right')
> interpolated_data %>% tail(10)
GDPC1
2019-04-26 18969.86
2019-05-03 18979.35
2019-05-10 18988.07
2019-05-17 18995.95
2019-05-24 19002.92
2019-05-31 19008.91
2019-06-07 19013.87
2019-06-14 19017.70
2019-06-21 19020.36
2019-06-28 19021.77
interpolated_data %>% plot()
require(forecast)
projection<-
interpolated_data %>%
ts_ts() %>%
ets('MAN', damped = F) %>%
predict(10)
> projection
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
2019.506 19023.17 19022.34 19024.00 19021.90 19024.45
2019.525 19024.58 19022.72 19026.44 19021.73 19027.43
2019.544 19025.98 19022.87 19029.10 19021.22 19030.75
2019.563 19027.39 19022.83 19031.95 19020.42 19034.37
2019.582 19028.80 19022.62 19034.97 19019.35 19038.24
2019.602 19030.20 19022.26 19038.15 19018.05 19042.35
2019.621 19031.61 19021.76 19041.46 19016.54 19046.68
2019.640 19033.02 19021.12 19044.91 19014.83 19051.21
2019.659 19034.42 19020.36 19048.48 19012.92 19055.92
2019.678 19035.83 19019.49 19052.17 19010.84 19060.82
require(ggplot2)
projection %>%
autoplot()