如何使用 MIDASR 包在 MIDAS 模型中使用参差不齐的边缘数据进行预测?
How to forecast using ragged edge data in a MIDAS model using the MIDASR package?
我正在尝试使用 midasr
包中的每月变量生成季度变量的提前 1 步预测。我遇到的问题是,当样本中每月观察的数量恰好是季度观察数量的 3 倍时,我只能估计一个 MIDAS
模型。
当每月观测值的数量不是季度观测值的精确倍数时(例如,当我有一个新的每月数据点要用于更新预测)?
举个例子,假设我 运行 以下代码在我有 (n)
个季度观察和 (3*n)
个月观察时生成提前 1 步预测:
#first I create the quarterly and monthly variables
n <- 20
qrt <- rnorm(n)
mth <- rnorm(3*n)
#I convert the data to time series format
qrt <- ts(qrt, start = c(2009, 1), frequency = 4)
mth <- ts(mth, start = c(2009, 1), frequency = 12)
#now I estimate the midas model and generate a 1-step ahead forecast
library(midasr)
reg <- midas_r(qrt ~ mls(qrt, 1, 1) + mls(mth, 3:6, m = 3, nealmon), start = list(mth = c(1, 1, -1)))
forecast(reg, newdata = list(qrt = c(NA), mth =c(NA, NA, NA)))
这段代码工作正常。现在假设我有一个新的月度数据点要包括在内,因此新的月度数据为:
nmth <- rnorm(3*n +1)
我尝试运行使用以下代码来估计新模型:
reg <- midas_r(qrt ~ mls(qrt, 1, 1) + mls(nmth, 2:7, m = 3, nealmon), start = list(mth = c(1, 1, -1))) #I now use 2 lags instead 3 with the new monthly data
但是我收到一条错误消息:'Error in mls(nmth, 2:7, m = 3, nealmon) : Incomplete high frequency data'
我在网上找不到任何关于如何处理这个问题的信息。
不久前 I had to do 有类似的问题。如果我没记错的话,您首先需要使用延迟减少的旧数据集来估计模型,所以不要使用 3:6
滞后,您应该使用 2:6
滞后:
reg <- midas_r(qrt ~ mls(qrt, 1, 1) + mls(mth, 2:6, m = 3, nealmon), start = list(mth = c(1, 1, -1)))
然后假设您观察到更高频率数据的新值 - new_value
new_value <- rnorm(1)
然后您可以使用这个新观测值来预测较低频率的值,如下所示:
forecast(reg, newdata = list(mth = c(new_value, rep(NA, 2))))
我正在尝试使用 midasr
包中的每月变量生成季度变量的提前 1 步预测。我遇到的问题是,当样本中每月观察的数量恰好是季度观察数量的 3 倍时,我只能估计一个 MIDAS
模型。
当每月观测值的数量不是季度观测值的精确倍数时(例如,当我有一个新的每月数据点要用于更新预测)?
举个例子,假设我 运行 以下代码在我有 (n)
个季度观察和 (3*n)
个月观察时生成提前 1 步预测:
#first I create the quarterly and monthly variables
n <- 20
qrt <- rnorm(n)
mth <- rnorm(3*n)
#I convert the data to time series format
qrt <- ts(qrt, start = c(2009, 1), frequency = 4)
mth <- ts(mth, start = c(2009, 1), frequency = 12)
#now I estimate the midas model and generate a 1-step ahead forecast
library(midasr)
reg <- midas_r(qrt ~ mls(qrt, 1, 1) + mls(mth, 3:6, m = 3, nealmon), start = list(mth = c(1, 1, -1)))
forecast(reg, newdata = list(qrt = c(NA), mth =c(NA, NA, NA)))
这段代码工作正常。现在假设我有一个新的月度数据点要包括在内,因此新的月度数据为:
nmth <- rnorm(3*n +1)
我尝试运行使用以下代码来估计新模型:
reg <- midas_r(qrt ~ mls(qrt, 1, 1) + mls(nmth, 2:7, m = 3, nealmon), start = list(mth = c(1, 1, -1))) #I now use 2 lags instead 3 with the new monthly data
但是我收到一条错误消息:'Error in mls(nmth, 2:7, m = 3, nealmon) : Incomplete high frequency data'
我在网上找不到任何关于如何处理这个问题的信息。
不久前 I had to do 有类似的问题。如果我没记错的话,您首先需要使用延迟减少的旧数据集来估计模型,所以不要使用 3:6
滞后,您应该使用 2:6
滞后:
reg <- midas_r(qrt ~ mls(qrt, 1, 1) + mls(mth, 2:6, m = 3, nealmon), start = list(mth = c(1, 1, -1)))
然后假设您观察到更高频率数据的新值 - new_value
new_value <- rnorm(1)
然后您可以使用这个新观测值来预测较低频率的值,如下所示:
forecast(reg, newdata = list(mth = c(new_value, rep(NA, 2))))