如何在 R 中使用 ccf 设置互相关的置信度

How to set the confidence level for cross correlation using ccf in R

在 ccf 中,当我选择 plot=TRUE 时,我会得到一个图,它为我在每个滞后的互相关提供 95% 的置信区间截止值。 我的问题是,如果我想使用 90% 的置信水平,我该怎么做?谢谢。

我相信通过设置 Plot=Tccf 函数将其结果传递给 acf,然后传递给 plot.acf函数。 plot.acf 是计算置信区间的地方。你可以用“:::”设备看到它

stats:::plot.acf

你应该会看到类似的东西:

function (x, ci = 0.95, type = "h", xlab = "Lag", ylab = NULL .....etc.

建议在ccf函数中设置plot=F,然后使用plot 单独运行,改变置信区间 (ci)。您可以使用以下代码执行此操作:

plot(x, ci = 0.90, type = "h", xlab = "Lag", ylab = NULL,
 ylim = NULL, main = NULL,
 ci.col = "blue", ci.type = c("white", "ma"),
 max.mfrow = 6, ask = Npgs > 1 && dev.interactive(),
 mar = if(nser > 2) c(3,2,2,0.8) else par("mar"),
 oma = if(nser > 2) c(1,1.2,1,1) else par("oma"),
 mgp = if(nser > 2) c(1.5,0.6,0) else par("mgp"),
 xpd = par("xpd"),
 cex.main = if(nser > 2) 1 else par("cex.main"),
 verbose = getOption("verbose"),
 ...)

LINK: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/plot.acf.html

由于您没有提供任何实际示例数据,我将向您展示一个包含两个常见时间序列的示例:recruit.dat 和 soi.dat。逐行 运行 这个脚本并尝试理解每一行的作用。

#import data from web:
soi = ts(scan("http://anson.ucdavis.edu/~shumway/soi.dat"), start=1950,   frequency=12)
rec = ts(scan("http://anson.ucdavis.edu/~shumway/recruit.dat"), start=1950, frequency=12)

#run simple ccf function with plot=F
ccfvalues =ccf (soi, rec, plot=F)

#now run a plot function, with the desired confidence interval. Simple as that!
plot (ccfvalues, ci=0.90, type = "h", xlab = "Lag", ylab = NULL,ylim = NULL, main = NULL,ci.col = "blue", ci.type = c("white", "ma"),max.mfrow = 6, ask = Npgs > 1 && dev.interactive(),mar = if(nser > 2) c(3,2,2,0.8) else par("mar"),oma = if(nser > 2) c(1,1.2,1,1) else par("oma"),mgp = if(nser > 2) c(1.5,0.6,0) else par("mgp"),xpd = par("xpd"),cex.main = if(nser > 2) 1 else par("cex.main"),verbose = getOption("verbose"))

将 soi 和招募数据替换为您自己的数据,一切就绪! 希望有用!