Python计算离散序列的自相关函数
离散时间序列的自相关函数其实就是若干阶自相关系数的组合,其中,自相关系数的计算公式如下:
其中 h 为阶数,μ为序列的均值,比如计算离散时间序列 :
[2, 3, 4, 3, 7] 的自相关函数
首先计算 0 阶自相关系数为 1,然后计算 1 阶自相关系数,均值
μ = (2 + 3 + 4 + 3 + 7) / 5 = 3.8,则分母![在这里插入图片描述](https://img-blog.csdnimg.cn/20191202192756831.png)
1 阶自相关系数为 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191202193103566.png)
同理可计算 2、3……阶自相关系数,最后组合在一起就是离散时间序列的自相关函数。用 python 计算的如下:
在这里插入代码片
import statsmodels.tsa.api as smt
time_series = [2, 3, 4, 3, 7]
acf = smt.stattools.acf(time_series)
print(acf)
结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191202193634166.png)
这里求得的自相关函数的取值范围在 [-1, 1] 之间
自相关函数同样可以用 MATLAB 中的库函数 autocorr() 计算,代码如下:
X = [2 3 4 3 7];
[ACF, ~, ~] = autocorr(X, length(X) - 1);
结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191202194112331.png)