纯随机性检验

原理:

纯随机序列:平稳序列值之间没有任何相关性的序称为纯随机序列,这意味着该序列过去的行为对将来的发展没有丝毫影响。 从统计分析的角度而言, 纯随机序列没有任何分析价值。纯随机序列也称为白噪声序列。

纯随机性检验,又叫白噪声检验,一般是构造检验统计量来检验。常用的检验统计量有Q统计量、LB统计量,由样本各延迟期数的自相关系数,可以计算出检验统计量,然后计算对应的p值,如果p值大于显著性水平\alpha,则表示接受原假设,是纯随机序列,停止分析。

通过python代码来实现对Q统计量的检验。 计算Q统计量和LB统计量都是用python中statsmodels模块中的acorr_ljungbox方法。默认情况下, acorr_ljungbox只计算LB统计量, 只有当参数boxpierce=True时, 才会输出Q统计量。

python实现:
from statsmodels.sandbox.stats.diagnostic import acorr_ljungbox
qljungbox, pval, qboxpierce, pvalbp=acorr_ljungbox(x, boxpierce=True)
for i in range(len(pval)):print('真实数据:qljungbox, pval, qboxpierce, pvalbp:',qljungbox[i], pval[i], qboxpierce[i], pvalbp[i])
结果注解:

P值大于0.05,是白噪声序列。

平稳性检验

原理:

如果时间序列在某一常数附近波动且波动范围有限,即有常数均值和常数方差,并且延迟k期的序列变量的自协方差和自相关系数是相等的,或者说延迟k期的序列变量之间的影响程度是一样的,则称该时间序列为平稳序列。

两种检验方法:

a. 根据时序图和自相关图的特征做出判断的图检验,该方法操作简单、应用广泛,缺点是带有主观性;

时序图检验:根据平稳时间序列的均值和方差都为常数的性质,平稳序列的时序图显示序列值始终在一个常数附近随机波动,且波动的范围有界。如果有明显的趋势性或周期性,通常不是平稳序列。

自相关图检验:平稳序列具有短期相关性,所以平稳序列中,只有近期的序列值对现时值得影响比较明显,间隔越远的过去值对现时值的影响越小。随着延迟期数k的增加,平稳序列的自相关系数会比较快的衰减趋向于零,并在零附近随机波动,而非平稳序列的自相关系数衰减的速度比较慢。

#自相关图
from statsmodels.graphics.tsaplots import plot_acf
plot_acf(data).show()
#自相关图
from pandas.plotting import autocorrelation_plot
x=[random.randint(1, 200) for i in range(data.shape[0])]
autocorrelation_plot(x, ax=axes[1])
axes[1].set_title('随机黑子数')
plt.show()
#偏自相关图
from statsmodels.graphics.tsaplots import plot_pacf
plot_pacf(D_data).show()

b. 构造检验统计量,目前最常用的方法是单位根检验。

单位根检验是指检验序列中是否存在单位根,因为存在单位根就是非平稳时间序列。

from statsmodels.tsa.stattools import adfuller
dftest = adfuller(x)# 对上述函数求得的值进行语义描述
dfoutput = pd.Series(dftest[0:4], index=['Test Statistic','p-value','#Lags Used','Number of Observations Used'])
for key,value in dftest[4].items():dfoutput['Critical Value (%s)'%key] = value
#输出
Test Statistic                -7.660879e+00
p-value                        1.689995e-11#概率,超过特定值则不能拒绝存在单位根
#Lags Used                     0.000000e+00
Number of Observations Used    4.900000e+01
Critical Value (1%)           -3.571472e+00
Critical Value (5%)           -2.922629e+00
Critical Value (10%)          -2.599336e+00
dtype: float64
结果注解:

P值大于0.05,为非平稳序列。

建模流程

模型检验


模型拟合后的残差序列为白噪声序列

知识点理解

白噪声序列是平稳序列,无信息可提取;

平稳序列不一定是白噪声序列;

平稳的非白噪声序列:均值和方差是常数,最常用ARMA拟合模型;

