我正在尝试使用 ARIMA 来预测鱼类销售的每月价格(以欧元每公斤为单位),并使用外生变量即当月捕获的鱼的总重量。我可以构建模型,但当我尝试使用该模型进行预测时出现错误。 我总共有 108 个数据点,并将它们分为训练集和测试集。训练集有 84 个数据点,测试集有 24 个数据点。 错误是:
Error in `mutate()`:
ℹ In argument: `arima = (function (object, ...) ...`.
Caused by error in `new_dist()`:
! Can't recycle `mu` (size 84) to match `sigma` (size 24).
我有一个 df,df_fish,其中包含 2014 年 1 月至 2022 年 12 月期间每公斤鱼的每月平均价格,以及每个月捕获的总重量。我将其分为 df_train(2014 年 1 月至 12 月) 2020 年,84 个值)和 df_test(2021 年 1 月至 2022 年 12 月,24 个值)。我用以下方法构建模型:
arima_fish <- df_train %>%
model(arima = ARIMA(EurosPerLiveKg ~ df_train$EstTonne))
报告(arima_fish)给出:
Series: EurosPerLiveKg
Model: LM w/ ARIMA(0,0,0)(0,0,2)[12] errors
Coefficients:
sma1 sma2 xreg_train_wt intercept
0.1424 0.2308 -3e-04 0.9696
s.e. 0.1408 0.1646 5e-04 0.0435
sigma^2 estimated as 0.06625: log likelihood=-3.88
AIC=17.76 AICc=18.53 BIC=29.91
当我尝试跑步时:
arima_fish %>%
forecast(h=24, xreg=df_test$EstTonne)
我收到上面给出的错误。
有人知道我做错了什么吗?或者我应该怎么做? 谢谢
您似乎混淆了 fable 包和预测包中
forecast()
和动态回归建模的使用。有关使用 fable 包的示例,请参阅 https://otexts.com/fpp3/forecasting.html。您对 forecast()
的调用应使用 new_data
参数,而不是 xreg
。