如何在ccf()中手动计算ci.type ='ma'

时间:2015-07-27 21:41:14

标签: r cross-correlation

我一直在尝试手动计算ci.type ='ma'的置信区间。我读了一篇相关的帖子(cross-correlation using ccf in R),这篇文章很有帮助,但我对这个细节很感兴趣。

getAnywhere(plot.acf)

到目前为止,我有:

x <- ccf(x=x,y=y,ci.type='ma')

clim0 <- qnorm((1+0.95)/2)/sqrt(x$n.used) # upper CI when ci.type=NULL
clim <- clim0 + * sqrt(cumsum(c(1, 2 * x$acf[-1, 
                                               i, i]^2)))  # from getAnywhere(plot.acf)

但我不明白我是如何在功能细节中定义的。有人曾经这样做过吗?

1 个答案:

答案 0 :(得分:2)

调用getAnywhere(plot.acf),i从1开始迭代到系列的长度:

for (i in 1L:nser) {
                clim <- clim0 * sqrt(cumsum(c(1, 2 * x$acf[-1, 
                  i, i]^2)))
                ylim <- range(c(-clim, clim, ylim))
            }

但是,在acf函数中,您可以使用ci.type='ma'为ci指定“ma” 见https://stat.ethz.ch/R-manual/R-devel/library/stats/html/acf.html