gpt4 book ai didi

r - 使用 `midasr` 包 : Inclusion of new high-frequency value 进行预测

转载 作者:行者123 更新时间:2023-12-01 22:42:45 25 4
gpt4 key购买 nike

我正在尝试使用所谓的 MIDAS 概念来计算一步预测。在这个概念中,人们根据高频数据来计算预测。例如,因变量y可以每年记录并在自变量x的帮助下进行解释,例如可以每季度采样一次。

有一个名为 midasr 的包,它提供了很多功能。我可以使用上述包中的函数 select_and_forecast 计算一步预测,如下所示(带有模拟数据,这是包 用户指南中示例的简化版本)米达斯尔):

数据的生成:

library(midasr)
set.seed(1001)
n <- 250
trend <- c(1:n)
x <- rnorm(4 * n)
z <- rnorm(12 * n)
fn.x <- nealmon(p = c(1, -0.5), d = 8)
y <- 2 + 0.1 * trend + mls(x, 0:7, 4) %*% fn.x + rnorm(n)

计算预测(样本外预测范围由参数 outsample 控制,因此在我的示例中,我计算 10 个预测,从 240 到 250)

select_and_forecast(y~trend+mls(y,1,1,"*")+mls(x,0,4),
from=list(x=c(4)),
to=list(x=rbind(c(14,19))),
insample=1:250,outsample=240:250,
weights=list(x=c("nealmon","almonp")),
wstart=list(nealmon=rep(1,3),almonp=rep(1,3)),
IC="AIC",
seltype="restricted",
ftype="recursive",
measures=c("MSE"),
fweights=c("EW","BICW")
)$forecasts[[1]]$forecast

我现在想做的是模拟高频变量的新值可用的情况,因为,例如,新的一个月已经过去,这个月的值可以在模型中使用。我将按如下方式进行,但我非常不确定它是否正确:

select_and_forecast(y~trend+mls(y,1,1,"*")+mls(x,0,4),
from=list(x=c(3)), # The only change is the reduction of the lower bound of the range of the lags of the regeressor from 4 to 3
to=list(x=rbind(c(14,19))),
insample=1:250,outsample=240:250,
weights=list(x=c("nealmon","almonp")),
wstart=list(nealmon=rep(1,3),almonp=rep(1,3)),
IC="AIC",
seltype="restricted",
ftype="recursive",
measures=c("MSE"),
fweights=c("EW","BICW")
)$forecasts[[1]]$forecast

理论上,通过减少时间索引可以包含对高频变量的新观察,但我不知道这种方式使用该函数是否正确。

这个问题是针对熟悉该软件包的人的。有人可以对此发表评论吗?

我想到的公式是:

y_t=\beta_0 + \beta_1B(L^{1/m};\theta)x_{t-h+1/m}^{(m)} + \epsilon_t^{(m)}

在我的例子中使用 h=1 并添加 1/m 以包含新的高频观察

最佳答案

我不确定我是否正确理解了您的问题,因此我将举一个例子,希望能回答您的问题。

假设您的响应变量 y以每年的频率观察,预测变量 x每季度观察一次(对应于模拟数据)。假设您有兴趣预测明年 y值使用上一年的数据。那么 pacakge midasr 中的模型方程如下:

y~mls(x,4:7,4)

4:7x 的滞后用于预测和 4表示 x 有 4 个观察值对于y的每一个观察。

midasr使用低频周期的惯例t=l我们观察到高频周期m*(l-1)+1:m 。所以今年1我们有宿舍1,2,3,4 ,年度2我们有宿舍5,6,7,8 。该约定假设我们观察到 y14 一起季度x , y2连同季度8x等等

MIDAS 模型是根据滞后来制定的,滞后从零开始。所以如果我们想解释 y1 (在我们的示例中,低频是每年的频率),值为 x同年,即季度 4,3,2,1我们使用滞后0,1,2,3 。如果我们的目标是解释y2值为 x1我们使用滞后4,5,6,7对应季度4,3,2,1

现在假设我们处于3年,但我们还没有观察到y值,但我们已经观察到今年第一季度 3 ,即季度 9 。假设我们想使用这些信息进行预测。季度9三高频率落后当年3 ,因此模型规范现在是

y~mls(x,3:7,4)

其中我们还包含了上一年的所有信息。

因此,如果我的示例符合您的要求,那么是的,包含新的高频观测值只需更改 from 的值即可按照你的方式争论。不过,我强烈建议从一个简单的模型开始,以充分掌握该包的工作方式。

关于r - 使用 `midasr` 包 : Inclusion of new high-frequency value 进行预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21114841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com