时间序列分析(时间序列分析方法有哪些)
cac55 2024-09-21 13:28 23 浏览 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是差分次数。对于差分后的平稳序列,分析方法同平稳序列一样。
相关推荐
- Mac电脑强制删除任何软件方法-含自启动应用
-
对于打工者来说,进入企业上班使用的电脑大概率是会被监控起来,比如各种流行的数据防泄漏DLP,奇安信天擎,甚至360安全卫士,这些安全软件你想卸载是非常困难的,甚至卸载后它自己又安装回来了,并且还在你不...
- Linux基础知识 | 文件与目录大全讲解
-
1.linux文件权限与目录配置1.文件属性Linux一般将文件可存取的身份分为三个类别,分别是owner/group/others,且三种身份各read/write/execute等权限文...
- 文件保护不妥协:2025 年 10 款顶级加密工具推荐
-
数据安全无小事,2025年这10款加密工具凭借独特功能脱颖而出,从个人到企业场景全覆盖,第一款为Ping32,其余为国外英文软件。1.Ping32企业级加密核心工具,支持200+文件格...
- 省心省力 一个软件搞定系统维护_省心安装在哪里能找到
-
◆系统类似于我们居住的房间,需要经常打理才能保持清洁、高效。虽然它本身也自带一些清理和优化的工具,但借助于好用的第三方工具来执行这方面的任务,会更让人省心省力。下面笔者就为大家介绍一款集多项功能于一身...
- JAVA程序员常用的几个工具类_java程序员一般用什么软件写程序
-
好的工具做起事来常常事半功倍,下面介绍几个开发中常用到的工具类,收藏一下,也许后面真的会用到。字符串处理:org.apache.commons.lang.StringUtilsisBlank(Char...
- 手工解决Windows10的若干难题_windows10系统卡顿怎么解决
-
【电脑报在线】很多朋友已经开始使用Win10,估计还只是测试版本的原因,使用过程中难免会出现一些问题,这里介绍解决一些解决难题的技巧。技巧1:让ProjectSpartan“重归正途”从10074...
- System32文件夹千万不能删除,看完这篇你就知道为什么了
-
C:\Windows\System32目录是Windows操作系统的关键部分,重要的系统文件存储在该目录中。网上的一些恶作剧者可能会告诉你删除它,但你不应该尝试去操作,如果你尝试的话,我们会告诉你会发...
- Windows.old 文件夹:系统备份的解析与安全删除指南
-
Windows.old是Windows系统升级(如Win10升Win11)或重装时,系统自动在C盘创建的备份文件夹,其核心作用是保留旧系统的文件、程序与配置,为“回退旧系统”提供保...
- 遇到疑难杂症?Windows 10回收站问题巧解决
-
回收站是Windows10的一个重要组件。然而,我们在使用过程中,可能会遇到一些问题。例如,不论回收站里有没有文件,都显示同一个图标,让人无法判别回收站的空和满的真实情况;没有了像Windows7...
- 卸载软件怎么彻底删掉?简单几个步骤彻底卸载,电脑小白看过来
-
日常工作学习生活中,我们需要在安装一些软件程序,但随着软件的更新迭代速度,很多时候我们需要重新下载安装新的程序,这时就需要将旧的一些软件程序进行卸载。但是卸载软件虽然很简单,但是很多小伙伴们表示卸载不...
- 用不上就删!如何完全卸载OneDrive?
-
作为Windows10自带的云盘,OneDrive为资料的自动备份和同步提供了方便。然而,从隐私或其他方面考虑,有些人不愿意使用OneDrive。但Windows10本身不提供直接卸载OneDri...
- 【Linux知识】Linux下快速删除大量文件/文件夹方法
-
在Linux下,如果需要快速删除大量文件或文件夹,可以使用如下方法:使用rm命令删除文件:可以使用rm命令删除文件,例如:rm-rf/path/to/directory/*这个命令会递...
- 清理系统不用第三方工具_清理系统垃圾用什么软件
-
清理优化系统一定要借助于优化工具吗?其实,手动优化系统也没有那么神秘,掌握了方法和技巧,系统清理也是一件简单和随心的事。一方面要为每一个可能产生累赘的文件找到清理的方法,另一方面要寻找能够提高工作效率...
- 系统小技巧:软件卸载不了?这里办法多
-
在正常情况下,我们都是通过软件程序组中的卸载图标,或利用控制面板中的“程序和功能”模块来卸载软件的。但有时,我们也会发现利用卸载图标无法卸载软件或者卸载图标干脆丢失找不到了,甚至控制面板中卸载软件的功...
- 麒麟系统无法删除文件夹_麒麟系统删除文件权限不够
-
删除文件夹方法例:sudorm-rf文件夹名称。删除文件方法例:sudorm-r文件名包括扩展名。如果没有权限,给文件夹加一下权限再删。加最高权限chmod775文件名加可执行权限...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)