【数据分析与可视化】时间序列重采样、降采样、升采样及平稳性检验详解(图文解释 附源码)

简介: 【数据分析与可视化】时间序列重采样、降采样、升采样及平稳性检验详解(图文解释 附源码)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

一、重采样、降采样、升采样

重采样是时间序列频率转换的过程,Pandas中的resample函数用于各种频率的转换工作,高频率聚合到低频率称为降采样,而低频率转换为高频率为升采样

1:重采样

resample方法的参数与说明见下表

将间隔为天的频率转换为间隔为月的频率

w = pd.date_range(start = '2018/6/1',periods = 100,freq = 'D')
y = pd.Series(np.arange(100),index = w)
print(y.head(8))
ps = y.resample('M').mean()
print(ps)

2:降采样

在降采样中,需要考虑closed和label参数,分别表示哪边区间是闭合的,哪边是标记的

降采样示例如下

wdate = pd.date_range(start = '2019/5/1',periods = 10,freq = 'D')
w = pd.Series(np.arange(10),index = wdate)
print(w)
w.resample('3D',closed = 'right',label = 'right').sum()

3:升采样

 在升采样中主要是数据的插值,即对缺失值进行填充,填充方法与fillna相似。

升采样示例

ydata = [datetime(2019,6,1),datetime(2019,6,6)]
y = pd.Series([1,6],index = ydata)
print(y)
y.resample('D').ffill()

二、时间序列的平稳性检验

在做时间序列分析时,经常要对时间序列进行平稳性检验。用Python来进行平稳性检验主要有时序图检验、自相关图检验以及构造统计量进行检验3种方法

1:时序图检验

时序图就是普通的时间序列图,即以时间为横轴,观察值为纵轴进行检验。利用时序图可以粗略观察序列的平稳性

首先打印数据 如下图

然后利用时序图检验稳定性

import pandas as pd
import matplotlib.pyplot as plt
# import matplotlib.dates as mdates
# from statsmodels.graphics.tsaplots import plot_acf
data = pd.read_excel('.\data\Bike_count.xls', index_col='Date', parse_dates=True)
fig = plt.figure(figsize=(12,6), dpi=100)
# ax = fig.add_subplot(111)
from matplotlib.dates import DateFormatter
plt.gca().xaxis.set_major_formatter(DateFormatter('%m-%d-%H'))
# #自动旋转X轴的刻度,适应坐标轴
# plt.gcf().autofmt_xdate()
# ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
plt.xticks(pd.date_range(data.index[0],data.index[-1],freq='3H'), rotation=45)
plt.plot(data['Total'])

从时序图可以看出 数据走势没有明显的趋势或者周期,基本可以视为平稳序列,但还需要利用自相关图进一步验证

2:自相关图检验

平稳序列通常具有短期相关性,即随着延迟期数k的增加,平稳序列的自相关系数会很快地衰减向零,而非平稳序列的自相关系数的衰减速度会比较慢。画自相关图用到的是statsmodels中的plot_acf方法。自相关图中横轴表示延迟期数,纵轴表示自相关系数

 

from statsmodels.graphics.tsaplots import plot_acf
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plot_acf(data.Total) #生成自相关图
plt.xlabel('延迟期数')
plt.ylabel('自相关系数')

从自相关图可以看出,该序列的自相关图经过波动衰减为0,可以视作平稳序列

3:构造统计量检验

利用绘图判断序列的平稳性比较直观,但不够精确,ADF(Augmented Dickey-Fuller)法直接通过假设检验的方式来验证平稳性。ADF的原假设(H0)和备择假设(H1)如下

H0:具有单位根,属于非平稳序列;

H1:没有单位根,属于平稳序列

Python中可以使用statsmodels中的adfuller方法进行ADF检验,直接输入数据,即可返回7个数值。其中的第一个返回值adf就是ADF方法的检验结果,这个值理论上越负越能拒绝原假设;第二个返回值pvalue以常用的判断标准值0.05作为参考,若其值大于0.05,说明支持原假设,反之拒绝原假设,表明该序列是一个平稳序列

测试结果如下

from statsmodels.tsa.stattools import adfuller
data_result = adfuller(data.Total) #生成adf检验结果
print('The ADF Statistic of data: %f' % data_result[0])
print('The p value of data: %f' % data_result[1])

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
2月前
|
数据采集 数据可视化 数据挖掘
基于Python的数据分析与可视化实战
本文将引导读者通过Python进行数据分析和可视化,从基础的数据操作到高级的数据可视化技巧。我们将使用Pandas库处理数据,并利用Matplotlib和Seaborn库创建直观的图表。文章不仅提供代码示例,还将解释每个步骤的重要性和目的,帮助读者理解背后的逻辑。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和技能。
202 0
|
26天前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
29天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
1月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
2月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据处理与可视化——以气温数据分析为例
【10月更文挑战第12天】使用Python进行数据处理与可视化——以气温数据分析为例
322 0
|
2月前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
138 0
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
63 0
|
22天前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
68 4
数据分析的 10 个最佳 Python 库
|
4月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
90 2
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
215 4