- R语言中ARIMA模型
setwd("E:\\R_workspace\\R语言数据分析与挖掘实战\\chp5") library(forecast) library(fUnitRoots) Data <- read.csv("./data/arima_data.csv", header = TRUE)[, 2] View(Data) # 时间序列(使用ts()函数进行时间序列转化) # 时间序列对象是一种专为时间序列分析而设计的对象类型, # 其中包括两个维度,一个是描述指标的数值,还有一维是时间。 # 时间序列对象和一般数值型向量类似,只不过是加了一个时间的描述。 # 在R语言中可以使用ts(数据向量,frequency=表示将时间分开的时间间隔,start=c(第一个数据所表示的年,月)) sales <- ts(Data) plot.ts(sales, xlab = "时间", ylab = "销量 / 元") # 自相关图 acf(sales) # 单位根检验 unitrootTest(sales) # 对原始序列进行 一阶差分,并进行 平稳性和白噪声检验 # 一阶差分 # 语法:(默认)diff(x, lag = 1, diff= 1, …) # 若x是一个数值向量,则表示后一项减前一项,即滞后一阶差分; # lag 表示滞后项 # 如果要指定差分的阶数,则一定要使用带名称的参数:diff=2 # sample表示样本数据。 # 1、diff(sample,2)表示是对滞后2阶的数据进行差分,一阶差分,等同于:diff(sample,lag=2) # 2、diff(sample,diff=2)才是表示二阶差分 difsales <- diff(sales) plot.ts(difsales, xlab = "时间", ylab = "销量残差 / 元") # 自相关图 acf(difsales) # 单位根检验 unitrootTest(difsales) # 白噪声检验 Box.test(difsales, type="Ljung-Box") # 偏自相关图 pacf(difsales) # ARIMA(1,1,0)模型 # ARIMA(p,d,q)模型全称为差分自回归移动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA), # AR是自回归, p为自回归项; # MA为移动平均,q为移动平均项数; # d为时间序列成为平稳时所做的差分次数。 arima <- arima(sales, order = c(1, 1, 0)) arima # forecast <- forecast.Arima(arima, h = 5, level = c(99.5)) forecast <- forecast(arima, h = 5, level = c(99.5)) forecast plot(forecast) # tsdiag检验 tsdiag(arima)
文章来源: R语言中ARIMA模型