在R中,我们可以运行时间序列的ACF相关图,置信区间带将以浅蓝色绘制。但是当我拉ACF对象的结构时,我找不到这些值。有人知道如何提取置信区间带的值吗?
例如:
List of 6
$ acf : num [1:27, 1, 1] 1 0.06453 -0.06354 0.00213 -0.01324 ...
$ type : chr "correlation"
$ n.used: int 501
$ lag : num [1:27, 1, 1] 0 1 2 3 4 5 6 7 8 9 ...
$ series: chr "tser[i:(i + 500)]"
$ snames: NULL
- attr(*, "class")= chr "acf"
3条答案
按热度按时间t5fffqht1#
我已经看过这个函数了,但我找不到一个简单的方法来提取置信区间。区域是在
plot.acf
函数中计算的。要查看这个函数,请使用在这个函数中,有一个变量
clim
,这就是你要找的变量。最简单的方法是把plot.acf
复制到myplot.acf
,但是返回clim
的值。tzdcorbm2#
我知道这个问题已经很老了,但是如果有人想要置信区间的值,那就是置信水平的z值除以观测值的平方。在
plot.acf
函数中,计算如下:其中
with.ci
是指示用户是否想要绘制置信区间的逻辑值,并且ci
是期望的置信水平(例如.95、.9等)编辑:这是置信区间,如果你假设滞后值是白色噪声,如果不是这种情况,有一个修正,你可以应用
您可以阅读更多有关here的信息
50pmv0ei3#
好的,我们有一个序列
X
,我们使用内置的stats::acf
函数来计算自相关函数的值。您将得到一个图,其中置信区间为常数值
acf(X, ci.type="white")
(对于默认白噪声零假设)或非常数值acf(X, ci.type="ma")
(对于移动平均假设)。* 有关差异的信息,请参阅plot.acf
的文档。*然而,与直觉相反的是,
acf()
返回的对象中并没有包含这些图中的置信区间数据,但是,你仍然可以很容易地自己得到这些数据,为了直接回答你的问题,这里有一个函数可以从一个"acf"对象中得到这些置信区间(受@csgillespie建议的启发):像这样使用它
一个一个二个一个一个一个三个一个一个一个一个一个一个四个一个一个一个一个一个五个一个
现在,为了证明这是有效的,并且因为它可能是有用的,这里有一个函数,它使
ggplot2
图与上面的默认基本R图相对应。为了检查这是否正常工作,我们将生成的ggplot对象绘制在
plot.acf
生成的相应基本R图旁边。