模型算法 | 描述 |
---|
平滑法 | 常用于趋势分析和预测,利用修匀技术,削弱短期随机波动对序列的影响,使序列平滑化。可具体分为移动平均和指数平均 |
趋势拟合法 | 时间作为自变量,相应的序列观察值作为因变量,建立回归模型。根据序列的特征,可具体分为线性拟合和曲线拟合 |
组合模型 | 时间序列的变化主要受到长期趋势、季节变动、周期变动和不规则变动这四个因素的影响。可构建加法模型和乘法模型 |
AR模型 | 以前p期的序列值为自变量、随机变量的取值为因变量建立线性回归模型 |
MA模型 | 随机变量的取值与以前各期的序列值无关,建立与前期的随机扰动的线性回归模型 |
ARMA模型 | 随机变量的取值不仅与以前p期的序列值有关,还与前q期的随机扰动有关 |
ARIMA模型 | 差分平稳序列 |
ARCH模型 | 适用于序列具有异方差且异方差函数短期自相关 |
GARCH模型 | 广义ARCH模型 |
Data <- read.csv("./data/arima_data.csv", header = TRUE)[, 2]
sales <- ts(Data)
plot.ts(sales, xlab = "时间", ylab = "销量 / 元")
# 单位根检验
unitrootTest(sales)
# 自相关图
acf(sales)
# 一阶差分
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 <- arima(sales, order = c(1, 1, 0))
arima
forecast <- forecast.Arima(arima, h = 5, level = c(99.5))
forecast
函数名 | 功能 |
---|
acf() | 计算自相关系数 |
pacf() | 偏相关系数 |
unitrootTest() | 对观测值序列进行单位根检验 |
diff() | 对观察值序列进行差分计算 |
armasubsets() | 模型定阶,确定时序模型的建模参数 |
arima() | 设置时序模型的建模参数,创建ARIMA模型 |
Box.test() | 检测ARIMA模型是否符合白噪声检验 |
forecast() | 应用构建的时序模型进行预测 |