代码如下(数据附在文末):
library(readxl)
library(TTR)
library(forecast)
library(ggplot2)
#取数据中的第一列进行分析
dat <- read_excel("rawdatacompet.xlsx",sheet=1,na="NA")
series1 <- dat[,1]
series1 <- series1[1:60,]
#将数据转化为时间序列
series1 <- ts(series1)
#将数据转化为双精度,没有貌似会报错
series1 <- as.double(series1)
#用简单移动平均来平滑数据
series <- SMA(series1,n=5)
#因为数据平均后移,数据前四个为NA,去除前四个
series <- series[5:60]
seriesforecasts <- HoltWinters(series, gamma=FALSE)
#观察对原数据进行预测的效果
plot(seriesforecasts) #如图一
#对之后的五个时间点的值进行预测
seriesforecasts2 <- forecast(seriesforecasts, h=5)
#将预测情况绘图表示,如图二
autoplot(seriesforecasts2)
图一:
可以看出,虽然有些延迟,二者的相似度还是比较高的
图二
预测数据之后的情况
所用数据如下(此处只取第一列,蓝色部分为待预测值):
本文系编程小白所写,如有错漏,敬请指正。