在ccf中,当我给出plot = TRUE的选项时,我会得到一个图,它给出了我在每个滞后时的交叉相关的95%置信区间截止值。 我的问题是,如果我想使用90%的置信水平,我该怎么做?感谢。
答案 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并用自己的数据招募数据,你们都已经准备好了! 希望它有效!