[英]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()
的开始时间和频率。
forecast
的plot
方法可让您绘制预测结果。 参见?plot.forecast
。
尽管我的数据集中每个时间单位都没有多个条目,但它纯粹是单变量的,该功能无法正常工作。
在auto.arima参数中添加[,1]有助于解决问题:autoarima1 <-auto.arima(TR_2015_2019_ts [,1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.