当前位置:
首页 > 编程开发 > Python基础教程 >
-
python基础教程之ARMR模型简单实践(1)
本站最新发布 Python从入门到精通|Python基础教程
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
(1)肉眼检验
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
1.概念简述
(1)AR模型
AR 模型(auto regressive model)自回归模型,模型参量法高分辨率谱分析方法之一,也是现代谱估计中常用的模型。
用AR模型法求信具体作法是:
①选择AR模型,在输入是冲激函数或白噪声的情况下,使其输出等于所研究的信号,至少,应是对该信号的一个好的近似。
②利用已知的自相关函数或数据求模型的参
数。
③利用求出的模型参数估计该信号的功率谱。
(2)MA模型
MA模型(moving average model)滑动平均模型,模型参量法谱分析方法之一,也是现代谱估中常用的模型。
用MA模型法求信号谱估计的具体作法是:①选择MA模型,在输入是冲激函数或白噪声情况下,使其输出等于所研究的信号,至少应是对该信号一个好的近似。②利用已知的自相关函数或数据求MA模型的参数。③利用求出的模型参数估计该信号的功率谱。
在ARMA参数谱估计中,大多数估计ARMA参数的两步方法都首先估计AR参数,然后在这些AR参数基础上,再估计MA参数,然后可求出ARMA参数的谱估计。所以MA模型参数估计常作为ARMA参数谱估计的过程来计算。
2.使用pythonADF检验
在ARMA/ARIMA这样的自回归模型中,模型对时间序列数据的平稳是有要求的,因此,需要对数据或者数据的n阶差分进行平稳检验,而一种常见的方法就是ADF检验,即单位根检验。
平稳随机过程
在数学中,平稳随机过程(Stationary random process)或者严平稳随机过程(Strictly-sense stationary random process),又称狭义平稳过程,是在固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程:即随机过程的统计特性不随时间的推移而变化。这样,数学期望和方差这些参数也不随时间和位置变化。
平稳在理论上有严平稳和宽平稳两种,在实际应用上宽平稳使用较多。宽平稳的数学定义为:
对于时间序列 ytyt,若对任意的t,k,mt,k,m,满足:
$$E(y_t) = E(y_{t+m})\\
cov(y_t, y_{t+k}) = cov(y_{t+k}, y_{t+k+m})$$
则称时间序列 ytyt 是宽平稳的。
平稳是自回归模型ARMA的必要条件,因此对于时间序列,首先要保证应用自回归的n阶差分序列是平稳的。
1
2
3
4
5
6
7
8
9
10
11
12
|
def draw_rend(timerise, size): # print(timerise) f = plt.figure(facecolor = 'white' ) # 画图板 rol_mean = timerise.rolling(window = size).mean() # 对数据时间移动平均计算 rol_std = timerise.rolling(window = size).std() # rol_ = timerise.rolling(window=size).std() timerise.plot(color = 'c' , label = '原数据' ) rol_std.plot(color = 'red' , label = "移动方差" ) rol_mean.plot(color = 'blue' , label = "移动平均值" ) plt.title( "愿数据,均值,方差" ) plt.legend(loc = 'best' ) plt.show() |
该数据显然是不平稳的,我们来看看一阶差分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def teststationayity(ts): dftest = adfuller(ts) # 实例化检验得到数值源 # print(dftest) dfoutput = pd.Series(dftest[ 0 : 4 ], index = [ 'Test Statistic' , 'p_value' , '#Lags Used' , 'Number of Observation Uesd' ]) # print(dfoutput) #n阶差分 # _data=pd.Series(ts) # data=_data.diff(1)[1:] # # print(data) # data.plot() # plt.show() # plt.savefig('./diff_1.svg') for key, value in dftest[ 4 ].items(): dfoutput[ 'Critical Value({})' . format (key)] = value return dfoutput |
栏目列表
最新更新
如何使用OS模块中的stat方法
Python os 模块
seek() 方法
python打开文件实例1
Python写入文件
什么是流?
文件操作如何进制逐行读取
Python相对路径
with创建临时运行环境
Python文件操作
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能