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)