A Gentle Introduction to Autocorrelation and Partial Autocorrelation (译文)

A Gentle Introduction to Autocorrelation and Partial Autocorrelation

自相关和偏自相关的简单介绍

自相关(Autocorrelation)和偏自相关(partial autocorrelation)图在时间序列分析和预测被广泛应用。

这些图以图形方式总结了时间序列中的观测值(observation)和先前时间步中的观测值(observation)之间关系的强度。自相关和偏自相关之间的区别对于初学者进行时间序列预测来说可能是困难并且疑惑的。

在本教程中,您将了解如何使用Python计算和绘制自相关和偏自相关图。

完成本教程后,您将知道:

  • 如何绘制和检查时间序列的自相关函数。
  • 如何绘制和检查时间序列的偏自相关函数。
  • 自相关与偏自相关函数在时间序列分析中的区别。

让我们开始吧。

每日最低温度数据集

这个数据集描述了澳大利亚墨尔本市十年(1981-1990)的每日最低温度。

单位是摄氏度,共有3650个观测值。数据的来源是澳大利亚气象局。

了解更多信息并从Dara Market下载该数据集

下载数据集并将其放在当前工作目录中,文件命名为“ daily-minimum-temperatures.csv ”。

注意:下载的文件包含一些问号(“?”)字符,在使用数据集之前必须将其删除。在文本编辑器中打开文件并删除“?”字符。也请删除该文件中的任何页脚信息。

下面的例子将会加载“每日最低温度数据集”并绘制时间序列图。

from pandas import Series
from matplotlib import pyplot
series = Series.from_csv('daily-minimum-temperatures.csv', header=0)
series.plot()
pyplot.show()

运行该示例将数据集加载为Pandas Series,并创建一个时间序列的线图。

每日最低温度数据集图

相关和自相关

统计相关性总结了两个变量之间关系的强度。

我们可以假设每个变量的分布符合高斯(钟形曲线)分布。如果真的是这种情况,我们可以用皮尔逊相关系数(Pearson’s correlation coefficient)来总结变量之间的相关性。

皮尔逊相关系数(Pearson’s correlation coefficient)是介于-1和1之间的数字,分别描述负相关或正相关。零值表示不相关。

我们可以以先前的时间步观测值计算时间序列观测值的相关性,称为lags(滞后)。因为时间序列观测值的相关性是用前一次同一系列的观测值计算的,所以称为序列相关或自相关。

通过lags产生的时间序列自相关图被称为AutoCorrelation Function(自相关函数,如果直译的话,译者注),或简称ACF。这个图有时被称为相关图或自相关图。

下面是使用statsmodels库中的plot_acf()函数计算和绘制Minimum Daily Temperatures的自相关图的示例。

from pandas import Series
from matplotlib import pyplot
from statsmodels.graphics.tsaplots import plot_acf
series = Series.from_csv('daily-minimum-temperatures.csv', header=0)
plot_acf(series)
pyplot.show()

运行该示例将创建一个二维图,显示沿x轴的滞后值以及在-1和1之间的y轴上的相关性。

置信区间(Confidence intervals)被描绘成一个圆锥体。默认情况下,会被设置为95%的置信区间,表明这个代码之外的相关值很可能是一次相关而不是一个统计上的偶然事件。

每日最低温度数据集的自相关图

默认情况下,所有的滞后值(lag values)都会打印出来,这使得图表噪音很大(指图表上干扰数据太多,译者注)。

我们可以将x轴上的滞后数量限制为50,以使图更容易阅读。

使用较少滞后的每日最低温度数据集自相关图

偏自相关函数

偏自相关是时间序列中的观测值与去除掉干预观测值之间的关系的前先前时间步观测值之间的关系的摘要。

滞后(lag)为K的偏自相关是这样的相关,它去除了由于更短的滞后(lags)引起的任何相关 —— 第81页,第4.5.6节偏自相关,Introductory Time Series with R(时间序列的R实现导论)

在先前的时间步中的观测值和观测值的自相关包括直接相关和间接相关。这些间接相关性是观测值相关性的线性函数,包括在干预时间步上的观测值。

偏自相关函数试图消除这些间接相关性。没有进入数学的领域,这是偏自相关的直观认识(intuition)(intuition有凭直觉感知的知识的意思,这里是意译)。

下面的示例使用statsmodels库中的plot_pacf()计算并绘制出使用前50个滞后的的每日最低温度数据集偏自相关函数。

from pandas import Series
from matplotlib import pyplot
from statsmodels.graphics.tsaplots import plot_pacf
series = Series.from_csv('daily-minimum-temperatures.csv', header=0)
plot_pacf(series, lags=50)
pyplot.show()

运行该示例创建了使用前50个滞后(lags)的偏自相关的二维图。

每日最低温度数据集的偏自相关图

ACF和PACF图的直观认识(intuition)

自相关函数图和时间序列的偏自相关函数说明了一个完全不同的事情。

我们可以用ACF和PACF的直观认识(intuition)来探索一些思想实验。

自回归直观认识(intuition)

考虑由自回归(AR)过程产生的滞后时间为k的时间序列。

我们知道,ACF描述了一个观测值与另一个观测值之间的自相关,包括直接和间接的相关性信息。

这意味着我们可以预期AR(k)时间序列的ACF强大到(如同使用了)k的滞后,并且这种关系的惯性将继续到之后的滞后值,随着效应被削弱而在某个点上缩小到没有。

我们知道,PACF只描述观测值与其滞后(lag)之间的直接关系。这表明,超过k的滞后值(lag value)不会再有相关性。

这正是ACF和PACF图对AR(k)过程的预期。

滑动平均直观认识(Moving Average Intuition)

考虑由滑动平均(MA)过程产生的滞后(lag)时间为k的时间序列。

请记住,滑动平均过程是先前预测的残留偏差的时间序列的自回归模型。考虑滑动平均模型的另一种方法是根据最近预测的错误修正未来的预测。

我们期望MA(k)过程的ACF与最近的lag值之间的关系显示出强烈的相关性,然后急剧下降到低或者无相关性。根据定义,这解释了整个过程是如何产生的。

对于PACF,我们预计图会显示与滞后(lag)的关系,以及滞后(lag)之前的相关。

再次强调,这正是MAF(k)过程的ACF和PACF图的预期。

概要

在本教程中,您了解了如何使用Python计算时间序列数据的自相关和偏自相关图。

具体来说,你了解到:

  • 如何计算和创建时间序列数据的自相关图。
  • 如何计算和创建时间序列数据的偏自相关图。
  • 解释ACF和PACF图的区别和直观认识(intuition)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏奇点大数据

阿里巴巴最新实践:TVM+TensorFlow优化GPU上的神经机器翻译

本文是阿里巴巴 PAI-Blade 团队发表于 TVM 的最新博文,文中阐述了如何将 TVM 引入 TensorFlow,使 TensorFlow 中的 bat...

5405
来自专栏ATYUN订阅号

基于计算机视觉和OpenCV:创建一个能够计算道路交通流量的应用

本文将介绍如何在不需要大量的深度学习算法的情况下,基于计算机视觉来计算道路交通流量。本教程只使用Python和OpenCV,在背景差分算法的帮助下,实现非常简单...

3006
来自专栏PPV课数据科学社区

大数据竞赛平台-Kaggle入门篇

本文作者: wopon_ 来源:36大数据 本文长度为1500字,建议阅读4分钟 这篇文章适合那些刚接触Kaggle、想尽快熟悉Kaggle并且独立完成一个竞赛...

4738
来自专栏机器学习算法与理论

调用Dlib库进行人脸关键点标记

       昨天调试了人脸识别(classifier_webcam)这个程序,效果不错,响应速度也挺快。按照http://blog.csdn.net/u011...

4669
来自专栏尾尾部落

使用自己的语料训练word2vec模型

先对新闻文本进行分词,使用的是结巴分词工具,将分词后的文本保存在seg201708.txt,以备后期使用。

8572
来自专栏新智元

【重磅】Jeff Dean等提出自动化分层模型,优化CPU、GPU等异构环境,性能提升超 60%

谷歌大脑Jeff Dean等人最新提出一种分层模型,这是一种灵活的端到端方法,用于优化CPU、GPU等的自动化设备配置。该方法在多个主要神经网络模型上测...

3357
来自专栏ATYUN订阅号

使用Python进行人脸聚类的详细教程

思考下面这个场景:两名劫匪在抢劫波士顿或纽约等繁华城市的银行。银行的安全摄像头工作正常,捕捉到了抢劫行为,但劫匪戴着头套,没办法看到他们的脸。

5812
来自专栏AI科技大本营的专栏

能在不同的深度学习框架之间转换模型?微软的MMdnn做到了

Microsoft/MMdnn:深度学习框架随心切换 学习深度学习的各位同学都希望自己的模型能在不同的深度学习框架之间随意转换,比如,斯坦福大学CVGL实验室的...

41511
来自专栏AI科技大本营的专栏

AI 技术讲座精选:如何在时间序列预测中使用LSTM网络中的时间步长

Keras中的长短期记忆(LSTM)网络支持时间步长。 这就引出这样一个问题:单变量时间序列的滞后观察是否可以用作LSTM的时间步长,这样做是否能改进预测性能...

4575
来自专栏人工智能

使用10几行Python代码,快速建立视觉模型识别图像

视觉 进化的作用,让人类对图像的处理非常高效。 这里,我给你展示一张照片。 ? 如果我这样问你: 你能否分辨出图片中哪个是猫,哪个是狗? 你可能立即会觉得自己遭...

3979

扫码关注云+社区

领取腾讯云代金券