非平稳序列均值方差不稳定,一般将其转为平稳序列,可用ARMA;如果一个序列差分后具有平稳性,则该序列为差分平稳序列,可用ARIMA。

python主要的时间序列模式算法函数

acf() 计算自相关系数 —statsmodels.tsa.stattols

plt_acf() 画自相关系数 —statsmodels.graphics.tsaplots

pacf() 计算片相关系数 —statsmodels.tsa.stattols

plot_acf() 画偏相关系数— statsmodels.graphics.tsaplots

adfuller() —对观测值序列进行单位根检验 statsmodels.tsa.stattols//ADF test

diff() —对观测值进行查分计算 pandas对象自带的方法

ARIMA() —创建一个ARIMA序列模型 statsmodels.tsa.arima_model

summary()&summaty2 —给出一分ARIMA模型的报告 ARIMA模型对象自带方法

aic/bic/hqic — 计算ARIMA模型的AIC/BIC/HQIC指标值 ARIMA模型对象自带方法

froecast() —应用构建的时间序列进行预测 ARIMA模型对象自带方法

acorr_ljungbox() —Ljung-Box检验,检验是否为白噪声 statsmodels.stats.diagnostic

python代码

#相对最优模型
data[u'销量'] = data[u'销量'].astype(float)  #销量转为float类型
#定阶
pmax = int(len(D_data)/10) #一般阶数不超过length/10
qmax = int(len(D_data)/10) #一般阶数不超过length/10
bic_matrix = [] #bic矩阵
for p in range(pmax+1):tmp = []for q in range(qmax+1):try: #存在部分报错,所以用try来跳过报错。tmp.append(ARIMA(data, (p,1,q)).fit().bic)except:tmp.append(None)bic_matrix.append(tmp)bic_matrix = pd.DataFrame(bic_matrix) #从中可以找出最小值p,q = bic_matrix.stack().idxmin() #先用stack展平,然后用idxmin找出最小值位置。
print(u'BIC最小的p值和q值为:%s、%s' %(p,q))BIC最小的p值和q值为:0、1
model = ARIMA(data, (p,1,q)).fit() #建立ARIMA(0, 1, 1)模型
model.summary2() #给出一份模型报告model.forecast(5) #作为期5天的预测,返回预测结果、标准误差、置信区间。(array([4873.9665477 , 4923.92261622, 4973.87868474, 5023.83475326,5073.79082178]),array([ 73.08574262, 142.32680643, 187.54283213, 223.80283273,254.95705912]),array([[4730.72112437, 5017.21197102],[4644.96720157, 5202.87803086],[4606.3014882 , 5341.45588128],[4585.18926146, 5462.48024505],[4574.0841683 , 5573.49747526]]))

参考文献

纯随机性检验
https://mlln.cn/2017/10/26/python%E6%97%B6%E9%97%B4%E5%BA%8F%E5%88%97%E5%88%86%E6%9E%90-%E7%BA%AF%E9%9A%8F%E6%9C%BA%E6%80%A7%E6%A3%80%E9%AA%8C/
时间序列分析
https://blog.csdn.net/zjlamp/article/details/81606222
https://www.cnblogs.com/jfdwd/p/9252539.html
模型检验
https://wenku.baidu.com/view/3ea62a6b0812a21614791711cc7931b764ce7b46.html

