无法在R中预测线性模型

3

我可以使用ARIMA模型进行预测,但是当我尝试使用线性模型进行预测时,我无法得到任何实际的预测结果 - 它在数据集的末尾停止(这对预测没有用处,因为我已经知道数据集中的内容)。我在网上找到了无数的例子,其中使用相同的代码完全正常,但我没有发现其他人遇到过同样的错误。

library("stats")

library("forecast")

y <- data$Mfg.Shipments.Total..USA.

model_a1 <- auto.arima(y)

forecast_a1 <- forecast.Arima(model_a1, h = 12)

以上代码完美运行。然而,当我尝试进行线性模型时...

model1 <- lm(y ~ Mfg.NO.Total..USA. + Mfg.Inv.Total..USA., data = data )
f1 <- forecast.lm(model1, h = 12)

我收到了一个错误消息,说我必须提供一个新的数据集(这对我来说似乎很奇怪,因为forecast包的文档说它是一个可选参数)。
如果我这样做,我可以让函数工作,但预测只会预测现有数据的值 - 它不会预测接下来的12个周期。我还尝试使用append函数添加额外的行,看看是否能解决问题,但在尝试预测线性模型时,它立即停在时间序列中最近的点。
以下是我使用的数据:
+------------+---------------------------+--------------------+---------------------+
|            | Mfg.Shipments.Total..USA. | Mfg.NO.Total..USA. | Mfg.Inv.Total..USA. |
+------------+---------------------------+--------------------+---------------------+
| 2110-01-01 | 3.59746e+11               | 3.58464e+11        | 5.01361e+11         |
| 2110-01-01 | 3.59746e+11               | 3.58464e+11        | 5.01361e+11         |
| 2110-02-01 | 3.62268e+11               | 3.63441e+11        | 5.10439e+11         |
| 2110-03-01 | 4.23748e+11               | 4.24527e+11        | 5.10792e+11         |
| 2110-04-01 | 4.08755e+11               | 4.02769e+11        | 5.16853e+11         |
| 2110-05-01 | 4.08187e+11               | 4.02869e+11        | 5.18180e+11         |
| 2110-06-01 | 4.27567e+11               | 4.21713e+11        | 5.15675e+11         |
| 2110-07-01 | 3.97590e+11               | 3.89916e+11        | 5.24785e+11         |
| 2110-08-01 | 4.24732e+11               | 4.16304e+11        | 5.27734e+11         |
| 2110-09-01 | 4.30974e+11               | 4.35043e+11        | 5.28797e+11         |
| 2110-10-01 | 4.24008e+11               | 4.17076e+11        | 5.38917e+11         |
| 2110-11-01 | 4.11930e+11               | 4.09440e+11        | 5.42618e+11         |
| 2110-12-01 | 4.25940e+11               | 4.34201e+11        | 5.35384e+11         |
| 2111-01-01 | 4.01629e+11               | 4.07748e+11        | 5.55057e+11         |
| 2111-02-01 | 4.06385e+11               | 4.06151e+11        | 5.66058e+11         |
| 2111-03-01 | 4.83827e+11               | 4.89904e+11        | 5.70990e+11         |
| 2111-04-01 | 4.54640e+11               | 4.46702e+11        | 5.84808e+11         |
| 2111-05-01 | 4.65124e+11               | 4.63155e+11        | 5.92456e+11         |
| 2111-06-01 | 4.83809e+11               | 4.75150e+11        | 5.86645e+11         |
| 2111-07-01 | 4.44437e+11               | 4.40452e+11        | 5.97201e+11         |
| 2111-08-01 | 4.83537e+11               | 4.79958e+11        | 5.99461e+11         |
| 2111-09-01 | 4.77130e+11               | 4.75580e+11        | 5.93065e+11         |
| 2111-10-01 | 4.69276e+11               | 4.59579e+11        | 6.03481e+11         |
| 2111-11-01 | 4.53706e+11               | 4.55029e+11        | 6.02577e+11         |
| 2111-12-01 | 4.57872e+11               | 4.81454e+11        | 5.86886e+11         |
| 2112-01-01 | 4.35834e+11               | 4.45037e+11        | 6.04042e+11         |
| 2112-02-01 | 4.55996e+11               | 4.70820e+11        | 6.12071e+11         |
| 2112-03-01 | 5.04869e+11               | 5.08818e+11        | 6.11717e+11         |
| 2112-04-01 | 4.76213e+11               | 4.70666e+11        | 6.16375e+11         |
| 2112-05-01 | 4.95789e+11               | 4.87730e+11        | 6.17639e+11         |
| 2112-06-01 | 4.91218e+11               | 4.87857e+11        | 6.09361e+11         |
| 2112-07-01 | 4.58087e+11               | 4.61037e+11        | 6.19166e+11         |
| 2112-08-01 | 4.97438e+11               | 4.74539e+11        | 6.22773e+11         |
| 2112-09-01 | 4.86994e+11               | 4.85560e+11        | 6.23067e+11         |
| 2112-10-01 | 4.96744e+11               | 4.92562e+11        | 6.26796e+11         |
| 2112-11-01 | 4.70810e+11               | 4.64944e+11        | 6.23999e+11         |
| 2112-12-01 | 4.66721e+11               | 4.88615e+11        | 6.08900e+11         |
| 2113-01-01 | 4.51585e+11               | 4.50763e+11        | 6.25881e+11         |
| 2113-02-01 | 4.56329e+11               | 4.69574e+11        | 6.33157e+11         |
| 2113-03-01 | 5.04023e+11               | 4.92978e+11        | 6.31055e+11         |
| 2113-04-01 | 4.84798e+11               | 4.76750e+11        | 6.35643e+11         |
| 2113-05-01 | 5.04478e+11               | 5.04488e+11        | 6.34376e+11         |
| 2113-06-01 | 4.99043e+11               | 5.13760e+11        | 6.25715e+11         |
| 2113-07-01 | 4.75700e+11               | 4.69012e+11        | 6.34892e+11         |
| 2113-08-01 | 5.05244e+11               | 4.90404e+11        | 6.37735e+11         |
| 2113-09-01 | 5.00087e+11               | 5.04849e+11        | 6.34665e+11         |
| 2113-10-01 | 5.05965e+11               | 4.99682e+11        | 6.38945e+11         |
| 2113-11-01 | 4.78876e+11               | 4.80784e+11        | 6.34442e+11         |
| 2113-12-01 | 4.80640e+11               | 4.98807e+11        | 6.19458e+11         |
| 2114-01-01 | 4.56779e+11               | 4.57684e+11        | 6.36568e+11         |
| 2114-02-01 | 4.62195e+11               | 4.70312e+11        | 6.48982e+11         |
| 2114-03-01 | 5.19472e+11               | 5.25900e+11        | 6.47038e+11         |
| 2114-04-01 | 5.04217e+11               | 5.06090e+11        | 6.52612e+11         |
| 2114-05-01 | 5.14186e+11               | 5.11149e+11        | 6.58990e+11         |
| 2114-06-01 | 5.25249e+11               | 5.33247e+11        | 6.49512e+11         |
| 2114-07-01 | 4.99198e+11               | 5.52506e+11        | 6.57645e+11         |
| 2114-08-01 | 5.17184e+11               | 5.07622e+11        | 6.59281e+11         |
| 2114-09-01 | 5.23682e+11               | 5.24051e+11        | 6.55582e+11         |
| 2114-10-01 | 5.17305e+11               | 5.09549e+11        | 6.59237e+11         |
| 2114-11-01 | 4.71921e+11               | 4.70093e+11        | 6.57044e+11         |
| 2114-12-01 | 4.84948e+11               | 4.86804e+11        | 6.34120e+11         |
+------------+---------------------------+--------------------+---------------------+

