R语言中ARIMA模型

  • 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语言)