9

在 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"

在此处输入图像描述

4

2 回答 2

9

我查看了该函数,但看不到提取置信区间的简单方法。区域在plot.acf函数中计算。要查看此功能,请使用

getS3method("plot", "acf")

在这个函数中,有一个变量clim,这就是你想要的。最简单的方法是复制plot.acfmyplot.acf,但返回clim值。

于 2013-01-10T20:44:20.447 回答
6

我知道这个问题已经很老了,但是如果有人确实想要置信区间值,那么它只是置信水平的 z 值除以所用观察次数的 sqrt。在plot.acf函数中,这是在这里计算的:

clim0 <- if (with.ci) 
    qnorm((1 + ci)/2)/sqrt(x$n.used)

其中with.ci是一个逻辑值,指示用户是否想要绘制置信区间,并且ci是所需的置信水平(例如 0.95、0.9 等...)

编辑:如果您假设滞后值是白噪声,这是置信区间,如果不是这种情况,您可以应用校正

clim <- clim0 * sqrt(cumsum(c(1, 2 * x$acf[-1, i, j]^2)))

您可以在此处阅读更多相关信息

于 2017-08-17T15:40:02.817 回答