时间序列分析实战(一):时序平稳性和白噪声检验

简介: 时间序列分析实战(一):时序平稳性和白噪声检验

1 目的

  有1969年1月至1973年9月在芝加哥海德公园内每28天发生的抢包案件数构成的时间序列x t x_txt,具体数据(行数据)见表1所示,判断该时序的平稳性和纯随机性。同时为用作后续研究,若原序列非平稳,需要使用差分、对数变换、平滑、时序分解等平稳化方法将序列平稳化,并进行白噪声检验。

表1 数据表(行数据)

2 平稳性检验

2.1 原始时序图

  运行程序:

library("tseries")                                             #加载包
data<-read.table("F:\\时间序列分析\\数据.txt")#读取数据
data <- t(as.matrix(data))                                     #转化为转置矩阵
dim(data) <- c(12*6,1)                                         #转化为一列数据
data<-data[1:70,]                                              #实验数据
number<-ts(data,start = c(1969,1),frequency = 12)              #转化为时序数据
plot(number,ylab="案件数",xlab="时间")                         #绘制时序图

  运行结果:

图1 1969年1月1——1973年9月芝加哥海德公园抢包案件数时序图

  由图1可以看出,芝加哥海德公园内,每28天发生抢包案件数序列在1971-1972年间存在明显波动。

2.2 时序自相关检验

  运行程序:

acf(number,lag.max = 30)                                      #绘制白噪声序列自相关图

  运行结果:

图2 白噪声序列自相关图

  结合图1、图2可以看出,该序列自相关系数延迟20阶之后依旧显著非零,这说明该序列自相关系数具有长期相关性,且自相关图呈现明显的倒三角特征,这是具有单调趋势的非平稳序列的典型特征,故,我们可以认为该序列非平稳,且具有长期趋势,这里使用差分的方式进行数据处理。

3 差分处理

3.1差分处理后时序图

  由于原始序列为非平稳数据,使用差分方法处理原始数据,令:yt=xt−xt−1

  然后yt进行平稳性检验。

  运行程序:

diffnumber<-diff(number)                          #差分运算
plot(diffnumber,ylab="案件数",xlab="时间")          #绘制时序图

  运行结果:

图3 1969年1月1——1973年9月芝加哥海德公园抢包案件数差分后时序图

  由图3可以看出,芝加哥海德公园内,每28天发生抢包案件数的差分序列数据始终在10附近波动,无明显趋势或周期。

3.2 差分后序列自相关检验

  运行程序:

acf(diffnumber,lag.max = 30)                                      #绘制白噪声序列自相关图

  运行结果:

图4 白噪声序列自相关图

  结合图4可以看出,该序列除延迟1阶的自相关系数正在两倍标准差之外,其余自相关系数均在两倍标准差之内,我们可以认为该序列具有短期自相关,故,我们可以认为该序列为平稳时间序列。

4 纯随机检验

  运行程序:

k<-c(3,6)                                       #待检验滞后阶数
for(s in k){
  print(Box.test(number,lag=s))
}                                                #检验结果

  运行结果:

## 
##  Box-Pierce test
## 
## data:  number
## X-squared = 47.99, df = 3, p-value = 2.14e-10
## 
## 
##  Box-Pierce test
## 
## data:  number
## X-squared = 60.084, df = 6, p-value = 4.327e-11

  通过纯随机检验结果显示,在前3期和前6期延迟下,由于时序数据数量大于30,采用Q统计量进行检验,其P值均非常小,且小于0.05,说明在0.05显著性水平下,拒绝“延迟期数小于或等于m期的序列值之间相互独立”的原假设,故,我们可以判断该序列为非白噪声序列。

相关文章
|
网络安全
sas9.4安装教程
sas9.4安装教程
1867 0
ML之Spearman:Spearman相关系数(斯皮尔曼等级相关系数)的简介、案例应用之详细攻略
ML之Spearman:Spearman相关系数(斯皮尔曼等级相关系数)的简介、案例应用之详细攻略
ML之Spearman:Spearman相关系数(斯皮尔曼等级相关系数)的简介、案例应用之详细攻略
|
机器学习/深度学习 程序员 数据处理
时间序列分析技巧(一):根据ACF、PACF进行AR、MA、ARMA模型选择
时间序列分析技巧(一):根据ACF、PACF进行AR、MA、ARMA模型选择
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
4639 2
11种经典时间序列预测方法:理论、Python实现与应用
|
存储 运维 分布式计算
OSS迁移实战:从自建MinIO到阿里云OSS的完整数据迁移方案
本文介绍了从自建MinIO迁移至阿里云OSS的完整方案,涵盖成本优化、稳定性提升与生态集成需求。通过双写代理、增量同步、分层校验等技术,解决数据一致性、权限迁移、海量小文件处理等挑战,实现业务零中断与数据强一致性,最终达成79%的TCO降低和显著性能提升。
|
机器学习/深度学习 人工智能 算法
FinRobot:开源的金融专业 AI Agent,提供市场预测、报告分析和交易策略等金融解决方案
FinRobot 是一个开源的 AI Agent 平台,专注于金融领域的应用,通过大型语言模型(LLMs)构建复杂的金融分析和决策工具,提供市场预测、文档分析和交易策略等多种功能。
2130 13
FinRobot:开源的金融专业 AI Agent,提供市场预测、报告分析和交易策略等金融解决方案
|
数据可视化 测试技术
9个时间序列交叉验证方法的介绍和对比
在本文中,我们收集了时间序列的常用的9种交叉验证方法。这些包括样本外验证(holdout)或流行的K-fold交叉验证的几个扩展。
3420 0
9个时间序列交叉验证方法的介绍和对比
|
缓存 网络协议 数据挖掘
如何使用弱网环境来验证游戏中的一些延迟问题
如何使用弱网环境来验证游戏中的一些延迟问题
论文技术路线图如何绘制?
本文介绍基于Visio软件绘制技术路线图、流程图、工作步骤图等的方法~
1850 1
【SPSS】相关分析和偏相关分析详细操作过程(附案例实战)
【SPSS】相关分析和偏相关分析详细操作过程(附案例实战)
2648 0