Bootstrap

时间序列的预处理及其分类和检验(最后含Python案例)

目录

时间序列分类:

 平稳时间序列的检验:

 平稳时间序列的随机性检验:

 总结精华(讲了这么多的目的和最终怎么用):总之,我们拿到一个时间序列,我们要做两个检验:

1:平稳性检验:a:时序图法  b:自相关法

2:纯随机性假设检验:LB检验

Python实例:


时间序列分类:

1:时间序列分为平稳时间序列和非平稳时间序列。其中平稳时间序列又分为严平稳时间序列和宽平稳时间序列。下面主要讲解平稳序列,在讲解之前我们先引入概率分布的意义。

1.1:概率分布的意义:

 时间序列的联合分布定义为:

 举例理解:

 但是实际应用中我们都是通过样本估计总体,所以研究样本的统计量非常必要:

 1.2:统计量的定义:

 注:从样本角度理解如下(有助于我们理解总体):

 注:从样本角度理解如下:

2:有了上面的概念后我们开始定义平稳序列:

 2.1:更具体的说,我们一般研究宽平稳序列,宽平稳序列定义如下:

 

 2.2:两种平稳序列的关系:

 2.3:宽平稳序列性质(也就是定义):

 对于宽平稳序列,我们有如下说明定义(该定义并不增加新概念):

 3:从样本角度,对以上概念再次描述定义:

 平稳时间序列的检验:

我们获取了时间序列的概念和定义,很自然的我们想知道如何判定一个时间序列是否是时间序列呢? 所以,自然引出时间序列的检验问题。

1:图检验方法:

 

 2:时序图检验方法原理(从定义中获取的检验方法):

 注:其实就是检验观察值均值序列是否一直是同一个值。

实例:

 3:自相关检验方法 (随着k的增加):

 实例:

 

 平稳时间序列的随机性检验:

引出问题:

1:非纯随机性序列定义描述:

 2:纯随机序列定义:

 2.1:确定性定义:

 

 3:纯随机序列的检验:

 实例:

 3.1:更具一般性的检验方法:

首先引出假设检验的方法(概率论数理统计中学习过

 3.2:首先获取分布函数:

 3.3:做出假设:

 3.4:构建统计量:

 3.5:做出判断:

 实例:

 总结精华(讲了这么多的目的和最终怎么用):总之,我们拿到一个时间序列,我们要做两个检验:

1:平稳性检验:a:时序图法  b:自相关法

2:纯随机性假设检验:LB检验

实例:

 

 

 

Python实例:

首先,导入数据并且查看:

# 图像显示中文的问题
import matplotlib
matplotlib.rcParams['axes.unicode_minus'] = False
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.graphics.tsaplots import plot_acf

import warnings
warnings.filterwarnings("ignore")

temperature = 'C:\\Users\\Administrator\\Desktop\\数据挖掘项目\\统计学之时序分析案例\\数据源\\arima_data.xls'

data_tem = pd.read_excel(temperature)
plt.figure(figsize=[18, 8])
plt.plot(data_tem.日期, data_tem.销量)
plt.show()

 我们对数据的平稳性并且查看:

自相关检验平稳性 :平稳序列通常具有短期相关性,即随着延迟期数k的增加,平稳序列的自相关系数会很快地衰减向零, 而非平稳序列的自相关系数的衰减速度会比较慢,这就是我们利用自相关图判断平稳性的标准 

# 自相关检验平稳性
"""
平稳序列通常具有短期相关性,即随着延迟期数k的增加,平稳序列的自相关系数会很快地衰减向零,
而非平稳序列的自相关系数的衰减速度会比较慢,这就是我们利用自相关图判断平稳性的标准
"""
plt.rcParams.update({'figure.figsize': (8, 6), 'figure.dpi': 100})  # 设置图片大小
plot_acf(data_tem.销量)  # 生成自相关图
# 自相关系数一直为正,然后为负,呈现出三角对称性,这是具有单调趋势的非平稳序列的一种典型的自相关图形式
plt.show()

 结论:自相关系数一直为正,然后为负,呈现出三角对称性,这是具有单调趋势的非平稳序列的一种典型的自相关图形式。(后续课程会有更加精确的判断手段)

对数据进行随机性检验:LB随机性检验和Q检验

statsmodels模块中的acorr_ljungbox方法。默认情况下, acorr_ljungbox只计算LB统计量, 只有当参数boxpierce=True时, 才会输出Q统计量。lags参数为延迟参数K

# LB随机性检验
# 白噪声检验Ljung-Box检验
# 该检验用来检查序列是否为随机序列,如果是随机序列,那它们的值之间没有任何关系
# 使用LB检验来检验序列是否为白噪声,原假设为在延迟期数内序列之间相互独立。
LB = sm.stats.diagnostic.acorr_ljungbox(data_tem["销量"], lags=[4, 8], return_df=True)
print("序列销售的LB检验结果:\n", LB)
# 如果P值小于0.05,说明序列之间不独立,不是白噪声

# Q随机检验
"""
statsmodels模块中的acorr_ljungbox方法。默认情况下, acorr_ljungbox只计算LB统计量, 
只有当参数boxpierce=True时, 才会输出Q统计量。
"""
Q = sm.stats.diagnostic.acorr_ljungbox(data_tem["销量"], lags=[4, 8], return_df=True, boxpierce=False)
print("序列销售的Q检验结果:\n", Q)

 结论:P值均小于0.05,说明序列之间不独立,不是白噪声,数据具有可预测性

全部代码:

# 图像显示中文的问题
import matplotlib
matplotlib.rcParams['axes.unicode_minus'] = False
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.graphics.tsaplots import plot_acf

import warnings
warnings.filterwarnings("ignore")

temperature = 'C:\\Users\\Administrator\\Desktop\\数据挖掘项目\\统计学之时序分析案例\\数据源\\arima_data.xls'

data_tem = pd.read_excel(temperature)
plt.figure(figsize=[18, 8])
plt.plot(data_tem.日期, data_tem.销量)
plt.show()

# 自相关检验平稳性
"""
平稳序列通常具有短期相关性,即随着延迟期数k的增加,平稳序列的自相关系数会很快地衰减向零,
而非平稳序列的自相关系数的衰减速度会比较慢,这就是我们利用自相关图判断平稳性的标准
"""
plt.rcParams.update({'figure.figsize': (8, 6), 'figure.dpi': 100})  # 设置图片大小
plot_acf(data_tem.销量)  # 生成自相关图
# 自相关系数一直为正,然后为负,呈现出三角对称性,这是具有单调趋势的非平稳序列的一种典型的自相关图形式
plt.show()

# LB随机性检验
# 白噪声检验Ljung-Box检验
# 该检验用来检查序列是否为随机序列,如果是随机序列,那它们的值之间没有任何关系
# 使用LB检验来检验序列是否为白噪声,原假设为在延迟期数内序列之间相互独立。
LB = sm.stats.diagnostic.acorr_ljungbox(data_tem["销量"], lags=[4, 8], return_df=True)
print("序列销售的LB检验结果:\n", LB)
# 如果P值小于0.05,说明序列之间不独立,不是白噪声

# Q随机检验
"""
statsmodels模块中的acorr_ljungbox方法。默认情况下, acorr_ljungbox只计算LB统计量, 
只有当参数boxpierce=True时, 才会输出Q统计量。
"""
Q = sm.stats.diagnostic.acorr_ljungbox(data_tem["销量"], lags=[4, 8], return_df=True, boxpierce=False)
print("序列销售的Q检验结果:\n", Q)

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;