用python进行时间序列分析(一)

时间序列分析相关概念

  • 一、用python生成时间序列
    • 1.几种常见的时间序列
    • 2.data_range()函数—创建时间序列
    • 3.truncate()过滤函数
    • 4.时间戳可以转化为时间周期
  • 二、数据重采样
  • 三、pandas滑动窗口
    • 1.制作pandas滑动窗口
    • 2.数据可视化
  • 四、数据平稳性与差分法
    • 1.平稳性
    • 2.差分法
  • 五、ARIMA模型
    • 1.ARIMA(p,d,q)模型
    • 2.ARIMA(p,d,q)阶数确定
    • 3.ARIMA建模流程

一、用python生成时间序列

首先,需要导入pandas和numpy库

import pandas as pd
import numpy as np

1.几种常见的时间序列

  1. 时间戳 (timestamp);
  2. 固定周期 (period);
  3. 时间间隔 (interval);

2.data_range()函数—创建时间序列

函数参数:pd.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False,name=None, closed=None, **kwargs)
其中freq变量常见的类型有:D(天)、W(周)、M(月)
用python进行时间序列分析(一)_第1张图片
date_range()函数也可用于Dataframe中创建索引,示例如下:
用python进行时间序列分析(一)_第2张图片

3.truncate()过滤函数

使用方法:DataFrame.truncate(before=None, after=None, axis=None, copy=True)[source]
用python进行时间序列分析(一)_第3张图片

4.时间戳可以转化为时间周期

可以使用DatetimeArray.to_period(freq=None)函数

链接: 示例参考来源.
用python进行时间序列分析(一)_第4张图片

二、数据重采样

定义:时间数据由一个频率(年,月,周,日,分,秒)转换到另一个频率(年,月,周,日,分,秒)

  • 降采样:由周转化为月

  • 升采样:由月转化为周

  • 使用Series.resample()方法
    用python进行时间序列分析(一)_第5张图片
    时间序列降采样
    用python进行时间序列分析(一)_第6张图片

    时间序列升采样
    用python进行时间序列分析(一)_第7张图片
    时间序列升采样过程中需要对NaN空值采用某种插值方法,可采用以下三种:

    • ffill空值取前面的值
    • bfill空值取后面的值
    • interpolate线性取值
      用python进行时间序列分析(一)_第8张图片

三、pandas滑动窗口

1.制作pandas滑动窗口

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df=pd.Series(np.random.randn(600), index=pd.date_range('7/1/2016', freq='D', periods=600))
df.head()
r=df.rolling(windows=10)
print(r.mean())

2.数据可视化

plt.figure(figsize=(15,5))
df.plot(style='r--')
df.rolling(windows=10).mean().plot(style='g')

四、数据平稳性与差分法

1.平稳性

  • 平稳性:平稳性就是要求经由时间序列所得到的拟合曲线在未来一段时间内仍能顺着现有的形态“惯性”地延续下去。

  • 平稳性要求序列的均值和方差不发生明显变化

  • 严平稳与弱平稳

  • 严平稳:分布不随时间的改变而改变,如白噪声(正态),无论怎样取值,均值为0,方差为1。

  • 弱平稳:期望与相关系数不变,未来某时刻t的值Xt就要依赖于它过去的信息,需要依赖性。

2.差分法

  • 定义:时间序列在t与t-1时刻的差值
  • 一阶差分:s = pd.Series([1, 1, 2, 3, 5, 8]).diff(1)
  • 二阶差分:s = pd.Series([1, 1, 2, 3, 5, 8]).diff(2)

五、ARIMA模型

1.ARIMA(p,d,q)模型

全称为差分自回归移动平均模型(Autoregressive Integrated Moving Average Model,ARIMA),其中AR-自回归,p-自回归项,,MA-移动平均,q-移动平均数,d-时间序列成为平稳时所做的差分次数

  • 原理:将非平稳的时间序列转化为平稳的时间序列然后将因变量仅对他的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。
  • 构成:由AR模型(自回归模型)和MA模型(移动平均模型)组成
  • 参数:需要确定p,d,q的最优取值

2.ARIMA(p,d,q)阶数确定

  • AR(p)由PACF确定
  • MA(q)由ACF确定
  • 截尾:落在置信区间内(95%的点都符合该规则)用python进行时间序列分析(一)_第9张图片

3.ARIMA建模流程

  • 序列平稳化(差分法确定d)
  • p和q阶数确定:ACF和PACF
  • ARIMA(p,d,q)

你可能感兴趣的:(机器学习)