百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

时间序列分析(时间序列分析方法有哪些)

cac55 2024-09-21 13:28 26 浏览 0 评论

一,什么是时间序列?

时间序列简单的说就是各时间点上形成的数值序列,时间序列分析就是通过观察历史数据预测未来的值

时间序列分析并不是关于时间的回归,它主要是研究自身的变化规律的

二,时间序列的类别

1,纯随机序列

又称为白噪声序列,序列的各项之间没有任何相关关系,完全是无序的随机波动,这样的序列没有任何信息可以提取

2,平稳非白噪声序列

他的均值和方差是常数,对于这样的序列,现在已经有成熟的建模方法,通常是建立一个线性模型来拟合该序列的发展,借此提出有用的信息,ARMA 模型是最常用的平稳序列拟合模型(线性拟合并不是和时间的拟合,而是和本身的拟合)

3,非平稳非白噪声序列

对于非平稳序列,他的方差和均值不稳定,一般是先将其转换成平稳序列,这样就可以使用平稳时间序列的方法来分析,如ARMA模型;如果一个时间序列可以经差分后具有平稳性,则该序列是差分平稳序列,可以使用ARIMA模型

三:平稳性检验

1,为何要求序列平稳?

我们知道序列平稳性是进行时间序列分析的前提条件,很多人都会有疑问,为什么要满足平稳性的要求呢?

在统计学中,每一个问题我们都要有一个初始的基本假设,就像一些假设检验就要求数据符合正态分布,一个回归方程,要求Xi完全独立不相关,而且误差要符合均值为0的正态分布,而在时间序列分析上,最重要的假设前提就是序列的平稳性(来自一个知乎的牛叉解读),所以平稳的基本思想是:时间序列行为不能随着时间改变而改变,

2,平稳时间序列的定义:

平稳有强平稳和弱平稳之分,这里我们主要说弱平稳。ps:强平稳条件限制太强,难以验证

对于随机变量 X ,可以计算期均值也就是数学期望 μ ,方差 σ^2,对于两个随机变量X 和 Y,可以计算 X,Y的协方差cov(X,Y)=E[(X- μx)(Y-μy)]和相关系数ρ(X,Y)=cov(X,Y)/σXσY,他们度量了两个不同事件之间的相互影响程度。

对时间序列{Xt,t∈T},任意时刻的序列值Xt都是一个随机变量,每一个随机变量都会有均值和方差,任意取 t,s∈T,则他的自相关协方差函数 γ(t,s) = E[(X- μt)(Y-μs)] 和自相关系数ρ(t,s) = cov(Xt,Xs)/σtσs,之所以是自协方差函数和自相关系数,就是因为他们衡量的是同一件事在两个不同时期(时刻 t 和时刻 s )之间的相关程度,简单讲就是度量自己过去的行为对自己现在的影响!

如果时间序列{Xt,t∈T}在某一个常数附近波动且波动范围有限,即有常数均值和常数方差,并且延迟 k 期的序列变量的自协方差和自相关系数不变,或者说延迟 k 期的序列变量之间的影响程度一样,则称时间序列{Xt,t∈T}为平稳序列!

总结就是:

  • 常数均值
  • 常数方差
  • 常数自协方差和自相关系数

3,平稳性检测

对序列的平稳性检验有两种检验方法:

  • 根据时序图和自相关图的特征做出的图检验,操作简单,但是带有主观性

1)时序图检验:根据平稳时间序列的均值和方差为常数,平稳序列的时序图显示该序列应该在一个常数附件波动,而且波动范围有限,如果有明显的趋势性和周期性,则不是平稳序列

2)自相关图检验:平稳序列具有短期相关性,这个表明通常只有近期德尔序列值对现在的值影响比较明显,间隔越远的过去值对现在值影响越小。随着延迟期数 k 的增加,平稳性的自相关系数 ρk会比较快的衰减趋向于零,并在0附件波动,而非平稳序列的自相关系数衰减的速度比较慢,这是利用自相关图进行平稳检验的依据。

  • 构造检验统计量进行检验,常用的是单位根检验,还有 kpss 检验

单位根ADF检验指检验序列中是否存在单位根,如果存在,就是非平稳时间序列

ADF方法:原假设:序列有一个单位根(a=1的值),备则假设:该序列没有单位根如果接受原假设,则该序列是非平稳的,是可以差分平稳的

KPSS检验的作者将原假设定义为趋势平稳,并将备择假设定义为单位根序列

from statsmodels.tsa.stattools import adfuller,kpss
adf = adfuller(data['销量']) #print(dftest)
adfout = pd.Series(adf[0:4],index=['Test statistic','p-value','lag Users',\
 'Number of Observations Used'])
print('ADF检测:',adfout)
kpsstest=kpss(data['销量'])
print('KPSS检测:',kpsstest)

