自回归滑动平均(ARMA)模型
目录
一.功率谱密度
二.ARMA过程
三.ARMA建模及应用
一.功率谱密度
功率谱反映被分析对象的能量随频率分布情况,如雷达信号处理中,回波信号的功率谱密度,谱峰宽度、高度和位置可以确定目标的位置、辐射强度和运动速度等信息。
在给定样本数据中,估计平稳随机信号的功率谱密度成为功率谱估计。(注意!如果信号不是广义平稳的随机过程,信号自相关函数是变量的函数,不存在功率谱密度。)
平稳离散过程x(n)的功率谱密度为其自协方差函数的傅里级数。其中T是采样周期。
计算功率谱密度:
1.直接求每个N个样本数据的频谱,再对频谱求共轭相乘,求平均得到功率谱。(对时域信号加窗,称为数据窗)
2.对N个样本数据求自相关函数,再对自相关求傅里叶变换,得到功率谱。(对相关函数加窗,称为谱窗)
二.ARMA过程
ARMA过程,对线性不变系统,平稳随机过程可以通过白噪声激励线性时不变系统产生,该线性系统由线性差分方程描述,而该差分模型为自回归-滑动平均(Auto Regressive Moving Average model, ARMA)模型。简单来说,通过自身和之前的数据之间的相关关系建立回归方程,分析和预测数据。通过对一段时间的白噪声加权求和,得到移动平均方程,解决噪声随机变动的问题。
一般形式表示为
其中有两个主要参数p,q
p表示预测模型中采用的时序数据本身的滞后数
q表示预测模型中采用的预测误差滞后数
三.ARMA建模及应用
MATLAB给了例程和函数,其中APP“Econometric Modeler”用ARMA模型来分析和预测经济走势。学习该模型的很直接的工具。
最近一篇文章《ARMA模型在雷达动态测量精度分析中的应用》讲ARMA模型在实际应用中一般处理步骤,经典的一般处理过程;我冒昧直接贴出来,侵删。
预处理:可以用一阶或二阶的差分消除趋势项和周期项。用统计方法检验数据平稳性。
平稳性检验:满足所有特征量不随时间t的推移而变化,则为平稳随机过程。前文中采用Daniel检验思路进行,即 在满足显著性水平α=0.05的条件下,构造统计量T,使
验证发现二阶差分满足平稳过程,一阶差分数据非平稳。
模型识别:观察自相关函数和偏自相关函数的拖尾性和截尾性来选择ARMA,AR,MA等模型,其中每种模型的拖尾和截尾性如下表
ARMA模型识别 - 不愿透露性别的某名宿的个人空间 - OSCHINA - 中文开源技术交流社区中讲拖尾和截尾的判断依据。有时只用这两个函数不太好识别模型,有人用推广自相关系数eacf来识别模型时间序列分析(四):ARMA模型 - 知乎 (zhihu.com)
模型定阶: 定阶目的是估计p和q值,通过AIC准则、BIC准则等方法可以确定。当取值最小时的阶数为数据阶数。
参数估计:数据用二阶差分后的平稳随机序列用ARMA(3,5)模型来拟合之后,估计回归模型每阶的系数。MATLAB中用最大似然估计方法来估计ARMA模型参数。
模型检验:对拟合的模型做模型拟合优度检验。采用卡方检验法,构造检验统计量,验证显著性水平α=0.05条件下是否为高斯分布的随机过程。
搬运MATLAB一个例子:来说明ARMA构造模型及分析的过程。
Mdl0 = arima('Constant',0.2,'AR',{0.75,-0.4},'MA',0.7,'Variance',0.1); % 仿真ARMA(2,1)模型
rng('default')
Y = simulate(Mdl0,100); % 构造100个观测值% 绘制时间序列
figure;
plot(Y)
xlim([0,100])
title('Simulated ARMA(2,1) Series')% 绘制自相关函数和偏自相关函数
figure;
subplot(2,1,1)
autocorr(Y)
subplot(2,1,2)
parcorr(Y)% 对数似然函数得到不同阶数下的函数值
LOGL = zeros(4,4); % Initialize
PQ = zeros(4,4);
for p = 1:4for q = 1:4Mdl = arima(p,0,q);[EstMdl,~,logL] = estimate(Mdl,Y,'Display','off');LOGL(p,q) = logL;PQ(p,q) = p + q;end
end% 计算每个模型参数下的BIC矩阵
LOGL = reshape(LOGL,16,1);
PQ = reshape(PQ,16,1);
[~,bic] = aicbic(LOGL,PQ+1,100);
reshape(bic,4,4) % 该矩阵中数值最小的行列即为模型的参数% 最大似然估计,得到模型参数值
EstMdl = estimate(Mdl0,Y);
EstMdl.AR
EstMdl.MA
构造的ARMA(2,1)平稳随机过程信号值
自相关函数和偏自相关函数,用来识别模型。其中两个函数都是拖尾,认定为ARMA模型
BIC准则得到的函数值为
108.6241 105.9489 109.4164 113.8443
99.1639 101.5886 105.5203 109.4348
102.9094 106.0305 107.6489 99.6794
107.4045 100.7072 102.5746 102.0209
其中,第二行第一列的数值最小,则得到p=2,q=1。即模型定阶为ARMA(2,1)
模型参数估计结果为EstMdl.AR = 0.75,-0.40 ; EstMdl.MA = 0.70。
还有解释更详细的博客可以当做学习和补充
机器学习(五)——时间序列ARIMA模型_爱吃串串的瘦子的博客-CSDN博客_arima
机器学习——时间序列模型_冠long馨的博客-CSDN博客_时间序列模型
机器学习经典算法----时间序列模型ARIMA_ChingeWang的博客-CSDN博客
自回归滑动平均(ARMA)模型相关推荐
- 自回归滑动平均模型ARMA
ARMAARMAARMA模型介绍 自回归滑动平均模型(Auto−RegressiveandMovingAverageModel,ARMAAuto-Regressive \ and \ Moving \ ...
- arma模型平稳性和可逆性的条件,如何理解MA模型的可逆性条件?它有什么意义?...
ARMA模型(Auto-Regressive and Moving Average Model)是研究时间序列的重要方法,由自回归模型(简称AR模型)与滑动平均模型(简称MA模型)为基础"混 ...
- AR模型,MA模型,ARMA模型,GARCH模型
AR模型:自回归模型,是一种线性模型.AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值. MA模型:移动平均法模型,其中使用趋势移动平均法 ...
- tensorflow中学习率、过拟合、滑动平均的学习
1. 学习率的设置 我们知道在参数的学习主要是通过反向传播和梯度下降,而其中梯度下降的学习率设置方法是指数衰减. 通过指数衰减的学习率既可以让模型在训练的前期快速接近较优解,又可以保证模型在训练后期不 ...
- tensorflow随笔-滑动平均模型
随机梯度下降算法训练时,使用滑动平均模型 可以提高模型健壮性. 在Tensorflow中提供了tf.train.ExponentialMovingAverage来实现滑动平均模型.在初始化Expone ...
- 【TensorFlow】TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型
本文是<TensorFlow从浅入深>系列之第5篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- tensorflow随机梯度下降算法使用滑动平均模型
在采用随机梯度下降算法训练神经网络时,使用滑动平均模型可以提高最终模型在测试集数据上的表现.在Tensflow中提供了tf.train.ExponentialMovingAverage来实现滑动平均模 ...
- 自回归AR模型、移动平均MA模型与自回归移动平均ARMA模型的比较分析
系统中某一因素变量的时间序列数据没有确定的变化形式,也不能用时间的确定函数描述,但可以用概率统计方法寻求比较合适的随机模型近似反映其变化规律.(自变量不直接含有时间变量,但隐含时间因素) 1. 自回归 ...
- 浅谈tensorflow的指数衰减学习率、正则化、滑动平均模型
指数衰减学习率使训练迭代更加有效: 学习率决定了每一次迭代训练过程优化神经网络数的幅度,学习率的正确选取对于训练的效率.和效果均有一定的影响,如果我们学习率设定过大,则会可能导致参数在极值两侧跳动,这 ...
- TensorFlow滑动平均模型
指数加权平均算法的原理 TensorFlow中的滑动平均模型使用的是滑动平均(Moving Average)算法,又称为指数加权移动平均算法(exponenentially weighted aver ...
最新文章
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
- pgsql_sql查询效率优化
- HALCON示例程序high.hdev使用不同方法提取区域
- 用状态机STATE MACHINE实现有选择的文件转换
- Android设计模式之——中介者模式
- @EnableTransactionManagement
- 在微信小程序中引入 Iconfont 阿里巴巴图标库
- 279. Perfect Squares
- 关于ashx的基本应用
- python中len和range函数_for循环len函数和range函数的运用
- 决策树准确率低原因_决策树算法
- 突然间的一个阿里电话面试
- 从整理看视觉设计(网易云课堂我的学习中心-微专业视觉优化)
- java 模拟天眼查登陆,scrapy,我想模拟登陆天眼查网站,那个网站要滑动对齐验证,我能怎么办才能模拟登陆成功呢?...
- xshell最多支持4个_3分钟苹果发布会:iPhone12支持5G、3个尺寸4种型号
- 谷粒学院(十九)统计分析模块 | 定时任务 | echarts
- 常用的web服务器软件有哪些
- 孙溟㠭绘画篆刻——《梦》
- mysql.connector 小结
- 谷歌命令行解析工具gflags的使用
热门文章
- SWMM与Python的那些事 (一)
- linux安装通用plsql数据库,linux centOs中安裝好數據庫,客戶端用plsql連接oracle
- Python网络爬虫实现音乐下载器和图片下载器功能
- Ti_ccs_2.0
- 在万能地图下载器中如何不显示谷歌电子地图上的地名文字?
- 如何用VUE从零创建网站
- java大小写同时转换(大写的转为小写,小写转为大写)
- [随笔所想] 沉痛悼念开发技术专家毛星云老师
- 冰点文库下载器V3.2.4
- 正好股票开户指数大跌分解比较严重