目录
1. 建模流程
1.1 序列平稳性检验+纯随机性检验
1.2 模型选择
1.3 参数估计
1.4 模型检验
1.5 模型优化
1.6 预测
2. 序列平稳性检验和纯随机性检验
2.1 图检验
主要适用于趋势或者周期比较明显的序列,具有一定主观性。
(1)绘制时序图与自相关图:
x<-read.csv("C:/Users/M/Desktop/4.9.csv") #读入csv数据
dwelling<-ts(x,start = c(1971,9),frequency = 12)#构造时间序列变量
#start:指定序列起始时间,如start=c(1990,2)即1990年2月;start=1990即1990年。
#frequency:指定学列每年读入的数据频率,如frequency=12即每年读入12个数据,月度数据;frequency=4即读入季度数据;诸如此类。
plot(dwelling) #输出时序图
acf(dwelling,lag.max=12,plot=T)
#acf(变量名,延迟阶数,选择输出自相关图或者自相关系数)
#lag.max:若缺省该参数,系统会根据序列长度自动指定延迟阶数。
#plot:系统默认参数为plot = Ture,即只输出自相关图不输出自相关系数;plot=False,只输出自相关系数。
acf(time)$acf #查看具体的自相关系数
从时序图可见该序列没有明显的趋势和周期,从自相关图可见该序列除了延迟1~4阶外,其他自相关系数均在两倍标准差内,可以认为该序列具有短期相关性。因此判断该序列为平稳序列。
(2)纯随机检验
纯随机序列序列没有建模的必要,因为序列值之间无相关性,历史数据对未来数据无影响。
用Box.test 函数进行纯随机性检验:
Box.test(dwelling,lag=6,type="Ljung-Box") #延迟6阶
Box.test(dwelling,lag=12,type="Ljung-Box") #延迟12阶
#lag: 缺省该参数时,默认输出之后1阶的检验统计量结果
#type:选择检验统计量的类型,默认为type="Box-Pierce",输出白噪声检验的Q统计量;type="Ljung-Box"输出LB统计量
#输出情况如下
> Box.test(dwelling,lag=6,type="Ljung-Box") #延迟6阶
Box-Ljung test
data: dwelling
X-squared = 215.96, df = 6, p-value < 2.2e-16
> Box.test(dwelling,lag=12,type="Ljung-Box") #延迟12阶
Box-Ljung test
data: dwelling
X-squared = 329.2, df = 12, p-value < 2.2e-16
白噪声检验显示延迟为6、12阶时p值均远远小于显著性水平0.05,因此显著拒绝序列为纯随机系列的原假设。因此判断该序列为非纯随机序列。
2.2 单位根检验
2.2.1 DF检验
仅适用于最简单的1阶模型AR(1)的平稳性检验。
调用aTSA中的的adf.test 函数进行DF检验:
install.packages("aTSA")
library(aTSA)
adf.test(dwelling,nlag=2)
#nlag:最高延迟阶数,若nlag=1即输出自回归0阶延迟平稳性检验结果;若nlag=2即输出自回归0至1阶延迟平稳性检验结果。
#输出结果
> adf.test(dwelling,nlag=2)
Augmented Dickey-Fuller Test
alternative: stationary
Type 1: no drift no trend
lag ADF p.value
[1,]