四:序列随机性检验

如果一个序列是纯随机序列,那么他的序列值之间完全没有任何关系,这是一种理想的状态,实际上纯随机序列的样本自相关系数不会为零,但是接近于零,在零附件波动。

纯随机性检验也叫白噪声检验,一般是构造检验统计量来检验序列的随机性,常用的统计量有Q统计量,LB统计量等。有样本各延期数的自相关系数可以计算得到统计检验量,然后计算出对应的p值,如果p值显著大于显著性水平α,则表示该序列不能拒绝纯随机的原假设,可以停止对该序列分析了。

from statsmodels.stats.diagnostic import acorr_ljungbox
print('白噪声检测结果:',acorr_ljungbox(diff1,lags=1)) #返回结果:[统计量,pvalue]
from statsmodels.tsa import stattools
stattools.q_stat #返回Ljung-Box Q统计量,用来做随机性检测

五:常用的时间序列模型

1,平稳时间序列分析

ARMA模型的全称是自回归移动平均模型,他是目前最常用的拟合模型平稳序列的模型,他又可以细分为AR模型,MA模型和ARMA模型,都可以看成是多元线性模型

1)自相关系数(ACF)

平稳AR(P)模型的自相关系数ρ(k) = cov(Xt,Xt-k)/σtσt-k 呈指数的速度衰减,始终有非零值,不会在k大于某个常数之后就恒等于零,这个就是平稳AR(P)模型的自相关系数ρ(k) 具有拖尾性

2)偏自相关系数(PACF)

对于平稳AR(P)模型,求出延迟k 期自相关系数ρ(k)时,实际上得到的并不是Xt与Xt-k之间单纯的相关关系,因为Xt还会受到中间k-1个随机变量Xt-1,Xt-2,... ,Xt-k的影响,所以ρ(k)实际上掺杂了其他变量对Xt与Xt-k的相关影响,为了单纯测算Xt-k 对 Xt的影响,引进了偏自相关系数。

平稳AR(P)模型偏自相关系数具有p阶截尾性,这个和自相关系数的拖尾性是AR(P)模型重要的识别依据!

1.1 AR模型

能够以以下结构表示的模型统称为p阶自回归模型,简称为AR(p)

xt = φ0+ φ1xt-1 +φ2xt-2+...+ φpxt-p + εt

即,在 t 时刻的随机变量Xt的取值 xt 是前 p 期xt-1,xt-1 , ... , xt-p的多元线性回归,认为xt主要受过去p期的序列值的影响,误差是当前的随机误差 εt,为零均值的白噪声序列-

1.2 MA模型

具有一下结构的模型称为q阶移动平均模型MA(q)

xt = μ +εt - θ1εt-1 - θ2εt-2 - ...- θqεt-q

在t时刻的随机变量Xt的取值xt 是前 q 期的随机误差εt-1 ,εt-2 ,...,εt-q的多元线性函数,误差项是当期的随机误差εt ,为零均值的白噪声序列,μ 是 序列{Xt}的均值,这里认为xt 主要是受过去q 期的误差项影响。

性质如下:

1.3 ARMA模型

如果满足以下结构的模型,则称为自回归平均模型ARMA(p,q)

xt = φ0+ φ1xt-1 +φ2xt-2+...+ φpxt-p + εt - θ1εt-1 - θ2εt-2 - ...- θqεt-q

在t时刻的随机变量Xt的取值xt 是前 p 期xt-1,xt-1 , ... , xt-p和前 q 期的随机误差εt-1 ,εt-2 ,...,εt-q的多元线性函数,误差项是当期的随机误差εt ,为零均值的白噪声序列,认为xt 主要是受过去p期的序列值和q 期的误差项的共同影响影响

ps:当q=0时,是模型;当p=0时,是MA(q)模型

平稳 ARMA模型性质如下:

六:平稳时间序列建模过程

1,计算ACF,PACF,自相关图和偏自相关图

2,ARMA模型识别,也称为模型定阶,由自相关系数和偏自相关系数性质,选择合适的模型

ARMA模型识别原则:

这样识别主观性比较大.

可以通过AIC,BIC来准则来得到p和q,这两个指标越小越好

很多参数估计问题均采用似然函数作为目标函数,当训练数据足够多时,可以不断提高模型精度,但是以提高模型复杂度为代价的,同时带来一个机器学习中非常普遍的问题——过拟合。所以,模型选择问题在模型复杂度与模型对数据集描述能力(即似然函数)之间寻求最佳平衡。

人们提出许多信息准则,通过加入模型复杂度的惩罚项来避免过拟合问题,此处我们介绍一下常用的两个模型选择方法——赤池信息准则(Akaike Information Criterion,AIC)和贝叶斯信息准则(Bayesian Information Criterion,BIC)。

