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)
  • 9
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值