时间序列分析之Holt-Winters的R语言实现

    科技2022-07-12  129

    代码如下(数据附在文末):

    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)

    图一: 可以看出,虽然有些延迟,二者的相似度还是比较高的 图二 预测数据之后的情况

    所用数据如下(此处只取第一列,蓝色部分为待预测值): 本文系编程小白所写,如有错漏,敬请指正。

    Processed: 0.014, SQL: 8