AIC是衡量统计模型拟合优良性的一种标准,它建立在熵的概念上,提供了权衡估计模型复杂度和拟合数据优良性的标准。

通常情况下,AIC定义为:2K-Zln(L)

其中k是模型参数个数,L是似然函数。从一组可供选择的模型中选择最佳模型时,通常选择AIC最小的模型。

当两个模型之间存在较大差异时,差异主要体现在似然函数项,当似然函数差异不显著时,上式第一项,即模型复杂度则起作用,从而参数个数少的模型是较好的选择。

一般而言,当模型复杂度提高(k增大)时,似然函数L也会增大,从而使AIC变小,但是k过大时,似然函数增速减缓,导致AIC增大,模型过于复杂容易造成过拟合现象。目标是选取AIC最小的模型,AIC不仅要提高模型拟合度(极大似然),而且引入了惩罚项,使模型参数尽可能少,有助于降低过拟合的可能性。

BIC贝叶斯信息准则与AIC相似,用于模型选择。训练模型时,增加参数数量,也就是增加模型复杂度,会增大似然函数,但是也会导致过拟合现象,针对该问题,AIC和BIC均引入了与模型参数个数相关的惩罚项,BIC的惩罚项比AIC的大,考虑了样本数量,样本数量过多时,可有效防止模型精度过高造成的模型复杂度过高。

通常情况下,BIC = kln(n)-zln(L)

其中,k为模型参数个数,n为样本数量,L为似然函数。kln(n)惩罚项在维数过大且训练样本数据相对较少的情况下,可以有效避免出现维度灾难现象

参考:https://blog.csdn.net/lynnucas/article/details/47947943

#定阶,一般p,q最大值都不会超过数据长度的十分之一
pmax=int(len(data)/10)
qmax=int(len(data)/10)
bic_matrix=[]
for p in range(pmax+1):
 tmp=[]
 for q in range(qmax+1):
 try:
 tmp.append(ARMA(data,(p,q)).fit().bic)
 except:
 tmp.append(None)
 bic_matrix.append(tmp)
bic_data = pd.DataFrame(bic_matrix)
p,q = bic_data.stack().idxmin()
print('BIC最小的p和q值为:%s,%s'%(p,q))

3,模型检验

残差为白噪声序列

from statsmodels.stats.diagnostic import acorr_ljungbox
#需要对模型进行残差检测是否为白噪声序列,满足才可以接着进行预测
resids = model.resid #模型残差
#要求残差为纯随机序列,也就是白噪声序列
print('残差的白噪声检测结果:',acorr_ljungbox(resids,lags=1))
#残差独立性检测,durbin_watson结果在2附近说明满足残差独立性
print('durbin_watson检测结果:',sm.stats.durbin_watson(resids))
# qq图,检测是否符合正态分布
qqplot(resids)

4,模型优化

5,模型应用,用来预测接下来短时间的数据序列

七:非平稳时间序列分析过程

我们上面说了平稳序列的分析过程,但是实际上在,我们遇到的大部分的序列大都是非平稳的,因此对非平稳序列分析更加普遍,真正项目中用到的也是如此。

对于非平稳时间序列,一般常用的模型有ARIMA模型,残差自回归模型,异方差模型。一般使用ARIMA更为普遍。

1,差分运算,对于非平稳时间序列,可以通过差分运算来变成差分平稳序列

  • 相距一期的两个序列之间的值相减运算称之为1阶差分运算
  • 相距 k 期的两个序列之间的值相减运算称之为k 步差分运算

2,ARIMA模型

差分运算具有强大的确定性信息提取能力,许多非平稳序列差分后会显示出平稳序列的性质,这时的非平稳序列称之为差分平稳序列。对差分平稳序列就可以使用ARMA模型进行拟合。ARIMA模型实质上就是差分运算和ARMA模型的组合。如果你对时间序列做d次差分才能得到一个平稳序列,

那么可以使用ARIMA(p,d,q)模型,其中d是差分次数。对于差分后的平稳序列,分析方法同平稳序列一样。

相关推荐

服务器用的CPU和个人电脑用的CPU有什么区别?一篇文章告诉你!

服务器cpu和普通cpu的区别你的电脑CPU是‘短跑健将’,服务器CPU却是‘铁人三项选手’——它不追求瞬间爆发力,而要7×24小时扛住千军万马的数据洪流!想知道为什么企业机房敢收天价服务费?答案全藏...

“吃鸡”新版本第1天,玩家进入游戏点击“立即更新”,后悔了!

欢迎诸位小伙伴们来到天哥开讲的《和平精英》“精英小课堂”~每逢两三个月,这款游戏就会迎来一次大版本迭代更新,很多朋友会在第一时间更新版本,前往全新的主题模式里一探究竟。不过也有一些老玩家并不会立刻更新...

