2016-04-27 6 views
1

В ccf, Когда я даю опцию plot = TRUE, я получу график, который дает мне 95% доверительных интервалов для моих кросс-корреляций при каждое отставание. Мой вопрос: если я хочу использовать уровень доверия 90%, как я могу это сделать? Благодарю.Как установить уровень достоверности для кросс-корреляции с использованием ccf в R

+1

Если это поможет, если вы включили [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) с образцами входных данных и кодом, который вы бегут. Выясните, какие пакеты и функции вы используете. – MrFlick

ответ

0

Я считаю, что, установив Plot=T, CCF функция передает свои результаты ACF, а затем в plot.acf функции. plot.acf где рассчитывается доверительный интервал. Вы можете увидеть его с ":::" устройства

stats:::plot.acf 

Вы должны увидеть что-то simmilar:

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

Я предлагаю вам установить plot=F в CCF функции, а затем использовать участок функция отдельно, изменение доверительного интервала (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 и сой .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 и набирайте данные своими силами, и все готово! Надеюсь, это сработает!

+0

Благодарим вас за ответ. Но я получаю эту ошибку при использовании функции plot(), которую вы даете мне в качестве примера. ccf = ccf (mei [, 2], n.mt1021960 [, names (n.mt1021960) == 'Annual']) Затем я заменяю x в вашей функции plot() ccf, и я получаю это: Ошибка: «...» используется в некорректном контексте. Не могли бы вы мне помочь? Благодарю. –

+0

x следует заменить вашими результатами! – Dfinzgar

+0

Если вы публикуете свой код, я могу исправить его для вас. – Dfinzgar