时间序列分析:平稳时间序列建模
时间序列分析:平稳时间序列分析
- 一.录入数据
- 1.读入数据
- 2.转为时间序列数据
- 二. 平稳时间序列建模
- 1.建模步骤
- 2.根据序列的时序图,自相关图和偏自相关图判断序列的平稳性,随机性
- 2.1.时序图检验
- 2.2.自相关图检验
- 2.3判断该序列的纯随机性
- 3.选择适当模型
- 4.模型检验及优化
- 4.1模型显著性检验
- 4.2参数显著性检验
- 4.3模型优化
- 三.时间序列预测
一.录入数据
1.读入数据
在R中输入一下命令:
rain=read.table("/home/ddy/桌面/习题3.17数据.txt",sep="\t",header = F)
> head(rain)
我们发现该数据录入的时候是按行录入的,我们需要的时按列录入的数据,所以我们对原数据先转置,再将数据的每一列链接到第一列下面,代码实现如下:
#将数据转置
> rain=t(rain)
> rain_m=matrix(data=0, nrow = 64, ncol = 1)
> k=1
#将数据的每一列链接到第一列下面
> for(i in 1:8){ for(j in 1:8){ rain_m[k]=rain[j,i] k=k+1 }
}
> rain_m
2.转为时间序列数据
rain_m=ts(rain_m)
二. 平稳时间序列建模
1.建模步骤
2.根据序列的时序图,自相关图和偏自相关图判断序列的平稳性,随机性
2.1.时序图检验
由时序图可初步得知该地区年降雨量几乎都在80在右波动,没有明显的周期性和单调性,所以认为该序列为平稳序列。
2.2.自相关图检验
在自相关图中,我们发现除了延迟1,2阶的自相关系数在2倍标准差以外,其他阶数的自相关系数2倍标准差以内波动,根据自相关系数的这个特点可以判断该序列具有短期相关性,即认为该序列为平稳序列。
并且非0自相关系数衰减到小值是一个突然的过程,不是一个连续渐变的过程,这是自相关系数截尾的的典型特征。
在偏自相关系数衰减到0的过程比较缓慢,可知道偏自相关系数不截尾。
综合1,2我们可认为该地区年降雨量序列是平稳序列。
2.3判断该序列的纯随机性
根据检验结果我们可以得出,从延迟6阶的检验结果中我们可以把得到P值都小于显著性水平0.05。因此,我们拒绝序列纯随机的原假设,即该序列为非白噪声序列,我们可以认为该该地区年降雪量序列变动不属于随机变动,这说明我们可以根据历史信息来预测未来年份的该地区年降雪量。
3.选择适当模型
在自相关系数衰减到0的过程,除了延迟2阶的偏自相关系数在2倍标准差以外,其他阶数的偏自相关系数2倍标准差以内波动,这是一个自相关系数2阶拖尾的的典型特征。
所以我们选择初步用MA(2) 模型来拟合序列,为了尽量避免因个人经验不足而导致模型识别不准确,所以我们运用auto.arima()函数来自动识别模型阶数,并从中得到参数估计值。
auto.arima(rain_m)的结果为:
由此可知,我们不能选择MA(2)模型,而要选择MA(1)模型,接下来我们对MA(1)模型进行检验:
4.模型检验及优化
4.1模型显著性检验
模型显著性检验只要是检验模型的有效性,一个模型是否显著有效主要看它提取的信息是否充分,一个好的拟合模型应该能够提取观察值序列中几乎所有的样本相关信息。换一句话说就是拟合残差项中将不在蕴含任何相关信息,即残差序列应该为白噪声序列,这样的模型才称为显著有效模型。所以我们可以认为模型的显著性检验就是残差序列的白噪声简检验。
由检验结果可知,各阶延迟下的LB统计量的P值都大于0.05,可以认为这个拟合模型的残差序列属于白噪声序列,即该拟合模型显著有效。
此外,即使通过了MA(1)模型的检验。为了充分考虑各种可能,我们建立多个拟合模型,我们发现MA(2)模型的结果并没有 MA(1)的结果显著,所以我们最终选择MA(1)模型进行拟合。
4.2参数显著性检验
检验函数:
pt(t,df = ,lower.tail = )t:t统计量的值图(该例子中:t=0.2103/0.0982)
df:自由度(n-参数个数)
lower.tail:确定计算概率的方向。对于参数显著性检验,如果参数估计值为负,选择lower.tail=T
4.3模型优化
若一个模型通过里检验,说明在一定置信水平下,该模型能够有效的拟合观察值序列的波动,但这种模型并不是唯一的。此时我们可以通过比较各个模型的AIC值和SBC值来进行最优模型的选择。
三.时间序列预测
利用拟合模型,预测城市未来5年的降雪量:
> rain.fore=forecast(rain_m_fit,h=5)
> plot(rain.fore)
得到该城市未来5年的降雪量预测图:
代码汇总:
rain=read.table("/home/ddy/桌面/习题3.17数据.txt",sep="\t",header = F)
head(rain)rain=t(rain)rain_m=matrix(data=0, nrow = 64, ncol = 1)
k=1
for(i in 1:8){for(j in 1:8){rain_m[k]=rain[j,i]k=k+1}
}rain_m=data.frame(rain_m[-64,])
head(rain_m)rain_m=ts(rain_m)
par(mfcol=c(3,1))
plot(rain_m,main = "年降雪量时序图",col=6)
acf(rain_m,main = "年降雪量自相关图",col=2)
pacf(rain_m,main = "年降雪量偏自相关图",col=2)#系统自动定阶
auto.arima(rain_m)arima(x = rain_m, order = c(0, 0, 1), method = "ML")
for(i in 1:2)print(Box.test(rain_m_fit$residuals,lag=6*i))
pt( 0.2103/0.0982,df=62,lower.tail=F)
rain.fore=forecast(rain_m_fit,h=5)
rain.fore
plot(rain.fore)############
#预测图个性化#
############
L1<-x.fore$fitted-1.96*sqrt(x.fit$sigma2)
U1<-x.fore$fitted+1.96*sqrt(x.fit$sigma2)
L2<-ts(x.fore$lower[,2],start = 2009)
U2<-ts(x.fore$upper[,2],start = 2009)
c1<-min(x,L1,L2)
c2<-max(x,L2,U2)
plot(x,type = "p",pch=8,xlim = c(1950,2013),ylim = c(c1,c2))
lines(x.fore$fitted,col=2,lwd=2)
lines(x.fore$mean,col=2,lwd=2)
lines(L1,col=4,lty=2)
lines(L2,col=4,lty=2)
lines(U1,col=4,lty=2)
lines(U2,col=4,lty=2)
时间序列分析:平稳时间序列建模相关推荐
- 时间序列、时间序列分析、时间序列效应分解、平稳时间序列、AIC和BIC
时间序列.时间序列分析.时间序列效应分解.平稳时间序列.AIC和BIC 目录 时间序列.时间序列分析.时间序列效应分解.平稳时间序列.AIC和BIC
- 时间序列分析-针对时间序列的特殊方法
时间序列分析-针对时间序列的特殊方法 本文依据知乎大佬的文章 平稳性 许多时间序列的统计学模型都是依赖于时间序列是平稳性的这一前提条件,通常来说,一个平稳的时间序列指的是这个时间序列在一段时间内具 ...
- 时间序列分析 | Python时间序列预测理论一览
时间序列分析 | Python时间序列预测理论一览 目录 时间序列分析 | Python时间序列预测理论一览 基本介绍 特性描述 建模方法 规则介绍 模型分类 传统时序模型 树模型 线性回归 神经网络 ...
- 时间序列分析 | Python时间序列数据统计分布
时间序列分析 | Python时间序列数据统计分布 目录 时间序列分析 | Python时间序列数据统计分布 基本介绍 分布类型 均匀分布 高斯分布 对数正态分布 泊松分布 指数分布 学生t分布 卡方 ...
- 时间序列分析--手算时间序列
大部分内容来自DataWhale时间序列分析的学习资料. 标题 时间序列数据本质上反映的是某个或某些随机变量时间不断变化的趋势,而时间序列方法的核心就是从数据中挖掘出这种规律,并利用其对将来的数据做出 ...
- 【Python数据分析】时间序列分析——AR/MA/ARMA/ARIMA
目录 一.时间序列的平稳性与差分法 1.时间序列的平稳性: 2.平稳性检验 3.纯随机性检验 4.差分法 二.平稳时间序列模型 1.AR模型 2.MR模型 3.ARMA模型 4.平稳时间序列建模步骤 ...
- 一文速学-时间序列分析算法之移动平均模型(MA)详解+Python实例代码
目录 前言 一.移动平均模型(MA) 模型原理 自回归 移动平均模型 自相关系数 常用的 MA 模型的自相关系数 通用: MA(1)模型: MA(2)模型: 自协方差函数 二.Python案例实现 平 ...
- 应用时间序列分析清华大学出版社电子版_时间序列分析简介
来源:stata答疑 Q1:时间序列数据和时间序列分析 时间序列数据是在特定时间内监测或记录下的有序数据集合.太阳活动.潮汐.股票市场趋势.疾病传播等都是时间序列的典型案例.是指将同一统计指标 ...
- r软件时间序列分析论文_高度比较的时间序列分析-一篇论文评论
r软件时间序列分析论文 数据科学 , 机器学习 (Data Science, Machine Learning) In machine learning with time series, using ...
- 数据分析 时间序列分析 概述
一.概述 1.时间序列 (1)概念: 常用按时间顺序排列的1组随机变量X1,X2...Xt来表示1个随机事件的"时间序列",简记为{Xt};或者说,时间序列是某个指标在不同时间的不 ...
最新文章
- DIV布局SEO的影响
- tomcat7在eclipse中,调试时断点频繁停在threadpoolexecutor
- linux下如何屏蔽代码,linux c 怎么屏蔽信号 使用sigprocmask命令
- Codeforces 429B Working out:dp【枚举交点】
- 以太坊代码标准是什么_以太坊的包容性开发语言里到底藏着什么秘密?
- php对话框制作,织梦系统“提示窗口对话框类”详解,oxwindow.class.php、catalog_do.php...
- 面向对象思想设计原则
- 灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?
- 毕业论文:vrml设计的虚拟校园
- ccxprocess启动项可以禁用么_启动项禁用
- 使用wbadmin备份整个网络上的完整Vista PC
- 工业大数据特征有哪些 大数据工程师来告诉你
- HBase原理 -Regin切分
- 计算机联锁控制台功能,计算机联锁控制台的改进及应用
- Android之Canvas画笔和画布
- Winform(C#) 国内开源美化控件主题库1 SunnyUI
- 分享-目前免费-简历在线制作网站
- 数学中随机性和不确定性有何不同?
- CV GaussianBlur
- 企业如何建设网站之基础建站教程