用Python实现时间序列模型实战——Day 2: 时间序列的基本统计量

一、学习内容
1. 自相关函数 (ACF) 与偏自相关函数 (PACF)

自相关函数 (ACF)

  • 自相关函数用于衡量时间序列在不同时间滞后下的相关性。它描述了序列与自身滞后版本之间的相关性,滞后时间越长,相关性通常会减弱。自相关函数的计算公式为:

\text{ACF}(k) = \frac{\sum_{t=k+1}^{N} (x_t - \bar{x})(x_{t-k} - \bar{x})}{\sum_{t=1}^{N} (x_t - \bar{x})^2}

其中:

  • x_t 是时间序列在时间 ttt 的值。
  • \bar{x} 是序列的均值。
  • k 是滞后阶数。
  • N 是序列的长度。

偏自相关函数 (PACF)

  • 偏自相关函数是排除了中间滞后阶数影响的自相关函数,主要用于识别自回归模型 (AR) 的阶数。简单来说,PACF 测量的是在考虑所有介于两点之间的影响后,两个不同滞后时间点之间的净相关性。对于 PACF 的定义,可以表示为:

\text{PACF}(k) = \text{corr}(x_t, x_{t-k} \mid x_{t-1}, \dots, x_{t-k+1})

其中,\text{corr}(x_t, x_{t-k} \mid x_{t-1}, \dots, x_{t-k+1})表示在排除了中间滞后项的影响后,时间 t 和时间 t-k 的值之间的相关性。

2. 时间序列的平稳性检验(ADF 检验)

平稳性

  • 平稳时间序列的统计性质(均值、方差、自相关等)随着时间保持恒定。
  • 非平稳时间序列通常包含趋势、季节性或其他随时间变化的模式,可能导致模型的预测效果不佳。

ADF 检验

  • 增强型 Dickey-Fuller (ADF) 检验是一种用于检验时间序列是否平稳的统计测试。,其检验统计量的计算公式为:

ADF = \frac{\hat{\phi} - 1}{SE(\hat{\phi})}

其中:

  • \hat{\phi}​ 是时间序列的回归系数估计值。
  • SE(\hat{\phi})\hat{\phi}​ 的标准误。
  • ADF 检验的原假设是序列存在单位根(即非平稳),检验的结果给出是否拒绝该假设。
3. 白噪声与随机游走模型

白噪声

  • 白噪声是一个均值为零、方差为常数的时间序列,序列的自相关函数为零(除了滞后为零时的点)。白噪声模型的特性可以用来检测时间序列模型的残差是否为白噪声,以判断模型是否充分捕捉了数据的模式。白噪声的公式表示为:

x_t \sim \text{WN}(0, \sigma^2)

其中:

  • \text{WN}(0, \sigma^2)表示均值为 0、方差为 \sigma^2 的白噪声过程。

随机游走模型

  • 随机游走是一种特殊的非平稳时间序列模型,序列值等于前一时刻的值加上一个随机误差项。随机游走模型可以用来模拟一些金融时间序列,如股票价格。随机游走模型的一般形式为:

x_t = x_{t-1} + \epsilon_t

其中:

  • x_t​ 是时间 ttt 的序列值。
  • x_{t-1}​ 是时间 t-1 的序列值。
  • \epsilon_t​ 是独立且同分布的随机误差项,通常假设为均值为 0 的白噪声。
二、实战案例

我们将使用 statsmodels 库对时间序列数据进行 ACF 和 PACF 的计算及可视化,并进行平稳性检验。

1. 数据加载与可视化
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.stattools import acf, pacf, adfuller
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf# 加载时间序列数据集
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv"
data = pd.read_csv(url, parse_dates=['Month'], index_col='Month')# 绘制时间序列图
plt.figure(figsize=(12, 6))
plt.plot(data['Passengers'], label='Passengers')
plt.title('Monthly Number of Airline Passengers')
plt.xlabel('Date')
plt.ylabel('Number of Passengers')
plt.legend()
plt.grid(True)
plt.show()

运行结果:

 

程序解释: 

  • 载入航空乘客数据集,并绘制时间序列图,观察数据的趋势、季节性等特征。
2. ACF 和 PACF 计算与可视化
# 计算并绘制 ACF 和 PACF
plt.figure(figsize=(12, 6))
plt.subplot(121)
plot_acf(data['Passengers'], lags=40, ax=plt.gca())
plt.title('Autocorrelation Function (ACF)')plt.subplot(122)
plot_pacf(data['Passengers'], lags=40, ax=plt.gca(), method='ywm')
plt.title('Partial Autocorrelation Function (PACF)')plt.tight_layout()
plt.show()

