时间序列-ARIMA模型

2023-11-02

数据平稳性与差分法

平稳性:

  • 平稳性就是要求经由样本时间序列所得到的拟合曲线 在未来的一段期间内仍能顺着现有的形态“惯性”地延续下
  • 平稳性要求序列的均值和方差不发生明显变化

严平稳与弱平稳:

  • 严平稳:严平稳表示的分布不随时间的改变而改变。 如:白噪声(正态),无论怎么取,都是期望为0,方差为1
  • 弱平稳:期望与相关系数(依赖性)不变 未来某时刻的t的值Xt就要依赖于它的过去信息,所以需要依赖性

差分法:时间序列在t和t-1时刻的差值

在这里插入图片描述

自回归模型(AR)

  • 描述当前值与历史值之间的关系,用变量自身的历史时间数据对自身进行预测
  • 自回归模型必须满足平稳性的要求
  • p阶自回归过程的公式定义: y t = μ + ∑ i = 1 p γ i y t − 1 + ϵ t y_{t}=\mu+\sum^{p}_{i=1}\gamma_{i}y_{t-1}+\epsilon_{t} yt=μ+i=1pγiyt1+ϵt
  • y t y_{t} yt是当前值 μ \mu μ是常数项, P P P是阶数 γ i {\gamma}_{i} γi是自相关函数 ϵ t {\epsilon}_{t} ϵt是误差

自回归模型的限制

  • 自回归模型是用自身的数据来进行预测
  • 必须具有平稳性
  • 必须具有自相关性,如果自相关系数(φi)小于0.5,则不宜采用
  • 自回归只适用于预测与自身前期相关的现象

移动平均模型(MA)

  • 移动平均模型关注的是自回归模型中的误差项的累加
  • q阶自回归过程的公式定义: y t = μ + ϵ t + ∑ i = 1 q θ i ϵ t − 1 y_{t}=\mu+\epsilon_{t}+\sum^{q}_{i=1}\theta_{i}\epsilon_{t-1} yt=μ+ϵt+i=1qθiϵt1
  • 移动平均法能有效地消除预测中的随机波动

自回归移动平均模型(ARMA)

  • 自回归与移动平均的结合
  • 公式定义: y t = μ + ∑ i = 1 p γ i y t − 1 + ϵ t + ∑ i = 1 q θ i ϵ t − 1 y_{t}=\mu+\sum^{p}_{i=1}\gamma_{i}y_{t-1}+\epsilon_{t}+\sum^{q}_{i=1}\theta_{i}\epsilon_{t-1} yt=μ+i=1pγiyt1+ϵt+i=1qθiϵt1

ARIMA

  • ARIMA(p,d,q)模型全称为差分自回归移动平均模型 (Autoregressive Integrated Moving Average Model,简记ARIMA
  • AR是自回归, p为自回归项; MA为移动平均 q为移动平均项数,d为时间序列成为平稳时所做的差分次数
  • 原理:将非平稳时间序列转化为平稳时间序列然后将因变量 仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型

自相关函数ACF(autocorrelation function)

  • 有序的随机变量序列与其自身相比较 自相关函数反映了同一序列在不同时序的取值之间的相关
  • 公式: A C F ( k ) = ρ k = C o v ( y t , y t − k ) V a r ( y t ) ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})} ACF(k)=ρk=Var(yt)Cov(yt,ytk)
  • ρ k \rho_{k} ρk的取值范围为[-1,1]

偏自相关函数(PACF)(partial autocorrelation funtion)

  • 对于一个平稳AR§模型,求出滞后k自相关系数p(k)时 实际上得到并不是x(t)与x(t-k)之间单纯的相关关系
  • x(t)同时还会受到中间k-1个随机变量x(t-1)、x(t-2)、……、x(t-k+1)的影响 而这k-1个随机变量又都和x(t-k)具有相关关系 所以自相关系数p(k)里实际掺杂了其他变量对x(t)与x(t-k)的影响
  • 剔除了中间k-1个随机变量x(t-1)、x(t-2)、……、x(t-k+1)的干扰之后 x(t-k)对x(t)影响的相关程度。
  • ACF还包含了其他变量的影响 而偏自相关系数PACF是严格这两个变量之间的相关性

