时间序列分析中的自相关

article/2025/8/15 22:09:57

什么是自相关以及为什么它在时间序列分析中是有用的。

在时间序列分析中,我们经常通过对过去的理解来预测未来。为了使这个过程成功,我们必须彻底了解我们的时间序列,找到这个时间序列中包含的信息。

自相关就是其中一种分析的方法,他可以检测时间系列中的某些特征,为我们的数据选择最优的预测模型。

在这篇简短的文章中,我想回顾一下:什么是自相关,为什么它是有用的,并介绍如何将它应用到Python中的一个简单数据集。

什么是自相关?

自相关就是数据与自身的相关性。我们不是测量两个随机变量之间的相关性,而是测量一个随机变量与自身变量之间的相关性。因此它被称为自相关。

相关性是指两个变量之间的相关性有多强。如果值为1,则变量完全正相关,-1则完全负相关,0则不相关。

对于时间序列,自相关是该时间序列在两个不同时间点上的相关性(也称为滞后)。也就是说我们是在用时间序列自身的某个滞后版本来预测它。

数学上讲自相关的计算方法为:

其中N是时间序列y的长度,k是时间序列的特定的滞后。当计算r_1时,我们计算y_t和y_{t-1}之间的相关性。

y_t和y_t之间的自相关性是1,因为它们是相同的。

为什么它有用?

使用自相关性来度量时间序列与其自身的滞后版本的相关性。这个计算让我们对系列的特征有了一些有趣的了解:

季节性:假设我们发现某些滞后的相关性通常高于其他数值。这意味着我们的数据中有一些季节性成分。例如,如果有每日数据,并且发现每个 7 滞后项的数值都高于其他滞后项,那么我们可能有一些每周的季节性。

趋势:如果最近滞后的相关性较高并且随着滞后的增加而缓慢下降,那么我们的数据中存在一些趋势。因此,我们需要进行一些差分以使时间序列平稳。

让我们用一个Python示例,来看看他到底是如何工作的

Python示例

我们将使用经典的航空客运量数据集:

https://www.kaggle.com/datasets/ashfakyeafi/air-passenger-data-for-time-series-analysis

 # Import packagesimport plotly.express as pximport pandas as pd# Read in the datadata = pd.read_csv('AirPassengers.csv')# Plot the datafig = px.line(data, x='Month', y='#Passengers',labels=({'#Passengers': 'Passengers', 'Month': 'Date'}))fig.update_layout(template="simple_white", font=dict(size=18),title_text='Airline Passengers', width=650,title_x=0.5, height=400)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ouLNL9a-1668392171266)(http://images.overfit.cn/upload/20221114/b03dd2157ee94e2f8f3ffcc8f3cd7678.png)]

可视化可以看到有明显的上升趋势和年度季节性(按月索引的数据点)。

这里可以使用statsmodels包中的plot_acf函数来绘制时间序列在不同延迟下的自相关图,这种类型的图被称为相关图:

 # Import packagesfrom statsmodels.graphics.tsaplots import plot_acfimport matplotlib.pyplot as plt# Plot autocorrelationplt.rc("figure", figsize=(11,5))plot_acf(data['#Passengers'], lags=48)plt.ylim(0,1)plt.xlabel('Lags', fontsize=18)plt.ylabel('Correlation', fontsize=18)plt.xticks(fontsize=18)plt.yticks(fontsize=18)plt.title('Autocorrelation Plot', fontsize=20)plt.tight_layout()plt.show()

这里我们需要注意到以下几点:

  • 在每12步的滞后中有一个明显的周期性模式。这是由于我们的数据是按月编制的,因此我们的数据具有每年的季节性。
  • 随着滞后量的增加,相关强度总体上呈缓慢下降趋势。这在我们的数据中指出了一个趋势,在建模时需要对其进行区分以使其稳定。
  • 蓝色区域表示哪些滞后在统计上显著。因此在对该数据建立预测模型时,下个月的预测可能只考虑前一个值的~15个,因为它们具有统计学意义。

在值0处的滞后与1的完全相关,因为我们将时间序列与它自身的副本相关联。

总结

在这篇文章中,我们描述了什么是自相关,以及我们如何使用它来检测时间序列中的季节性和趋势。自相关还有其他用途。例如,我们可以使用预测模型残差的自相关图来确定残差是否确实独立。如果残差的自相关不是几乎为零,那么拟合模型可能没有考虑到所有的信息,是可以改进的。

https://avoid.overfit.cn/post/a8c4b5c43e65431dbf026d4f9dd5e1ca

作者:Egor Howell


http://chatgpt.dhexx.cn/article/dP0feCUJ.shtml

相关文章

2020-05-28 关于自相关结果的判断

关于自相关结果的判断 自存的时间序列笔记之n 原假设H0: 自相关系数为0,即不存在自相关 1. 序列存在自相关的判别 ✔️Q统计量大 ✔️ACF与PACF值大且有阶数在二倍标准差之外 最后第X阶在二倍标准差外,X1阶后在二倍标准差内,则称序列为X阶…

自相关函数-浅学

auto-correlation 老板要求做个自相关函数的处理模块,要求逻辑正确,高速处理, c实现, 别人解释了下什么是自相关函数,又查了些资料,记录一些浅薄的理解,理解不一定正确, 先看简单的两条曲线 A…

自相关函数与互相关函数

最近做相关滤波追踪的时候,遇到了瓶颈,所以想从头到尾理一理基础知识。 1、概念 相关函数是描述信号X(s),Y(t)(这两个信号可以是随机的,也可以是确定的)在任意两个不同时刻s、t的取值之间的相关程度。两个信号之间的…

探索数据之自相关图分析(一)

前言: 作为探索数据的第一部分,本文先给出时间序列,自相关图,平稳性检验等概念。后续补充相应的python代码。该篇文章主要摘自王燕的《应用时间序列分析》,有兴趣深入了解的读者可参照这本书。 正文: 时间…

自相关与互相关

自相关(Autocorrelation),也叫序列相关,是一个信号与其自身在不同时间点的互相关。非正式地来说,自相关是对同一信号在不同时间的两次观察,通过对比来评判两者的相似程度。自相关函数就是信号x(t)和它的时移…

异方差、自相关

一、异方差 异方差——用人话解释:随机扰动项的方差跟自变量有关系 异方差的后果: 1、OLS的估计仍然是无偏、一致的 2、T检验、F检验失效 3、高斯马克尔科夫定理使用了同方差假设——OLS不再是BLUE(Best Linear Unbiased Estimation)即无偏最小估计量…

第三章 正态性检验、自相关检验与异方差性检验

知识回顾(Knowledge review) 第二章 模型的估计与结果:https://blog.csdn.net/ChenQihome9/article/details/82818974 第一节 检验的步骤和过程 估计的模型要符合计量经济学的前提假设,如果违反了经典假设,那么会导致…

时间序列之向量自回归检验VAR(自相关性)(2)

一、基本概念 对于模型 y t b 0 b 1 x 1 t b 2 x 2 t ⋯ b k x k t u t y_{t} b_{0} b_{1}x_{1t}b_{2}x_{2t}\cdotsb_{k}x_{kt}u_{t} yt​b0​b1​x1t​b2​x2t​⋯bk​xkt​ut​如果随机误差项 u t u_{t} ut​的各期望值之间存在着相关关系,即 C o v ( u i…

【零基础Eviews实例】02自相关(序列相关)的检验与修正

使用说明 本文档主要介绍关于线性回归模型的自相关(又叫序列相关)的检验(图像法、辅助回归、DW检验与LM检验)与修正(广义差分最小二乘法,GLS)。使用软件为Eviews 9。 关于一些提到的基本操作可…

【Python计量】自相关性(序列相关性)的检验

文章目录 一、图示法(一)滞后图(二)自相关图(三)自相关图和偏自相关图 二 、DW检验法三、Breusch-Godfrey检验(一)手动编制函数进行BG检验(二)调用statsmodel…

计量经济学笔记6-Eviews操作-自相关的检验与消除(DW、LM检验与FGLS、广义差分变换)

完成期末作业的同时来更一下博客 背景介绍 对中国储蓄存款总额(Y,亿元)与GDP(亿元)两个变量进行一元线性回归,检验并消除自相关。 自相关分为一阶自相关和高阶自相关,通常使用DW检验来查看是…

应用回归分析(知识点整理)(四)——SPSS处理自相关(序列相关)

文章目录 自相关自相关产生的原因自相关产生的后果自相关的检验方法图示检验法自相关系数法DW(杜宾沃森)检验 自相关的消除迭代法差分法SPSS处理自相关示例 自相关 自相关产生的原因 (1)忽略遗漏了关键变量 (2&#…

计量经济学笔记——自相关的检验和处理(转载)

自相关(序列相关);线性相关模型中的随机误差项的各期望值之间存在相关关系 如果随机干扰项之间不存在自相关,εt和εts的协方差为0 序列相关的形式:1)一阶序列相关:干扰项只与其滞后一期值相关 2&#xff0…

线性回归:自相关检测及其处理方法

1 自相关的定义 1.1 定义 对于线性回归模型 Y i β 0 β 1 X 1 i β 2 X 2 i ⋯ β n X n i u i Y_{i}\beta_{0}\beta_{1}X_{1i}\beta_{2}X_{2i}\dots\beta_{n}X{ni}u_{i} Yi​β0​β1​X1i​β2​X2i​⋯βn​Xniui​在其他经典假定不变的条件下,若 C o v …

相同数相乘

#include <stdio.h> int main() { long term0,sum0; int a,i,n; printf("input a,n:"); scanf("%d,%d",&a,&n); for(i1;i<n;i) { termterm*10a; sumsumterm; } printf("sum%1d\n",sum); }

实现两个矩阵相乘

题目&#xff1a;实现两个矩阵相乘。 想法&#xff1a; 通过分析矩阵相乘可假设变量i,j,k控制下标&#xff0c; 则有以下公式&#xff1a; c[i][j]a[i][k]*b[k][j]&#xff08;三个变量循环次数&#xff1a;i>j>k&#xff09; 所以可以使用三次循环解出相乘的每个数…

c++两个特别大的数之间相乘怎么计算?

两个数特别大&#xff0c;相乘起来超过了long int型的范围&#xff1f;怎么计算&#xff1f; 比如&#xff1a;要计算123456789987654321 * 987654321123456的值&#xff0c;怎么写程序&#xff1f; /* large_num_operation.cpp */ #include <iostream> #include <cst…

两个整数相乘的java实现

package 乘法; /* 求 345*7893 4 5X7 8 9———————————————————————— */ public class Chengfa { public static void main(String[] args) {//乘数1 将两个乘数分别出入两个数组中&#xff0c;//数组中的元素对应的位置分别是个位 十位 百位 数组[…

在Java中实现两数相乘

要实现两数相乘算总额&#xff1a;input1.value() * input2.value() 如果直接获取到两个input值相乘&#xff0c;那么结果就有一点点小偏差&#xff0c;是因为精度缺失 $("#totalSum").val(input1.value() * input2.value()); Js代码&#xff1a; //期初库存 按钮…