如何在 R 中绘制我的多变量回归时间序列模型?
Posted
技术标签:
【中文标题】如何在 R 中绘制我的多变量回归时间序列模型?【英文标题】:How to plot my multivariable regression time series model in R? 【发布时间】:2022-01-07 12:43:57 【问题描述】:我希望标题有意义。基本上,我一直在研究数据,我想预测未来的值并绘制它们。我的回归模式是这样的: lm(Total~ Rank+ Market),当我进行回归分析时,我可以看到系数和所有内容。我的数据有以下列:总计、市场、排名、日期。但是对于预测功能,我相信回归模型不起作用。我尝试将 Total 转换为时间序列并绘制它,但在这种情况下,其他因变量对总值没有影响。
我一直试图弄清楚这一点,我研究了很多预测方法,但它们只包含一个变量,而不是回归模型本身。您能否提供有关如何预测我的多变量回归模型的任何资源或语法?
https://rpubs.com/Mentors_Ubiqum/tslm
我认为这就是我要找的,但他们没有在函数中包含其他变量,我用 tslm 尝试了我的模型,但它没有用。我认为 tslm 只能用趋势和季节变量来预测?
提前谢谢你
编辑:
到目前为止我已经尝试过:
ts <- ts(originalfile$Total, frequency = 365, start decimal_date(as.Date("2020-08-01")))
ts_dataframe <- (Total = ts, originalfile$market, originalfile$rank)
mymodel <- tslm(Total ~ Rank +Market, ts_dataframe)
然后我尝试使用 auto.arima 和预测来绘制 mymodel。自动 arima 不起作用,预测起作用,但图表在视觉上看起来很奇怪,没有直线,只有矩形中的直线。我无法分享它在我的工作笔记本电脑上的图片,但这里似乎有什么问题?
【问题讨论】:
如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。 谢谢你。 现在更有意义了吗?如果您需要更多输入,请告诉我 没有。这仍然无济于事,因为我们无法实际运行代码并自己查看输出。当您的模型中涉及三个变量时,尚不清楚您期望输出的样子。 Stack Overflow 是针对特定编程问题的。如果您有建模问题或寻求数据可视化建议,也许Cross Validated 是一个更好的场所。 要使用使用外生回归变量(如Rank
和Market
)的模型进行预测,您还需要提供这些变量的未来值。可以在此处找到如何使用 tslm()
模型完成此操作的一些示例:otexts.com/fpp2/forecasting-regression.html
【参考方案1】:
好消息,带有时间序列的多变量回归在 R 中工作得非常好。我强烈推荐 Rob J. Hyndman 和 George Athanasopoulos 所著的《预测原理与实践》一书。可以通过作者的网站免费查看:https://otexts.com/fpp3/,也可以通过亚马逊购买。
此页面显示了具有时间序列的多元线性回归的一个很好的示例:https://otexts.com/fpp3/regression-intro.html。它使用 TSLM 进行多元线性回归。
首先,我们做时间序列,然后我们看图表:
us_change %>%
model(TSLM(Consumption ~ Income + Production + Savings + Unemployment + season() + trend())) %>%
report()
让我们看看那份报告:
让我们看一些数据图表。可以一次查看所有特征图(生产、储蓄和失业):
us_change %>%
pivot_longer(-Quarter) %>%
ggplot(aes(Quarter, value, color = name)) +
geom_line() +
facet_grid(name ~ ., scales = "free_y") +
guides(colour = "none") +
labs(y="% change")
一切都很好,但最好的部分是:您可以预测,也可以绘制预测图。我们的预测还将包括季节和趋势,从而提高准确性。
train <- us_change %>%
filter(Quarter <yearquarter("2009 Q4"))
test <- us_change %>%
filter(Quarter>=yearquarter("2009 Q4"))
fit <- train %>%
model(TSLM(Consumption ~ Income + Production + Savings + Unemployment + season() + trend()))
forecast_consumption <- forecast(fit, new_data = test)
forecast_consumption
现在让我们看一个图表:
forecast_consumption %>%
autoplot(us_change)
这应该为您提供资源(免费的在线书籍,或通过 Amazon 提供的印刷版)和示例代码,以在 R 中使用多元回归时间序列。这里的示例代码与书中的示例代码不同,所以您有两个例子可以使用。祝你好运!
【讨论】:
以上是关于如何在 R 中绘制我的多变量回归时间序列模型?的主要内容,如果未能解决你的问题,请参考以下文章