gpt4 book ai didi

r - 使用 R 中的 VECM 使用已知 X 即时预测 Y

转载 作者:行者123 更新时间:2023-12-01 16:44:56 24 4
gpt4 key购买 nike

我正在尝试使用另一个时间序列 (X) 作为预测变量来预测时间序列数据 (Y)。 X 和 Y 是协整的。 Y为2012年1月至2016年10月的月度数据,X为2012年1月至2017年2月的月度数据。

因此,我按照视频中所示运行了 VECM:https://www.youtube.com/watch?v=x9DcUA9puY0

然后,为了获得预测值,我通过 vec2var 命令将其转换为 VAR,遵循本主题中的信息:https://stats.stackexchange.com/questions/223888/how-to-forecast-from-vecm-in-r

但是我无法用已知的 X 来预测 Y,如何使用带有线性回归模型的预测函数来预测 Y。另外,我无法获得建模的 Y(Y hat)值。

这是我的代码:

# Cointegrated_series is a ZOO object, which contains two time series X and Y

library("zoo")
library("xts")
library("urca")
library("vars")

# Obtain lag length
Lagl <- VARselect(Cointegrated_series)$selection[[1]]

#Conduct Eigen test
cointest <- ca.jo(Cointegrated_series,K=Lagl,type = "eigen", ecdet = "const",
spec = "transitory")
#Fit VECM
vecm <- cajorls(cointest)

#Transform VECM to VAR
var <- vec2var(cointest)

我尝试以不同的方式使用 predict 函数:predict(var)predict(var, newdata = 50) , predict(var, newdata = 1000) - 结果是相同的。

尝试在 predict 方法中使用 tsDyn 包和 newdata 参数,如下所述:https://stats.stackexchange.com/questions/261849/prediction-from-vecm-in-r-using-external-forecasts-of-regressors?rq=1

不工作。我的newdata是一个ZOO对象,其中X系列的值是2016年11月到2017年2月,Y系列是NA。因此,该方法在预测中返回 NA:

    # Cointegrated_series is a ZOO object, which contains 
#two time series X and Y from Jan 2012 to Oct 2016. Both X and Y are values.
# newDat is a ZOO object, which contains two time series
#X and Y from Nov 2016 to Feb 2017. X are values, Y are NAs.

library(tsDyn)

vecm <-VECM(Cointegrated_series, lag=2)

predict(vecm,newdata = newDat, n.ahead=5)

这是一个结果:

                                                    Y             X
59 NA NA
60 NA NA
61 NA NA
62 NA NA
63 NA NA

例如,这是我在没有 newdata 参数的情况下调用 predict 后得到的结果:

predict(vecm, n.ahead=5)

Y X
59 65.05233 64.78006
60 70.54545 73.87368
61 75.65266 72.06513
62 74.76065 62.97242
63 70.03992 55.81045

所以,我的主要问题是:

  1. 如何使用 R 中的 VEC 模型立即预测具有已知 X 的 Y?
  2. 如何获取建模的 Y(Y hat)值?

除此之外,我也找不到这些问题的答案:

  • 如何在 R 中调用 VECM 的 Akaike 准则 (AIC)?

  • vars 和 urca 软件包是否为 VECM 提供 F 和 t 统计数据?

  • 更新2017年4月10日我稍微编辑了这个问题。请注意,我的问题适用于“参差不齐的边缘”问题,并且称其为“预测”是不正确的 - 它是“即时预测”。

    UPD 11.04.2017

    感谢您的回答!

    完整代码如下:

    library("lubridate")
    library("zoo")
    library("xts")
    library("urca")
    library("vars")
    library("forecast")



    Dat <- dget(file = "https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/VJpQ75Rz3GsDKN")
    NewDat <- dget(file = "https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/T7qxxPUq3GsDLc")



    Lagl <- VARselect(Dat)$selection[[1]]

    #vars package

    cointest_e <- ca.jo(Dat,K=Lagl,type = "eigen", ecdet = "const",
    spec = "transitory")


    vecm <- cajorls(cointest_e)

    var <- vec2var(cointest_e)

    Predict1 <- predict(var)

    Predict2 <- predict(var, newdata = NewDat)

    Predict1$fcst$Y
    Predict2$fcst$Y

    Predict1$fcst$Y == Predict2$fcst$Y
    Predict1$fcst$X == Predict2$fcst$X

    #As we see, Predict1 and Predict2 are similar, so the information in NewDat
    #didn't came into account.

    library("tsDyn")

    vecm2 <-VECM(Dat, lag=3)

    predict(vecm2)
    predict(vecm2, newdata=NewDat)

    如果 dget 返回错误,请在此处下载我的数据:

    https://yadi.sk/d/VJpQ75Rz3GsDKN - 对于数据

    https://yadi.sk/d/T7qxxPUq3GsDLc - 对于 NewDat

    关于临近预报

    临近预报我的意思是用当前可用数据对当前月份或上个月的不可用数据进行预测。以下是一些引用:

    Gianonne, Reichlin,Small:临近预报:宏观经济数据的实时信息内容 (2008)

    即时广播和实时数据流(2013)

    Marcellino、Schumacher:使用 Ragged-Edge 数据进行临近预报和预测的 MIDAS 因子:德国 GDP 的模型比较(2010 年)

    最佳答案

    我觉得你的问题更多的是关于如何对协整变量进行即时预测,然后让我们稍后看看如何在 R 中实现它。

    一般来说,根据格兰杰表示定理,协整变量可以用多种形式表示:

    • 长期关系:y 和 x 的同期值

    • VECM 表示:y 和 x 的(差异)由滞后(差异)和前一周期的误差校正项解释。

    所以我不确定您将如何在 VECM 表示中进行即时预测,因为它只包含过去的值?我可以看到两种可能性:

    1. 根据长期关系进行即时预测。因此,您只需运行标准 OLS,然后从那里进行预测。

    2. 基于结构 VECM 进行即时预测,您可以在其中添加已知变量 (X) 的同期值。在 R 中,您将执行此包 urca,但您需要检查 predict 函数是否允许您添加已知的 X 值。

    关于长期关系方法,有趣的是,您可以根据 VECM(不知道 X)和从已知 X 的 LT 获得 X 和 Y 的预测。这为您提供了一种了解想法的方法模型的准确性(比较已知的 X 和预测的 X),您可以使用它来为 Y 创建预测平均方案?

    关于r - 使用 R 中的 VECM 使用已知 X 即时预测 Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43323832/

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