仅使用auto.arima和xreg

时间:2019-02-06 17:44:42

标签: r forecasting arima economics forecast

这是我的第一篇文章,如果内容笨拙或格式不正确,请对不起。

 period texas u3    national u3

1976    5.758333333 7.716666667

1977    5.333333333 7.066666667

1978    4.825   6.066666667

1979    4.308333333 5.833333333

1980    5.141666667 7.141666667

1981    5.291666667 7.6

1982    6.875   9.708333333

1983    7.916666667 9.616666667

1984    6.125   7.525

1985    7.033333333 7.191666667

1986    8.75    6.991666667

1987    8.441666667 6.191666667

1988    7.358333333 5.491666667

1989    6.658333333 5.266666667

1990    6.333333333 5.616666667

1991    6.908333333 6.816666667

1992    7.633333333 7.508333333

1993    7.158333333 6.9

1994    6.491666667 6.083333333

1995    6.066666667 5.608333333

1996    5.708333333 5.416666667

1997    5.308333333 4.95

1998    4.883333333 4.508333333

1999    4.666666667 4.216666667

2000    4.291666667 3.991666667

2001    4.941666667 4.733333333

2002    6.341666667 5.775

2003    6.683333333 5.991666667

2004    5.941666667 5.533333333

2005    5.408333333 5.066666667

2006    4.891666667 4.616666667

2007    4.291666667 4.616666667

2008    4.808333333 5.775

2009    7.558333333 9.266666667

2010    8.15    9.616666667

2011    7.758333333 8.95

2012    6.725   8.066666667

2013    6.283333333 7.375

2014    5.1 6.166666667

2015    4.45    5.291666667

2016    4.633333333 4.866666667

2017    4.258333333 4.35

2018    3.858333333 3.9

2019    ____    3.5114

2020    ____    3.477

2021    ____    3.7921

2022    ____    4.0433

2023    ____    4.1339

2024    ____    4.2269

2025    ____    4.2738

如何将R中的auto.arima与外部回归变量一起使用进行预测,而仅绘制样本外值?我相信预测值是正确的,但年份不正确。因此,如果我具有1976-2018年的年度数据,并且预测了因变量(​​第2列)(我想预测到2025年),则它将绘制2019-2068年的“预测”。奇怪的是,这些数字与样本数据非常吻合(2019年的“预测”似乎是1980年的模型预测,依此类推,一直到2068年与2025年匹配。

我希望能够消除这种情况,因此将“ 2062-2068”的结果改为2019-2025。我将尝试包括该图的图片,以使可视化我的困境更加容易。

下面是R脚本:

#Download the CVS file, the dependent variable in the second column, xreg in the third, and years in the first. All columns have headers.

library(forecast)
library(DataCombine)
library(tseries)
library(MASS)
library(TSA)

ts(TXB102[,2], frequency = 1, start = c(1976, 1),end = c(2018, 1)) -> TXB102ts
ts(TXB102[,3], frequency = 1, start = c(1976, 1), end = c(2018,1)) -> TXB102xregtest
ts(TXB102[,3], frequency = 1, start = c(1976, 1), end = c(2025,1)) -> TXB102xreg

as.vector(t(TXB102ts)) -> y
as.vector(t(TXB102xregtest)) -> xregtest
as.vector(t(TXB102xreg)) -> xreg

y <- ts(y,frequency = 1, start = c(1976,1),end = c(2018,1))
xregtest <- ts(xregtest, frequency = 1, start = c(1976,1), end=c(2018,1))
xreg <- ts(xreg, frequency = 1, start = c(1976,1), end=c(2025,1))

summary(y)
plot(y)

ndiffs(y)

ARIMA <- auto.arima(y, trace = TRUE, stepwise = FALSE, approximation = FALSE, xreg=xregtest)

ARIMA

forecast(ARIMA,xreg=xreg)
plot(forecast(ARIMA,xreg=xreg))   

以下是运行脚本后得到的图。

Plot

TLDR:如何获得2019-2025年的实际样本外预测,而不是2019-2068年间的样本内模型拟合。 >

0 个答案:

没有答案