编辑 - 这是我用于添加新数据点进行预测的代码。

library(xts)
library(mondate)

d <- as.mondate("2115-01-01")
d11 <- d + 11
seq(d, d11)
newdates <- seq(d, d11)
new_xts <- xts(order.by = as.Date(newdates))

new_xts$Mfg.Shipments.Total..USA. <- NA
new_xts$Mfg.NO.Total..USA. <- NA
new_xts$Mfg.Inv.Total..USA. <- NA
x <- append(data, new_xts)

你尝试过使用?predict.lm来预测lm吗? - C8H10N4O2
你是否指定了一个 newdata 参数,其中包含超出你拟合模型的数据日期?请查看 ?predict.lm - Gregor Thomas
是的,我尝试添加了模型之外的日期,但是遇到了同样的问题。它会对模型拟合数据之后的任何日期预测/预测(两个函数结果相同)NA。 - user5037511
是的,我尝试仅针对因变量进行操作,但是收到了错误消息。 - user5037511
你能展示一下创建新数据集并将其传递给线性模型的 predict() 函数的代码吗?这似乎是你的问题所在,但你还没有展示任何相关的代码。 - Gregor Thomas
显示剩余5条评论
2个回答

1
我不确定您是否解决了这个问题,但为了以防万一,我想指出出现了什么问题。 forecast.lm文档中写道:
“一个可选的数据帧,用于查找要预测的变量。如果省略,则假定唯一的变量是趋势和季节,并且会生成h个预测。”
因此,如果趋势和季节是您唯一的预测因子,则可以选择不使用该参数。
ARIMA模型之所以有效,是因为它在预测中使用了时间序列的滞后值。对于线性模型,它使用给定的预测因子(在您的情况下为Mfg.NO.Total..USA.Mfg.Inv.Total..USA.),因此需要它们相应的未来值;如果没有这些值,则没有独立变量可以进行预测。
在编辑中,您将这些变量添加到了未来的数据集中,但它们仍然在所有未来点上具有NA值,因此预测结果也为NA。

0

Gabe是正确的。你需要因果关系的未来值。

你应该考虑使用传递函数建模过程,而不是回归(即为用于横截面数据开发的)。通过使用预白化你的X变量(即为每个变量构建一个模型),你可以计算交叉相关函数以查看任何先导或滞后关系。

Normalized Plot

很明显,Inv.Total是标准化图表中Y和两个x的引导变量(b**-1)。当Invto下降时,出货量也会下降。此外,除了因果关系之外,还存在AR季节性成分在推动数据。还有一些异常值,所以这是一个稳健的解决方案。我是这个软件的开发者,但它可以在任何工具中运行。

Model

Actual and Outlier Adjusted


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接