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

时间:2016-04-27 18:49:56

标签: r correlation cross-correlation

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

1 个答案:

答案 0 :(得分:0)

我相信通过设置Plot=T ccf 函数会将其结果传递给 acf ,然后传递给 plot.acf 函数。 plot.acf 是计算置信区间的位置。您可以使用" :::"设备

stats:::plot.acf

你应该看到类似的东西:

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

我建议您在 ccf 功能中设置plot=F,然后单独使用情节功能,更改置信区间( 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并用自己的数据招募数据,你们都已经准备好了! 希望它有效!