运行结果:

程序解释: 

  • 使用 plot_acfplot_pacf 函数计算并绘制自相关函数 (ACF) 和偏自相关函数 (PACF),帮助识别数据中的相关性结构。
3. 平稳性检验(ADF 检验)
# 进行 ADF 平稳性检验
result = adfuller(data['Passengers'])
print('ADF Statistic:', result[0])
print('p-value:', result[1])
for key, value in result[4].items():print(f'Critical Value ({key}): {value}')

运行结果:

ADF Statistic: 0.8153688792060597
p-value: 0.9918802434376411
Critical Value (1%): -3.4816817173418295
Critical Value (5%): -2.8840418343195267
Critical Value (10%): -2.578770059171598

 程序解释: 

  • 使用 adfuller 函数进行 ADF 检验,判断时间序列是否平稳。
  • 检验结果包括 ADF 统计量、p 值、临界值(分别对应 1%、5%、10% 的显著性水平)。
4. 白噪声测试
# 白噪声测试
white_noise = np.random.normal(size=len(data))
plt.figure(figsize=(12, 6))
plot_acf(white_noise, lags=40)
plt.title('ACF of White Noise')
plt.show()

 运行结果:

 程序解释:  

  • 生成一个白噪声序列,并绘制其自相关函数,展示白噪声的特性(即除了滞后为零时外,其他滞后期的自相关系数应接近于零)。
三、结果分析
1. 时间序列的趋势与季节性
  • 从时间序列图中可以观察到航空乘客数量随时间逐步增加,并且存在周期性波动,这种趋势和季节性特征提示了序列的非平稳性。
2. ACF 和 PACF 的分析
  • ACF 图通常在滞后为 0 时有较高的相关性,随着滞后时间的增加,自相关性逐渐减弱。如果序列是非平稳的,ACF 图通常会显示出较长的拖尾(长滞后期依然有较高的自相关性)。
  • PACF 图用于识别自回归模型 (AR) 的阶数,通过观察第一个显著的滞后点可以帮助选择合适的 AR 阶数。
3. ADF 检验结果分析
  • 在本例中,ADF 检验的 p 值非常高,说明我们不能拒绝原假设,即序列是非平稳的。这与我们从图表观察到的趋势和季节性相一致。
  • 对于非平稳时间序列,可以考虑通过差分、去趋势等方法进行平稳化处理。
4. 白噪声测试
  • 白噪声序列的 ACF 图应该在所有滞后期都接近于零,说明这些值之间没有相关性。白噪声模型通常用于检测时间序列模型是否充分捕捉了数据中的模式。如果模型的残差是白噪声,则模型通常被认为是合理的。

通过这些分析和可视化,我们对时间序列的基本统计量有了深入的理解,这为后续的时间序列建模和预测打下了基础。在未来的学习中,我们将利用这些统计工具来构建和评估更复杂的时间序列模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/409949.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器 V8 引擎

V8 引擎是 Google 开发的高性能 JavaScript 和 WebAssembly 引擎,最初是为了提升 Google Chrome 浏览器的性能而设计的。自 2008 年首次发布以来,V8 引擎不仅仅被用在 Chrome 浏览器中,还被广泛应用于其他 JavaScript 环境中,比如…

嵌入式系统课后习题(带答案)

资料截图(部分): 🚀 获取更多详细资料可点击链接进群领取,谢谢支持👇 点击免费领取更多资料

前端通过draggable结合fabricjs实现拖拽至画布生成元素自定义编排功能

前端通过draggable结合fabricjs实现拖拽自定义编排功能 太久没有更新了,主要最近行情不太好失业了一段时间,一度到怀疑人生,然后就是做的东西大多没有什么含金量,没什么好分享的就很尴尬。 刚好最近遇到一个奇葩的需求&#xff0…

【李林880-2025版本】个人错题01 第十六章节——喻老讲解版

十六章 这里需要注意的是三个设的变量都要满足的不等式条件 根据题目的最长中间的一段需要满足大于其他两个变量的不等式条件 最后根据几何概型方法求出概率 两个情况 重要思想[逆事件] :7个正品找到了3个次品都找到了 这里首先从六个空中选出两个次品位置&…

《Web项目跨域请求后端Api设置Cookie失败问题?》

问题描述: 在web项目中跨域请求api时,api登录成功后需要向域名中设置cookie实现在两个域名下共享,但是登录接口返回成功,响应头中也有set-cookie,实际却无法设置到cookie中… web项目访问时的域名https://b.com/ api所…

【HarmonyOS 4.0】@BuilderParam 装饰器

