R中的函数acf计算自相关

Posted

技术标签:

【中文标题】R中的函数acf计算自相关【英文标题】:Function acf in R to calculate autocorrelation 【发布时间】:2020-03-11 01:53:56 【问题描述】:

我想计算时间序列的自相关(滞后 1)。为此,我使用了 R 中的 acf() 函数。具体来说,我模拟了以下序列

x<-c(-2,-2*0.9^c(1:50))

所以理论上自相关应该是 0.9。但是,如果我运行以下命令

acf(x[1:10],1,plot=F)

回报为0.69,与理论值相差甚远。我在这里做错了吗?

【问题讨论】:

就像 Harro 解释的那样,这是一个小样本。如果你自己计算,你会得到同样的结果。一切都与公式有关,当您使用更多数据时,它会变得更准确 【参考方案1】:

如果您不对前十个观察值进行子集化,则原始序列没有问题。

如果你运行以下命令

acf(x,1,plot=F)

您会看到现在滞后 1 处的自相关系数等于 0.889。通过对 ACF 函数的输入进行子集化,您要求只为这 10 个观测值返回自相关函数,而不是为整个系列返回自相关函数。这就是为什么当你运行时

acf(x[1:10],1,plot=F)

您在滞后 1 处获得等于 0.69 的自相关系数。

不同之处在于样本估计的工作方式。时间序列分析的许多结果需要大样本才能收敛到参数的实际值。通过将其限制为仅 10 次观察,您必然会有很大的可变性。

另外,如果您创建以下系列:

x<-c(-2,-2*0.9^c(1:1000))

并通过 acf() 函数运行整个系列,您将得到滞后 1 处的自相关系数等于 0.9 希望对您有所帮助。

【讨论】:

以上是关于R中的函数acf计算自相关的主要内容,如果未能解决你的问题,请参考以下文章

python使用statsmodels包中的tsa.acf函数计算时间序列数据所有滞后位置个数(级别)的自相关性tsaplots函数可视化时间序列数据所有滞后位置个数(级别)的自相关性

python使用statsmodels包中的tsa.acf函数指定nlags参数计算指定滞后位置个数(级别)时间序列数据自相关性(autocorrelation for specific lag)

R中ACF和PACF的显着性水平

计算自相关系数acf和偏相关系数pacf

计算互相关函数?

r语言自相关acf是啥图