繁体   English   中英

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

[英]Time series forecasting in R, univariate time series

我目前正在为一个学校项目工作,该项目要求我对R中的给定数据集进行时间序列预测。 我查找了无数示例来了解如何执行此操作,但是我发现的每个示例都包含一个记录数据的数据集,例如,在15年的时间里每月记录一次。 我的教授给我的数据集每0.001秒记录一次数据,并且同一秒有多个数据条目。 例如,数据末尾有五个不同的条目,持续时间为.02500秒。

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

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

谁能告诉我我要去哪里错了,或者我误会了什么? 我尝试通过在R中使用ts()命令尝试将数据集转换为时间序列,但我必须做错了什么,因为即使在此之后,它也表示不是单变量时间序列。

该错误表示其含义, auto.arima仅能处理单变量时间序列。 由于您提到数据集的每个时间单位都有多个条目,因此,如果使用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 =参数来指定ts()的开始时间和频率。

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

在此处输入图片说明

尽管我的数据集中每个时间单位都没有多个条目,但它纯粹是单变量的,该功能无法正常工作。

在auto.arima参数中添加[,1]有助于解决问题:autoarima1 <-auto.arima(TR_2015_2019_ts [,1])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM