功能:计算并描绘时间序列的自相关函数
autocorr(Series,nLags,M,nSTDs) % 计算并绘制单变量随机时间序列的样本ACF及置信区间,如果不想绘制置信区间,则设置nSTDs=0
[ACF,lags,bounds] = autocorr(Series,nLags,M,nSTDs) % 计算并返回ACF
Series--时间序列
nLags--延迟,当nLags=[]或缺省时,计算ACF时在延迟点0、1、2、。。。、T处,T=min([20 length(Series-1)])
M--非负整数,表示在多大延迟时理论ACF为0.autocorr假设序列为MA(M),并且使用Bartlett估计方法来计算大于M的延迟的标准误差。如果M=[]或缺省,则为0,函数假设序列为高斯白噪声。
nSTDs--样本ACF估计误差的标准差。
ACF--样本自相关函数
Lags--与ACF(0,1,2,。。。,nLags)相对应的延迟
Bounds--置信区间的近似上下限,假设序列为MA(M)过程。
rng('default')
% make output reproducible使结果可复现
x = randn(1000, 1);
% 1000 Gaussian deviates ~ N(0, 1).
y = filter([1 -1 1], 1, x);
% Create an MA(2) process.创建MA(2)过程
[ACF, lags, bounds] = autocorr(y, [], 2)
% Compute the ACF with 95 percent confidence.就算95%置信度下的相关系数
autocorr(y, [], 2)
% 绘制结果
可以看到在延迟在2以后不再显著,说面这可能是一个MA(2)过程。
Note:此函数在判断MA过程时常用。
crosscorr
功能:计算并描绘两时间序列的互相关函数
crosscorr(Series1,Series2,nLags,nSTDs)
[ACF,lags,bounds] = crosscorr(Series1,Series2,nLags,nSTDs)
参数具体说明同autocorr函数
% 创建100个高斯分布的元素的时间序列
rng('default')
% make output reproducible
x = randn(100, 1);
% 100 Gaussian deviates, N(0, 1)
% 创建上面序列的延迟副本
y = lagmatrix(x, 4);
% Delay it by 4 samples
y(isnan(y)) = 0;
% 计算XCF互相关函数
[XCF, Lags, Bounds] = crosscorr(x, y);
crosscorr(x, y)
可以看到延迟在4处很显著。
Note:在信号处理中经常要研究两个信号的相似性,或研究一个信号经过一段延迟后与自身的相似性,以实现信号的检测、识别与提取等。相关函数是描述随机信号的重要统计量,有着广泛的用途,例如噪声中信号的检测、信号中隐含周期性的检测、信号相关性的检测、信号时延长度的测量等。
autocorr功能:计算并描绘时间序列的自相关函数格式:autocorr(Series,nLags,M,nSTDs) % 计算并绘制单变量随机时间序列的样本ACF及置信区间,如果不想绘制置信区间,则设置nSTDs=0[ACF,lags,bounds] = autocorr(Series,nLags,M,nSTDs) % 计算并返回ACF说明:Serie
今天看了一下时间序列模型ARIMA模型,在对数据处理的时候,需要对其进行平稳性检验。
对序列的平稳性的检验有两种检验方法:一种是根据时序图和自相关图的特征作出判断的图检验,该方法操作简单,应用广泛,缺点是带有主观性;另一种是构造检验统计量进行的方法,目前最常用的方法是单位根检验,这个本文不作介绍。
对于时序图检验,根据平稳时间序列的均值和方差都为常数的性质,平稳序列的时序图显示该序列值始终在一个
自相关函数
自相关,也叫做序列相关,是一个信号于其自身在不同时间点的互相关。非正式地来说,它就是两次观察之间地相似度对他们之间地时间差的函数。它是找出重复模式(如被噪声掩盖的周期信号),或识别隐含在信号谐波频率中消失的基频的数学工具。常用于信号处理中分析函数或者一系列值,如时域信号。
在信号处理中
可以看出在
自相关函数
中所有函数值中0的值最大。
相关函数的应用非常广泛,许多实际问题都可以用相关函数来解决,如测距、噪声源的判断、管道漏点检测等。
先附上例子
求一个离散序列的自相关系数,A = [1 2 3
其中,`x` 是时间序列数据,`lag` 是
自相关函数
的滞后期数。例如,要计算时间序列 `y` 的
自相关函数
在 10 个滞后期的值,可以使用以下代码:
```
matlab
y_
auto
corr
=
auto
corr
(y, 10);
该代码将返回一个包含
自相关函数
值的向量 `y_
auto
corr
`。你也可以通过可视化来查看
自相关函数
的图像,例如:
```
matlab
plot(y_
auto
corr
)
title('
Auto
corr
elation Function')
xlabel('Lag')
ylabel('
Corr
elation')
这将绘制
自相关函数
的图像,并在 X 轴上标记滞后期数,在 Y 轴上标记自相关系数。