中关村在线·aigo存储杯《无畏契约》全国高校争霸赛招募启事

以青春之名,燃电竞之火1赛事背景与宗旨在金秋送爽的9月,芊芊学子们即将回归校园生活。为了给精彩的校园生活锦上添花,由中关村在线与aigo存储联合主办的《无畏契约》全国高校争霸赛正式启幕,旨在为全国高...

【生肖狗】9.7-9.10提醒:人算不如天算,转变即是转机

九月上旬的风,带着秋意的清爽,也带着几分不可捉摸的变数。对于生肖狗的朋友们来说,9月7日到9月10日这四天,格外需要留意“计划与变化”的碰撞——你们向来习惯提前规划,做事稳妥周全...

转转客服IM系统的WebSocket集群架构设计和部署方案

本文由转转技术李帅分享,原题“转转客服IM的WebSocket集群部署方案”,下文有修订和重新排版。1、引言转转作为国内头部的二手闲置交易平台,拥有上亿的用户。用户在使用转转app遇到问题时,一般可以...

上线3天Steam好评率86%,《时间旅者:重生曙光》开启生存恐怖新篇章

这里究竟发生了什么?末日降临,真正的故事悄然启幕。目前,生存恐怖类游戏《时间旅者:重生曙光(Cronos:TheNewDawn)》已在PC(Steam、EpicGamesStore)、P...

什么神仙洗衣机让我一天有28小时?拆开松下「大四洗」藏了啥秘密

说起家庭洗衣的烦恼,想必很多人都有过类似的经历:贴身内衣要单独洗,宝宝的口水巾得小心呵护,宠物玩具怕藏污纳垢,床单被套又体积庞大,把这些东西混在一起洗担心越洗越脏,分开洗又得反复操作,洗完烘、烘完再洗...

爆料人挖出GTA6注册的奇葩域名 延续经典讽刺风格

等待《侠盗猎车手6》的日子跨越了数个春秋,在游戏圈期盼着这部可能成为史上最重磅游戏的过程中,每过一段时间就会有些许消息浮出水面。最新线索来自数据挖掘者Tez2在GTA论坛的发现,他可能偶然发现了关于...

跟着故事去旅行——读《驼峰间:旅行、探险与征服》

作者:郭冰茹《驼峰间》记录了旅行家伊本·白图泰有生之年流传的一则寓言,说一对父子被关进了监狱,有一天儿子问父亲他们每天吃的都是些什么肉,父亲说有牛、羊和骆驼,并且详细地描述了每种动物的特点。但不管父亲...

前端工程师需要熟悉的Linux服务器(SSH 终端操作)指令

在Linux服务器管理中,SSH(SecureShell)是远程操作的核心工具。以下是SSH终端操作的常用命令和技巧,涵盖连接、文件操作、系统管理等场景:一、SSH连接服务器1.基本连接...

跳票6年后,「丝之歌」首发把Steam服务器干爆了 | 玩点好的

文丨果脯樱花隧道昨天晚上22点,「鸽」了6年的《空洞骑士:丝之歌》终于上线,算是了却不少玩家的执念。毕竟,这款游戏实在让人等了太多太多年,而且曾有过多次定档后跳票的「案底」,不知道把多少人都整出了P...

对标魔兽失败!腾讯版“魔兽”运营一年多后,宣布国际服凉凉

大家好,这里是正惊游戏,我是正惊小弟。有很多游戏都想干掉《魔兽世界》,但是大部分魔兽杀手都知道自己不是魔兽的对手,不过是想蹭一下人气而已。腾讯也有一款曾经想对标魔兽的大作,可是上线才一年半国际服就宣布...

408 Request Timeout:服务器等待客户端发送请求的时间过长。

408RequestTimeout是HTTP状态码之一,表示客户端在发送请求时,服务器等待的时间过长,最终放弃了处理该请求。此问题通常与网络延迟、客户端配置、服务器设置或者应用程序的性能有关...

梦幻西游:9.9维护解读,全新时间服锁定129级

梦幻西游:9.9维护解读,全新时间服锁定129级9月9日维护解读。1、教师节活动开启,一共7天。挂机,答题,收笔墨纸砚,收海马,搞起来。或者是提前收点家具,教师节期间体力珍贵,家具会涨价。又或者是教师...

只是拆掉一面墙,空间就立马大变样,这种设计思路,值得学习

你有没有过这样的经历?刚买的房子户型图看起来方方正正,装修完却发现——玄关鞋柜只能塞在角落,进门就撞墙;餐厅正好在过道中间,吃饭像走流程;明明有四个房间,却有一个空着没用,像块食之无味的鸡肋;客餐厅之...

取消回复欢迎 发表评论: