如何在 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 是一个更好的场所。 要使用使用外生回归变量(如RankMarket)的模型进行预测,您还需要提供这些变量的未来值。可以在此处找到如何使用 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 中绘制我的多变量回归时间序列模型?的主要内容,如果未能解决你的问题,请参考以下文章

从 R 中的多元回归中绘制“回归线”

如何在 R 中创建显示预测模型、数据和残差的图表

如何减少R中逻辑回归模型中的分类变量

如何在 R 中绘制回归树的预测值与实际值? [关闭]

如何计算 R 中线性回归模型中斜率的 95% 置信区间

如何在R语言中使用Logistic回归模型