时间序列数据中的趋势及可视化示例

时间序列数据是在有序的时间段内测量某些变量的数据点序列。它是增长最快的数据库类别,因为它广泛用于各种行业,以了解和预测数据模式。因此,在准备这些时间序列数据进行建模时,检查时间序列组件或模式非常重要。 其中之一就是趋势。

趋势是数据中的一种模式,它显示了一个系列在很长一段时间内相对较高或较低的值的运动。换句话说,当时间序列中存在增加或减少的斜率时,观察到趋势。趋势通常发生一段时间,然后消失,它不会重复。例如,一首新歌出现,它流行了一段时间,然后就消失了。它很有可能再次成为趋势。

一种趋势可能是:

  • 上升趋势:时间序列分析显示一个向上的一般模式,然后它是上升趋势。
  • 下降趋势:时间序列分析显示一个向下的模式,然后它是下降趋势。
  • 水平或平稳趋势:如果没有观察到模式,则称为水平或平稳趋势。

您可以通过简单的可视化或分解数据集来发现数据中的趋势。

可视化示例

通过简单地绘制数据集,您可以看到数据的总体趋势

注:在下面给出的示例中,相同的代码用于显示所有三种趋势,只是所使用的数据集不同,以反映特定的趋势。

示例:上升趋势

# importing the libraries
import pandas as pd
import matplotlib

# importing dataset
data = pd.read_csv(r'C:\Users\admin\Downloads\Electric_Production.csv')

# casting Month column to datetime object
data['DATE'] = pd.to_datetime(data['DATE'])

# Setting Month as index
data = data.set_index('DATE')

# Creating the plot
data.plot()

在这里插入图片描述
示例:下降趋势

import pandas as pd
import matplotlib

# importing dataset
data = pd.read_csv(r'C:\Users\admin\Downloads\AlcoholSale.csv')

# casting Date column to datetime object
data['DATE'] = pd.to_datetime(data['DATE'])

# Setting Date column as index
data = data.set_index('DATE')

# Creating the plot
data.plot()

在这里插入图片描述
示例:水平趋势

# importing the libraries
import pandas as pd
import matplotlib

# importing dataset
data = pd.read_csv(
	r'C:\Users\admin\Downloads\monthly-beer-production-in-austr.csv')

# casting Month column to datetime object
data['Month'] = pd.to_datetime(data['Month'])

# Setting Month as index
data = data.set_index('Month')

# Creating the plot
data['1984':'1994'].plot()

在这里插入图片描述

分解数据

为了了解线性可视化背后的复杂性,我们可以分解数据。statsmodels包中的seasonal_decompose函数可以帮助我们将数据分解为其组件/显示模式-趋势,季节性和时间序列的残差组件。在这里,我们只对趋势组件感兴趣,因此将使用seasonal_decompose().trend访问它。

seasonal_decode函数使用移动平均方法来估计趋势。

语法
statsmodels.tsa.seasonal.seasonal_decode(x,model=‘additive’,period=None,extrapolate_trend=0)
重要参数
x:数组及类数组。 时间序列 ,如果是2d,则各个系列在列中。x必须包含2个完整周期。
model:{“additive”,“multiplicative”},可选(取决于季节组成部分的性质)
period(频率):int,可选。如果x不是pandas对象或x的索引没有频率,则必须使用。
返回:具有季节、趋势和剩余属性的对象。

示例如下:

# importing function
from statsmodels.tsa.seasonal import seasonal_decompose

# creating trend object by assuming multiplicative model
output = seasonal_decompose(data, model='multiplicative').trend

# creating plot
output.plot()

在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 03:40:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 03:40:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 03:40:03       87 阅读
  4. Python语言-面向对象

    2024-01-19 03:40:03       96 阅读

热门阅读

  1. Backtrader 文档学习-Indicators 开发

    2024-01-19 03:40:03       55 阅读
  2. 速盾网络:高防ip是什么

    2024-01-19 03:40:03       48 阅读
  3. 文件上传报错总结

    2024-01-19 03:40:03       49 阅读
  4. LC674. 最长连续递增序列

    2024-01-19 03:40:03       61 阅读
  5. Fastapi打包exe后无限启动导致死机的解决办法

    2024-01-19 03:40:03       74 阅读
  6. nlk学习笔记 新闻摘要自动提取

    2024-01-19 03:40:03       47 阅读
  7. Pandas实战100例 | 案例 49: 数值运算

    2024-01-19 03:40:03       50 阅读
  8. D - Disastrous Doubling

    2024-01-19 03:40:03       60 阅读
  9. 配置git环境

    2024-01-19 03:40:03       49 阅读
  10. 【Git】GitHub上手动解决冲突

    2024-01-19 03:40:03       53 阅读