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

发布时间:2024年01月18日

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

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

一种趋势可能是:

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

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

可视化示例

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

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

示例:上升趋势

# 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()

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_42034590/article/details/134897742
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。