用Python实现时间序列模型实战——Day1:时间序列的基本概念

一、学习内容

1. 时间序列数据的定义与特点

定义

  • 时间序列数据是一组按时间顺序排列的观测值。时间序列的每个观测值都与特定时间点相关联。例如,气温每天的记录、股票每日的收盘价等。

特点

  • 时间依赖性:时间序列数据的一个基本特点是当前数据点可能依赖于之前的一个或多个数据点。这种依赖性可以用来进行预测。
  • 趋势:数据可能表现出随时间的长期上升或下降趋势。例如,随着经济发展,GDP 一般会显示上升趋势。
  • 季节性:数据在特定时间周期内反复出现的模式。季节性常见于许多现实世界的数据中,如每年的某些月份销售额上升。
  • 周期性:周期性波动与季节性相似,但周期更长且可能不固定,如经济周期。
  • 随机性:数据中难以解释的波动,可以被视为噪声,可能由随机因素引起。

2. 时间序列的类型

平稳时间序列

  • 平稳性是时间序列分析中的一个重要概念。一个时间序列被称为平稳的,如果它的统计性质(如均值、方差、自相关)随着时间保持恒定。平稳时间序列没有趋势和季节性,其波动性是恒定的。
  • 判断方法
    • 自相关函数 (ACF) 和偏自相关函数 (PACF) 的图可以帮助判断时间序列的平稳性。
    • 平稳性检验:如 ADF(Augmented Dickey-Fuller)检验。

非平稳时间序列

  • 非平稳时间序列的统计性质随着时间变化,例如,序列中存在明显的趋势、季节性或周期性。对于非平稳时间序列,常常需要通过差分、去趋势、去季节性等方法将其转化为平稳序列。

3. 基本术语

  • 趋势:数据在较长时间范围内的总体变化方向。例如,社会总消费水平随时间上升。
  • 季节性:在特定周期内数据表现出的反复波动模式,通常与自然或人为的季节性因素有关。例如,零售业的销售额在节假日期间会显著增加。
  • 周期性:类似于季节性,但周期性波动的周期较长,且可能不固定。例如,经济周期的波动通常不定期发生。
  • 随机性:难以解释的波动,通常来源于不可预测的外部因素。

4. 时间序列的可视化与初步分析

可视化的重要性

  • 可视化是时间序列分析的第一步,通过图表,我们可以直观地观察到数据的趋势、季节性、周期性和随机性。

如何进行可视化

  • 使用 pandasmatplotlib 进行可视化,可以帮助我们识别时间序列中的模式并初步分析其结构。

二、实战案例

1. 数据加载与初步查看

import pandas as pd
import matplotlib.pyplot as plt# 加载时间序列数据集
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv"
data = pd.read_csv(url, parse_dates=['Month'], index_col='Month')# 查看数据前几行
print("数据集的前几行:")
print(data.head())

运行结果:

数据集的前几行:Passengers
Month                 
1949-01-01         112
1949-02-01         118
1949-03-01         132
1949-04-01         129
1949-05-01         121

 程序解释:

  • 使用 pandas.read_csv 方法加载航空乘客数据集,并将 Month 列解析为日期格式并设为索引。然后使用 data.head() 查看前几行数据,以确认数据加载成功。
  • 该数据集记录了 1949 年 1 月至 1960 年 12 月的航空公司乘客数量。

2. 时间序列的初步可视化

# 绘制时间序列图
plt.figure(figsize=(12, 6))
plt.plot(data['Passengers'], color='blue', linewidth=2)
plt.title('Monthly Number of Airline Passengers (1949-1960)')
plt.xlabel('Date')
plt.ylabel('Number of Passengers')
plt.grid(True)
plt.show()

运行结果:

f94318d941d24bb0ad6c02d9b8603847.png

  程序解释:

  • 通过 matplotlibplot 函数绘制时间序列图,观察乘客数量随时间的变化。
  • 这一步帮助我们初步观察数据的趋势、季节性和随机波动。

3. 数据的描述性统计

# 检查数据的描述统计
print("\n数据的描述统计:")
print(data.describe())

 运行结果:

数据的描述统计:Passengers
count  144.000000
mean   280.298611
std    119.966317
min    104.000000
25%    180.000000
50%    265.500000
75%    360.500000
max    622.000000

