r - R 中的时间序列预测,单变量时间序列

标签 r time-series

我目前正在为学校开展一个项目,该项目要求我在 R 中对一组给定的数据执行时间序列预测。我查阅了无数关于如何执行此操作的示例,但我找到的每个示例都包含一个记录数据的数据集,例如,在 15 年的时间里每月一次。我的教授给我的数据集每 .001 秒记录一次数据,同一秒有多个数据条目。例如,在数据末尾有 0.02500 秒的五个不同条目。

我对单变量时间序列的理解是在特定时间段(例如每月或每千分之一秒)进行测量的时间序列。每当我尝试对数据集 (adeno) 进行时间序列预测时,我都会收到如下代码所示的错误。

> fit <- auto.arima(adeno)
Error in auto.arima(adeno) : 
  auto.arima can only handle univariate time series

谁能告诉我哪里出错了,或者我是否误解了什么?我尝试使用 R 中的 ts() 命令尝试将数据集转换为时间序列,但我一定做错了什么,因为即使在那之后它也说它不是单变量时间序列。

最佳答案

错误意味着它所说的,auto.arima can only handle univariate time series。由于您提到您的数据集每个时间单位都有多个条目,如果您使用 ts 转换它,它就是一个多变量时间序列。你可以按照以下方式做一些事情:

adenoTS = ts(adeno)
arima_fit = auto.arima(adenoTS[,1])

为了解决您在评论部分的第二个问题,我使用airquality 数据集进行演示:

library(forecast)

# Convert as time series
airTS = ts(airquality)

# Plot multivariate ts
plot(airTS[,1:4])

# Run auto.arima on a single ts
arima_fit = auto.arima(airTS[,3])

# Forecast for the next 10 time units
arima_forecast = forecast(arima_fit, h = 10)

# Plot forecasts
plot(arima_forecast)
forecast 包中的

forecast() 允许您预测下一个 h 时间单位。在这种情况下,“时间单位”的含义取决于您在 airTS = ts(airquality) 步骤中定义时间序列的方式。这里我没有费心去正确转换它,但是你可以在 ts() 中添加 start =frequency = 参数来指定开始你的时间和频率。

forecastplot 方法可让您绘制预测结果。请参阅 ?plot.forecast

enter image description here

关于r - R 中的时间序列预测,单变量时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43622486/

相关文章:

R 在 Ubuntu Linux 中从剪贴板复制

java - 将支持 vector 机与 Encog 3 和多输出一起使用

r - 赫斯特指数与 R

r - 无法在没有 root 权限的集群上安装 nloptr/nlopt

RMarkdown : Why do I have to reinstall all packages everytime I knit?

r - 过滤数据表时链接 ANDing 的性能优势

postgresql - PostgreSQL 中的物化 View 可以继承吗?

r - 将年度数据转换成xts格式

machine-learning - 用于提前一天基础预测模型的评估。对于我的火车测试拆分,我是否执行 80 :20 split or do a (rest of the days : last day) split?

r - ggplot2条形图中的订单条