ARIMA(p,d,q)阶数确定:

在这里插入图片描述
截尾:落在置信区间内(95%的点都符合该规则)

ARIMA建模流程:

  • 将序列平稳(差分法确定d)
  • p和q阶数确定:ACF与PACF
  • ARIMA(p,d,q)

ARIMA实例(基于python实现)

模型选择AIC与BIC: 选择更简单的模型

  • AIC:赤池信息准则(Akaike Information Criterion,AIC)
    ??? = 2? − 2ln(?)
  • BIC:贝叶斯信息准则(Bayesian Information Criterion,BIC)
    ??? = ??? ? − 2ln(?)
  • k为模型参数个数,n为样本数量,L为似然函数

模型残差检验:

  • ARIMA模型的残差是否是平均值为0且方差为常数的正态分布
  • QQ图:线性即正态分布

模型选择与残差实例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间序列-ARIMA模型 的相关文章

  • 适用于 Python 3.x 的 Hive 客户端

    是否可以使用 Python 3 x 连接到 hadoop 并运行 hive 查询 我正在使用Python 3 4 1 我发现可以按照这里写的方式完成 https cwiki apache org confluence display Hiv
  • min() arg 是一个空序列

    我试图找到矩阵行中的最小元素 但有两个条件 1 它必须 gt 0 2 并且这个点一定不能被访问 is visited k is False 我下一步正在尝试做 min x for x in matr sum i if x gt 0 if i
  • Pytorch - 推断线性层 in_features

    我正在构建一个玩具模型来获取一些图像并进行分类 我的模型看起来像 conv2d gt pool gt conv2d gt linear gt linear 我的问题是 当我们创建模型时 我们必须计算第一个线性层的大小in features基
  • 使用 glGetFloatv 检索 pyglet 中的模型视图矩阵

    我正在使用 pyglet 在 python 中进行 3D 可视化 并且需要检索模型视图和投影矩阵来进行一些选择 我使用以下方式定义我的窗口 from pyglet gl import from pyglet window import wi
  • 如何在 Python 2.4 CSV 阅读器中禁用引用?

    我正在编写一个 Python 实用程序 需要解析一个我无法控制的大型且定期更新的 CSV 文件 该实用程序必须在仅提供 Python 2 4 的服务器上运行 CSV 文件根本不引用字段值 但Python 2 4版本的csv库 http ww
  • Json.dump 失败并显示“必须是 unicode,而不是 str”TypeError

    我有一个 json 文件 其中恰好有大量中文和日文 以及其他语言 字符 我将其加载到我的 python 2 7 脚本中使用io open如下 with io open multiIdName json encoding utf 8 as j
  • 使用 Matplotlib 的范围绘制图像的 3D 轮廓

    正如我所介绍的here https stackoverflow com questions 18792624 fits image input to a range in plot python 在二维中 我想知道如何 缩放 要绘制到绘图中
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • self.__dict__.update(**kwargs) 的风格是好是坏?

    在 Python 中 假设我有一些类 Circle 它继承自 Shape Shape 需要 x 和 y 坐标 此外 Circle 需要半径 我希望能够通过执行类似的操作来初始化 Circle c Circle x 1 y 5 r 3 Cir
  • 按字符串子字符串的列过滤 Pandas 数据框

    我正在尝试使用列中的字符串值是数据框外部字符串的子字符串的条件来过滤数据框 下面的例子 df a b c hello bye hello reference str hello there output a c 一种方法可能是使用正则表达式
  • 使用 argparse 指定默认文件名,但不使用 --help 打开它们?

    假设我有一个对文件执行一些操作的脚本 它在命令行上获取此文件的名称 但如果未提供 则默认为已知文件名 content txt 说 与蟒蛇的argparse 我使用以下内容 parser argparse ArgumentParser des
  • 模拟类:Mock() 还是 patch()?

    我在用mock http www voidspace org uk python mock index html使用Python 想知道这两种方法中哪一种更好 阅读 更Pythonic 方法一 只需创建一个模拟对象并使用它 代码如下 def
  • Python itertools groupby 中令人不安的奇怪行为/错误?

    我在用itertools groupby解析一个短的制表符分隔的文本文件 文本文件有几列 我想做的就是对具有特定值的所有条目进行分组x在特定的列中 下面的代码对名为的列执行此操作name2 寻找变量中的值x 我尝试使用以下方法来做到这一点c
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • Python 中的颜色处理

    对于我的聚类 GUI 我目前对聚类使用随机颜色 因为我事先不知道最终会得到多少个聚类 在 Python 中 这看起来像 import random def randomColor return random random random ra
  • 如何从 IDLE 命令行运行 Python 脚本?

    在 bash shell 中 我可以使用 bash 或 source 手动调用脚本 我可以在 Python IDLE 的交互式 shell 中做类似的事情吗 我知道我可以转到文件 gt gt 打开模块 然后在单独的窗口中运行它 但这很麻烦
  • python 相当于 sed

    有没有一种方法 无需双循环即可完成以下 sed 命令的操作 Input Time Banana spinach turkey sed i Banana s Toothpaste file Output Time BananaToothpas
  • 混合两个列表的Pythonic方法[重复]

    这个问题在这里已经有答案了 我有两个长度为 n 和 n 1 的列表 a 1 a 2 a n b 1 b 2 b n 1 我想要一个函数作为结果给出一个列表 其中包含两个中的替代元素 即 b 1 a 1 b n a n b n 1 以下方法有
  • 重新安装后使用 pandas dataframes 时出现问题

    我已经重新安装了 Python 和 Anaconda 现在面临以下问题 在我将 pkl 文件加载到数据帧并尝试 查看 该文件后 如下所示 df pd read pickle example pkl df 我收到错误 AttributeErr
  • Python Web 编程的不同方法的优缺点

    我想使用 Python 编写一些服务器端脚本 但我对这样做的方法有点迷失了 它从 DIY CGI 方法开始 似乎以一些相当强大的框架结束 这些框架基本上可以自己完成所有工作 中间有很多东西 比如web py http webpy org P