程序解释: 

  • 使用 describe() 函数查看数据的描述性统计信息,如均值、标准差、最小值、最大值等,帮助我们了解数据的分布情况。

4. 年度趋势的可视化

# 可视化各个年份的数据趋势
data['Year'] = data.index.year
plt.figure(figsize=(12, 6))
for year in data['Year'].unique():yearly_data = data[data['Year'] == year]plt.plot(yearly_data.index.month, yearly_data['Passengers'], label=str(year))plt.title('Yearly Trends in Airline Passengers')
plt.xlabel('Month')
plt.ylabel('Number of Passengers')
plt.legend()
plt.grid(True)
plt.show()

 运行结果:

3af80dcd794f44a3a1d8d163e37008e0.png

程序解释: 

  • 将数据按年份进行分割,并绘制每年的月度乘客数量趋势。这样可以直观地比较每一年之间的季节性变化和年度增长趋势。

三、结果分析

1. 趋势

  • 从时间序列图可以看出,航空乘客数量呈现出明显的上升趋势。这意味着随着时间的推移,航空旅行变得越来越普及。

2. 季节性

  • 在每年的乘客数量中,可以清晰地观察到季节性波动。例如,乘客数量在年中某些月份(如夏季)达到峰值,而在冬季通常会有下降。这表明航空旅行具有明显的季节性。

3. 随机性

  • 尽管存在趋势和季节性,但数据中也包含了一些随机波动,这可能是由于外部因素或数据本身的随机性导致的。

4. 年度分析

  • 年度趋势图显示,不同年份的乘客数量趋势基本一致,但随着时间推移,各年份的乘客数量逐渐增加。这种逐年增长的趋势反映了航空行业的扩展和经济的发展。

通过这些详细的分析和可视化,我们能够更好地理解时间序列数据的基本特征。这为后续更深入的时间序列分析和建模奠定了坚实的基础。

 

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

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

相关文章

8.27-dockerfile的应用+私有仓库的创建

一、dockerfile应用 通过dockerfile创建⼀个在启动容器时,就可以启动httpd服务的镜像 1.步骤 : 1.创建⼀个⽬录,⽤于存储Docker file所使⽤的⽂件2.在此⽬录中创建Docker file⽂件,以及镜像制作所使⽤的⽂件3.使⽤docker build创建镜像4.使…

基于x86 平台opencv的图像采集和seetaface6的图像质量评估功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.3 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的图像质量评估功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的图像质量评估模块…

全新的大语言模型Grok-2,最新测评!!

埃隆马斯克再次引发轰动,他旗下的xAI公司推出了全新的大语言模型Grok-2! 最新的Grok-2测试版已经发布,用户可以在𝕏平台上体验小版本的Grok-2 mini。 马斯克还通过一种谜语般的方式揭开了困扰大模型社区一个多月的谜团&#xff1a…

FFmpeg的入门实践系列三(基础知识)

欢迎诸位来阅读在下的博文~ 在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力 文章目录 前期博客一、音视频常用术语二、FFmpeg库的结构介绍三、FFmpeg的常用函数初始化封装格式编解码器相关 四、FFmpeg常用的数…

FastCGI简述

FastCGI (FCGI) 是一种协议,用于改善 Web 服务器和应用程序之间的通信效率。它是在 CGI(Common Gateway Interface)的基础上发展起来的,旨在解决 CGI 在处理大量并发请求时存在的性能问题。 CGI的由来 最早的Web服务器只能简单地…

解决 JS WebSocket 心跳检测 重连

解决 JS WebSocket 心跳检测 重连 文章目录 解决 JS WebSocket 心跳检测 重连一、WebSocket 心跳检测的作用二、心跳检测的处理方案1. 创建 WebSocket 连接2. 心跳参数设置3. 心跳检测逻辑4. 心跳包响应处理5. 断线重连机制 三、总结 一、WebSocket 心跳检测的作用 WebSocket 是…

序列化组件对比

1、msgpack介绍 1.MsgPack产生的数据更小,从而在数据传输过程中网络压力更小 2.MsgPack兼容性差,必须按照顺序保存字段 3.MsgPack是二进制序列化格式,兼容跨语言 官网地址: https://msgpack.org/ 官方介绍:Its lik…

