当前位置:
首页 > temp > 简明python教程 >
-
ARMR模型简单实践(1)
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 |
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数