如何将ARIMA模型拟合到R中的季节性流量数据?

时间:2019-04-01 15:02:16

标签: r time-series missing-data forecasting arima

在加拿大,通常在冻结月份(11月,12月,1月,2月)没有流量数据。对于具有季节性数据的量规,以下代码如何适用(每年的数据从3月1日至10月31日可用)?

我为每天在时间步长具有连续流数据(1月1日至12月31日)的站编写了以下代码。我正在通过获取1970-2018年期间每个月的最大值来训练模型。但是,该代码不适用于具有季节性流量数据的压力表(仅适用于3月1日至10月31日可用的数据)-这意味着我在整个1970-2018年期间都没有11月,12月和1月2月的数据。我相信我必须在抓取FlowData的那条线上进行操作,尤其是开始和频率部分,但无法弄清楚该怎么做。

#########################
# General setup
###########################
setwd("G:/ARIMA_Model")
install.packages("fpp2")
library(fpp2)
library(tidyverse)
graphics.off() # close all open figures
rm(list=ls())  # clear workspace

MyData <- read.csv("Kamsack_April.csv", header=TRUE, sep=",")

#########################
# Grabbing maximum value in each month.
###########################
Monthly=MyData %>% select(year, month, day, Flow..m3.sec.) %>% 
  group_by(year, month) %>% 
  summarise(Max_Streamflow=max(Flow..m3.sec., na.rm = TRUE))

FlowData=ts(Monthly[,3], start = c(1970,01), frequency = 12) 

#########################
# Fit  ARIMA model
###########################

# ARIMA model fitting
Fit_ARIMA= auto.arima(FlowData,d=1,D=1, stepwise = TRUE, approximation = TRUE, trace = TRUE)
print(summary(Fit_ARIMA))
checkresiduals(Fit_ARIMA)


#########################
# Forecast for next six months
###########################
# Use the model to predict next 6 months
fcst=forecast(Fit_ARIMA, h=6)

0 个答案:

没有答案