1. BuilderParam 装饰器 BuilderParam 装饰器用于装饰自定义组件(struct)中的属性,其装饰的属性可作为一个UI结构的占位符,待创建该组件时,可通过参数为其传入具体的内容。参数必须满足俩个条件: 2.1 参数类型必须是个函数&#x…

C++ 设计模式——代理模式

C 设计模式——代理模式 C 设计模式——代理模式1. 主要组成成分2. 逐步构建代理模式2.1 抽象主题类定义2.2 真实主题类实现2.3 代理类实现2.4 主函数 3. 代理模式 UML 图代理模式 UML 图解析 4. 代理模式的优点5. 代理模式的缺点6. 代理模式的分类7. 代理模式和装饰者模式比较…

深度学习——分布式训练

目录 1. 前言2.分布式训练的分类3.不并行(单机单卡)4. 数据并行 DP和DDP4.1 异同点4.2 原理4.3 DP 实现(单机多卡)4.4 DDP 实现(单机多卡,多机分布式)4.4.1DDP 基本概念4.4.2 DDP之单机多卡4.4.…

jmeter中CSV 数据文件设置用例

1、CSV数据文件的基础使用 线程组->添加->配置远近->CSV数据文件设置 2、多条用例运行CSV数据文件 由于我的csv请求的json数据有“,”所以我这边 分隔符选择了*号 写了两行需要测试的用例,需要添加一个“循环控制器” 线程组->添加-&g…

Tower for Mac Git客户端管理软件

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试1、打开软件,测试2、克隆项目,测试 安装完成&#xf…

一文读懂大语言模型:基础概念篇

在当今AI时代,大语言模型正以前所未有的速度重塑我们的世界。作为NLP领域的明星,它们不仅理解语言,更创造语言,开启了智能交互的新纪元。 本文将介绍着重介绍大模型的概念,帮助大家简单了解其技术原理、发展历程&#…

Autosar(Davinci) --- 创建一个Implementation Data Types

前言 这里我们讲一下如何创建一个Implementation Data Types(IDT) 一、什么是IDT 二、如何创建一个IDT 鼠标右键【Implementation Data Types】,选择【new Type Reference...】 起一个名字【IdtDoorState】,Data Types选择【boolean】,这里…

海康VisionMaster使用学习笔记18-常见问题排查

常见问题排查思路 常见问题排查方法-安装阶段 常见问题排查方法-启动阶段 常见问题排查方法-使用阶段 常见问题排查方法-相关资料 关于VisionMaster使用的学习笔记到这里告一段落了,继续海康二次开发的学习. 海康二次开发 海康相机二次开发学习笔记1-环境配置

设计模式-结构型模式-适配器模式

1.适配器模式定义 将类的接口转化为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作; 1.1 适配器模式的优缺点 优点 将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者类,无需修改原有结构&#x…

linux安装elasticsearch

只考虑单机的情况,因为没有那么大的需求 首先创建个文件夹用于存放elasticsearch cd /opt/mkdir modulecd module根据官网提示下载 官网文档链接 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.0-x86_64.rpmwget https://artifac…

USB详解,配置及难点

一、USB发展历史 二、USB简介 USB有USB1.0/1.1/2.0/3.0多个版本,标准USB由4根线组成,VCC,GND,D,D-,其中D和D-是数据线,采用差分传输。在USB主机上,D-和D都是接了15K的电阻到地,所以在没有设备接入的时候,D、…

2024年第六届控制与机器人国际会议(ICCR 2024)即将召开!

2024年第六届控制与机器人国际会议(ICCR 2024)将于2024年12月5日至7日在日本横滨举行。智能机器人结合了多种概念、学科和技术,共同创造出各种有用的设备、操作器和自主实体,为特定人类社区服务,如制造设备、医疗和远程…

极光推送(JPush)赋能登虹科技,打造智慧视觉云平台新体验

近日,中国领先的客户互动和营销科技服务商极光(Aurora Mobile,纳斯达克股票代码:JG)与杭州登虹科技有限公司(以下简称“登虹科技(Closeli)”)达成合作,借助极…

C++学习笔记——打印ASCII码

一、题目描述 二、代码 #include <iostream> using namespace std; int main() {char a_char;int a_int;cin >> a_char;a_int a_char;cout << a_int;return 0; }

企业建站技术路线探索

前言 企业站是指企业或公司创建的官方网站&#xff0c;用于展示企业信息、产品和服务。它通常包括公司简介、产品或服务介绍、联系方式、新闻更新等内容。企业站的目的是提升品牌形象、提供客户服务和促进业务发展。在跨境贸易中&#xff0c;企业建站尤为关键&#xff0c;因为…