什么是时间序列中的趋势

什么是时间序列中的趋势

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

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

一个趋势可能是:

  • 上升趋势。时间序列分析显示出一个总体模式是向上的,那么它就是上升趋势。
  • 下行趋势。时间序列分析显示出一种向下的模式,那么它就是下行趋势。
  • 水平或静止的趋势。如果没有观察到任何模式,那么它被称为水平或静止的趋势。

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

可视化

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

步骤 :

  • Import module
  • Load dataset
  • 将月份列投给日期时间对象
  • 设置月份为索引
  • Create plot

注意:在下面的例子中,同样的代码被用来显示所有三个趋势,只是使用的数据集不同,以反映特定的趋势。

示例: Uptrend

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

输出 :

什么是时间序列中的趋势?

示例: Downtrend

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

输出 :

什么是时间序列中的趋势?

Decomposition

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

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

语法 :

statsmodels.tsa.seasonal.seasonal_decompose(x, model=’additive’, period=None, extrapolate_trend=0)

重要的参数:

  • x : 类似数组。时间序列。如果是2d,单个系列在列中。x必须包含2个完整的周期。
  • model:{“加法”,”乘法”},可选(取决于季节性成分的性质)。
  • period(freq.) : int, optional .如果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()

输出 :

什么是时间序列中的趋势?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程