时间序列分析建模及相关算法的python实现相关推荐

  1. 金融时间序列分析:3. First Demo By Python

    0. 目录 金融时间序列分析:9. ARMA自回归移动平均模型 金融时间序列分析:8. MA模型实例(Python) 金融时间序列分析:7. MA滑动平均模型 金融时间序列分析:6. AR模型实例 金 ...

  2. python实践——时间序列分析建模理论及代码实现

    python进阶教程 机器学习 深度学习 长按二维码关注 进入正文 声明:本文所讲的时间序列分析并不是指pandas的时间序列处理方法,pandas时间序列处理更缺确切地说时间序列的可视化.窗口移动操 ...

  3. 数学建模时间序列分析_时间序列分析建模验证

    数学建模时间序列分析 时间序列预测 (Time Series Forecasting) 背景 (Background) This article is the fourth in the series ...

  4. 树相关算法及Python实现

    [树和树算法]Python实现 Ⅰ目标 Ⅱ 树的相关概念 Ⅲ 树的定义 Ⅳ 树的列表表示 Ⅴ 树的节点表示 Ⅵ 分析树 例子1 例子2 如何构建分析树? Ⅶ 树的遍历 Ⅷ 二叉堆实现 基本操作 二叉堆 ...

  5. sas应用入门(7.2)—— 平稳时间序列分析(建模)(精)

    #平稳序列建模 零.基本概念 1.两种方法工具 →{\to}→差分运算 →{\to}→延迟算子 2. 三种模型 →{\to}→AR模型 p-偏自相关系数 →{\to}→MA模型 q-自相关系数 →{\ ...

  6. 时间序列分析 - 移动平均SMA, EMA(EWMA) 之python

    pandas: pandas.DataFrame.rolling pandas.DataFrame.ewm pandas.DataFrame.mean 其中rolling可以指定窗口类型win_typ ...

  7. 【Python数据分析】时间序列分析——AR/MA/ARMA/ARIMA

    目录 一.时间序列的平稳性与差分法 1.时间序列的平稳性: 2.平稳性检验 3.纯随机性检验 4.差分法 二.平稳时间序列模型 1.AR模型 2.MR模型 3.ARMA模型 4.平稳时间序列建模步骤 ...

  8. 金融时间序列分析:8. MA模型实例(Python)

    0. 目录 金融时间序列分析:9. ARMA自回归移动平均模型 金融时间序列分析:8. MA模型实例(Python) 金融时间序列分析:7. MA滑动平均模型 金融时间序列分析:6. AR模型实例 金 ...

  9. 金融时间序列分析:5. AR模型实例(Python)

    0. 目录 金融时间序列分析:9. ARMA自回归移动平均模型 金融时间序列分析:8. MA模型实例(Python) 金融时间序列分析:7. MA滑动平均模型 金融时间序列分析:6. AR模型实例 金 ...

最新文章

  1. 最长递增子序列的两种解法
  2. Android 多点触控 MotionEvent详解
  3. LinuxMint(Ubuntu)安装文泉驿家族黑体字
  4. HALCON示例程序measure_ring.hdev齿轮齿宽度测量
  5. mac快速电脑锁屏/睡眠方法
  6. codeforces776D
  7. 企业使用邮箱的重要性
  8. 舞台音效控制软件_舞台音乐控制软件下载
  9. ZEMAX | HUD 设计实例
  10. python哥德巴赫猜想_Python验证哥德巴赫猜想
  11. 腾讯云全站加速有哪些功能?有哪些优势?适用于什么场景?
  12. 【评测】MP DSS肠炎模型专用
  13. 苹果数据泄漏:内鬼频出,这是库克的错吗?
  14. 小帅功能软件测试经验总结
  15. Servlet_Jsp学习笔记:
  16. Chrome浏览器全球大翻车? 让20多亿用户无网可上
  17. 基于模糊神经网络PID算法的液位串级控制
  18. ubuntu18.04卸载cuda11.3安装cuda10.2
  19. BLE CC2540之ADC
  20. 基于S7-200 PLC组态王组态和触摸屏的洗衣机控制系统的设计

热门文章

  1. 类似PS的蒙版?可以实现,LVGL『Object mask对象蒙版控件』介绍
  2. 迅为6818开发板资料-CAN总线和RFID驱动的配置方法
  3. android 呼吸灯,十三种呼吸灯交互触控体验_手机_手机Android频道-中关村在线
  4. 全球及中国不锈钢市场投资前景与发展走势研究报告2022版
  5. 台式计算机选购,电脑什么配置好 教你如何选购一台好的台式电脑
  6. win10 64位安装32位office
  7. 曾国藩的做人做事之道:事不拖,话不多,人不作
  8. 数码摄影入门:焦距是什么?
  9. MATLAB之——Kronecker积
  10. 河海大学计算机辅助,黄瑞