随机推荐

  • windows10(1903) VMware(虚拟机)不能正常安装操作系统

    win10虚拟机不能正常安装操作系统 前言 一 问题现象 二 解决方案 1 停止hv主机服务 2 重启计算机 3 开启虚拟机的全局虚拟打印功能 4 正常工作了 参考 前言 最近公司搬家 重新搭环境 事儿有点多哈 我们win10 操作系统被运
  • vue-router基本使用方法

    声明 本人的所有博客皆为个人笔记 作为个人知识索引使用 因此在叙述上存在逻辑不通顺 跨度大等问题 希望理解 分享出来仅供大家学习翻阅 若有错误希望指出 感谢 动态路由匹配 我们可以在 vue router 的路由路径中使用 动态路径参数 d
  • EMC-MLCC电容反谐振点引起的RE辐射超标

    MLCC电容反谐振点引起的RE辐射超标 对待RE辐射问题 可以按照干扰源 干扰路径 被干扰源 入手较多的是干扰源和干扰路径 解决干扰源可以从展频 调频 屏蔽干扰源 增加RC snabber吸收干扰源等方向入手 解决干扰路径的 可以分为差模干
  • 网络互连基础的实验

    拓扑 需求 某网络整体结构如图所示 根据如图的IP规划 为设备配置IP地址 在各路由器上配置静态路由 要求实现全网互联 在DNS服务器上增加一条域名解析记录 域名可自定义 当通过PC端用域名访问Web服务器时 PC端浏览器能够返回web服务
  • Python使用免费天气API,获取全球任意地区的天气情况

    需求背景 公司是做外贸服装的 在亚马逊平台上有多个地区店铺运营 运营人员需要参考地区的天气情况 上新的服装 所以需要能够获取全球任意地区的天气情况 还需要预测未来10 15天的天气情况 选型API 天气API中有大把免费的api 如 国内的
  • 基于元学习的红外弱小点状目标跟踪算法

    基于元学习的红外弱小点状目标跟踪算法 人工智能技术与咨询 昨天 本文来自 激光技术 作者热孜亚 艾沙等 引言 红外点状目标的跟踪是红外搜索和跟踪 infrared search and track IRST 系统中的关键技术之一 1 在红外
  • vue手机端的调试神器eruda

    前言 分享一款神奇 可以在手机上实现 跟pc端f12打开调试一样的效果 官方地址 入口 实现效果 实现步骤 1 cdn使用 打开public index html加入 2 node使用 cnpm install eruda save
  • 配置Apache2.4.46

    解压后打开 Apache24 conf 的httpd conf 定位Define SRVROOT并将后面的 SRVROOT 改为自己解压后的Apache24文件夹路径 下一行ServerRoot后面的 SRVROOT 相同操作 在cmd输入
  • SpringBoot整合AMQP

    SpringBoot整合AMQP 文章目录 SpringBoot整合AMQP 前言 一 JMS AMQP概念以及区别 二 RabbitMQ简介 三 互联网大厂为什么选择RabbitMQ 四 RabbitMQ的一些核心概念 五 RabbitM
  • 推荐系统系列——推荐算法评价指标

    文章目录 同步读书之 菜根谭 9 静坐观心 真妄毕现 10 得意早回头 拂心莫停手 推荐算法评价指标 1 评分预测指标 1 1 符号定义 1 2 平均绝对误差 1 3 均方根误差 1 4 覆盖率 2 集合推荐指标 2 1 混淆矩阵 2 2
  • 微信小程序事件传参

    微信小程序事件传参 微信小程序怎么事件传参 dataset 对象 事件对象 目标对象 总结 两步骤 微信小程序怎么事件传参 dataset 对象 每个虚拟dom身上都拥有一个dataset对象 给虚拟 dom 绑定上 data 自定义键 值
  • Docker服务的重启服务命令(systemctl restart docker)

    重启Docker服务 重启docker服务 systemctl restart docker 非root用户使用 重启docker服务 sudo systemctl restart docker
  • 两年外包生涯做完,感觉自己废了一半....

    先说一下自己的情况 大专生 17年通过校招进入湖南某软件公司 干了接近2年的点点点 今年年上旬 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了五年的功能测试 已经让我变得不思进取 谈了1年的女朋友
  • nginx配置域名访问

    1 本地开发好的demo程序 target目录下 把META INF WEB INF index jsp 所有文件打成zip包 如下图 2 Linux服务器下 部署到Tomcat下 清空ROOT目录下所有文件 把1中nginx zip文件放
  • 点云TXT与PCD格式之间的转换

    开发环境为win10 vstudio2019 注 txt形式的点云文件没有header 存储的全是xyz数据 如下图 这个点云数据中不仅包含有x y z的位置信息 还包含其他的位置信息 因此我们只需要提取前三列的信息 并忽略前两行 提取后的
  • 消息中间件篇

    消息中间件篇 RabbitMQ 如何保证消息不丢失 面试官 RabbitMQ如何保证消息不丢失 候选人 嗯 我们当时MYSQL和Redis的数据双写一致性就是采用RabbitMQ实现同步的 这里面就要求了消息的高可用性 我们要保证消息的不丢
  • CVPR 2022|U2PL:使用不可靠伪标签的半监督语义分割

    本文转自商汤学术 导读 半监督任务的关键在于充分利用无标签数据 商汤科技联合上海交通大学 香港中文大学 基于 Every Pixel Matters 的理念 有效利用了包括不可靠样本在内的全部无标签数据 大幅提升了算法精度 目前 U2PL
  • openGL之API学习(八)glutSwapBuffers

    glutSwapBuffers函数是OpenGL中GLUT工具包中用于实现双缓冲技术的一个重要函数 该函数的功能是交换两个缓冲区指针 通常 我们所看到的窗体 文字 图像 从根本上来说都是 画 出来的 比如 制作一个简单的五子棋 我们可能先要
  • 【AI 顶会】NIPS2019接收论文完整列表

    NeurIPS2019 NeurIPS 2019的论文结果已经出炉 包括了36篇oral和164篇spotlights共1428篇论文 可以看到论文的主题还是以深度学习 神经网络 图 优化 通用性 鲁棒性以及效率等方面为主 详细的列表见下文
  • 时间序列-ARIMA模型

    数据平稳性与差分法 平稳性 平稳性就是要求经由样本时间序列所得到的拟合曲线 在未来的一段期间内仍能顺着现有的形态 惯性 地延续下 平稳性要求序列的均值和方差不发生明显变化 严平稳与弱平稳 严平稳 严平稳表示的分布不随时间的改变而改变 如 白