时间序列数据是在有序的时间段内测量某些变量的数据点序列。它是增长最快的数据库类别,因为它广泛用于各种行业,以了解和预测数据模式。因此,在准备这些时间序列数据进行建模时,检查时间序列组件或模式非常重要。 其中之一就是趋势。
趋势是数据中的一种模式,它显示了一个系列在很长一段时间内相对较高或较低的值的运动。换句话说,当时间序列中存在增加或减少的斜率时,观察到趋势。趋势通常发生一段时间,然后消失,它不会重复。例如,一首新歌出现,它流行了一段时间,然后就消失了。它很有可能再次成为趋势。
一种趋势可能是:
您可以通过简单的可视化或分解数据集来发现数据中的趋势。
通过简单地绘制数据集,您可以看到数据的总体趋势
注:在下面给出的示例中,相同的代码用于显示所有三种趋势,只是所使用的数据集不同,以反映特定的趋势。
示例:上升趋势
# 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()