r - R预测包中的动态回归
问题描述
我有代表两种货币的两个变量的时间序列:SYP(叙利亚镑)和 LBP(黎巴嫩镑)。数据代表过去六个月两种货币的每日价值。我之前使用 SYP 作为因变量和 LBP 作为自变量运行标准回归模型。这是结果:
SYPts <- ts(SYP_LBP)
modelSYPLBP <- tslm(SYP ~ LBP, data = SYPts)
summary(modelSYPLBP)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -835.77100 228.93013 -3.651 0.000319 ***
LBP 0.41801 0.02744 15.235 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 324.9 on 248 degrees of freedom
Multiple R-squared: 0.4834, Adjusted R-squared: 0.4814
F-statistic: 232.1 on 1 and 248 DF, p-value: < 2.2e-16
但是,当我尝试使用预测包中的 auto.arima 调用运行动态回归模型时,我获得:
model <- auto.arima(SYPts[, "SYP"], xreg = SYPts[, "LBP"], stationary = FALSE)
summary(model)
Series: SYPts[, "SYP"]
Regression with ARIMA(0,1,1) errors
Coefficients:
ma1 drift xreg
-0.4654 5.6911 -0.0163
s.e. 0.0591 3.3376 0.0315
sigma^2 estimated as 9744: log likelihood=-1495.39
AIC=2998.78 AICc=2998.94 BIC=3012.85
Training set error measures:
ME RMSE MAE MPE MAPE MASE
Training set -0.06985184 97.92004 46.45812 -0.1826244 1.792092 1.18404
ACF1
Training set 0.001792873
回归系数现在是负数,并且比使用标准回归模型获得的系数小很多。
此外,当我尝试使用假设 LBP 在接下来的 15 天内变化为 0 的模型进行预测时,我得到了一条非常平坦的预测曲线,并且由于系数估计值为负,当我增加预测值时,曲线变得更平坦,然后变为负值LBP 的。
我想问:1-我在处理数据和准备模型时是否犯了一些特定的错误?例如,我没有放任何时间序列的频率。我是不是该?2 - 我应该在创建模型之前通过区分它们来进一步干预数据吗?在我使用 STATIONARY = FALSE 的公式中,就好像我使用 STATIONARY = TRUE 我在检查残差检验中获得了非常低的 p 值。3 - 我不明白在生成自变量 (LBP) 的预测值时是否做错了什么。在公式forecast <- forecast(model, xreg = rep(10000,15))
中,我假设 rep 的两个参数分别代表 LBP 的附加值以及我希望它及时重复多少天。由于 10000 是时间序列中 LBP 的最新值,因此通过使用它,我假设在接下来的 15 天内不会发生任何变化。这是对的吗?
谢谢
解决方案
推荐阅读
- php - 如何删除二维数组中的最后一个元素?
- sql - SQL查询检查是否存在多个条目
- c# - 无法使用实体框架连接到 C# asp mvc 应用程序中的 Sql 数据库,但相同的代码适用于 Winform 应用程序
- javascript - JavaScript 中的 ADODB.Stream - 以(正则表达式或 for 循环)开头的跳过行
- sql - 连接两个查询缺失值
- python - SLURM 批处理脚本不执行 Python 脚本,不返回错误消息并且不停止运行
- php - 在 woocommerce 管理列表状态和用户方面显示订单
- javascript - 移动js导航栏问题
- java - 虚拟联邦 sql 数据库
- asp.net-core - 如何向 ASP.NET Core 中的所有出站 HTTP 请求添加 HTTP 标头