一、undo log、Buffer Pool、WAL、redo log

目录 1、undo log2、Buffer Pool3、WAL4、redo log5、总结6、问题 1、undo log undo log日志是一种用于撤销回退的逻辑日志,在事务未提交前会记录相反的操作到undo log,当事务回滚,使用undo log 进行回滚,保证了事务的原子性。MV…

C++ TinyWebServer项目总结(8. 高性能服务器程序框架)

《Linux 高性能服务器编程》一书中,把这一章节作为全书的核心,同时作为后续章节的总览。这也意味着我们在经历了前置知识的学习后,正式进入了 Web 服务器项目的核心部分! 前置内容回顾: 1. C TinyWebServer项目总结&…

等保测评中的安全测试方法

等保测评,即信息安全等级保护测评,是我国网络安全领域的重要评估机制,用于验证网络系统或应用是否满足相应的安全保护等级要求。在等保测评中,安全测试方法扮演着至关重要的角色。本文将详细介绍等保测评中常用的安全测试方法及其…

LinkedHashMap和TreeMap的基本使用

一.LinkedHashMap集合:(是HashMap集合的儿子,Map集合的孙子) 1.特点: 2.代码实现: 1)键的唯一性: package com.itheima.a01myMap; ​ import java.util.LinkedHashMap; ​ public class A07_…

YOLOv8目标检测部署RK3588全过程,附代码pt->onnx->rknn,附【详细代码】

目录 一、训练yolov8模型,得到最佳权重文件best.pt 二、pt转onnx,即best.pt->best11.onnx 1、对下载的YOLOv8代码修改 2、加入模型导出功能, 3、导出指令采用如下代码 三、ONNX转RKNN 四、RK3588部署 1、拷贝rknn文件到rk3588板子内 2、执行…

48.x86游戏实战-封包抓取进图call

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

递归神经网络 (RNN) 简介

文章目录 一、介绍二、什么是递归神经网络 (RNN)?三、展开递归神经网络四、训练递归神经网络五、RNN 的类型六、现实生活中的 RNN 用例七、RNN 的两个主要限制八、RNN的变体8.1 双向递归神经网络 (BRNN)8.2 长短期记忆…

YOLOv8改进 | 融合改进 | C2f融合Faster-GELU模块提升检测速度【完整代码 + 主要代码解析】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

基于信号量和环形队列的生产者消费者模型

文章目录 POSIX信号量信号量接口初始化信号量销毁信号量等待信号量发布信号量 基于环形队列的生产者消费者模型单生产单消费多生产多消费 POSIX信号量 POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。 但POSIX可以…

接口返回结果封装

接口返回结果封装 1、错误信息枚举 package com.zhw.enums;public enum AppHttpCodeEnum {// 成功SUCCESS(200,"操作成功"),// 登录NEED_LOGIN(401,"需要登录后操作"),NO_OPERATOR_AUTH(403,"无权限操作"),SYSTEM_ERROR(500,"出现错误&quo…

K-medoids算法原理及Python实践

一、原理 K-medoids算法是一种聚类算法,它的原理与K-Means算法相似,但关键区别在于它使用数据集中的实际点(称为medoids)作为簇的中心点,而不是像K-Means那样使用簇内所有点的平均值。以下是K-medoids算法的主要原理&…

Excel 保持原序时计算组内排名

Excel某表格第1列是分组,第2列是日期,未排序。 AB1Agent IDDate of Sale2Agent107-12-20233Agent105-12-20234Agent209-12-20235Agent313-12-20236Agent214-12-20237Agent222-12-20238Agent115-12-20239Agent117-12-202310Agent213-12-202311Agent120-1…

wooyu漏洞库YYDS!!!入门之道:重现乌云漏洞库

目录 wooyun乌云漏洞库搭建 1、搭建资料 文件结构分析: ​编辑2、搭建过程 2.1、搭建wooyun网站 2.2、配置数据库 2.2.1、修改数据库配置文件conn.php 2.2.2、创建wooyun数据库,并解压数据库文件 2.2.3、连接数据库(数据库默认连接密…