[英]How to calculate p-values from cross-correlation function in R
我使用R中的ccf()
計算了兩個時間序列的互相關性。我知道如何得出置信限為:
ccf1 <- ccf(x=x,y=y,lag.max=5,na.action=na.pass, plot=F)
upperCI <- qnorm((1+0.95)/2)/sqrt(ccf1$n.used)
lowerCI <- -qnorm((1+0.95)/2)/sqrt(ccf1$n.used)
但是我真正需要的是最大相關性的p值。
ind.max <- which(abs(ccf1$acf[1:11])==max(abs(ccf1$acf[1:11])))
max.cor <- ccf1$acf[ind.max]
lag.opt <- ccf1$lag[ind.max]
如何計算此p值? 我搜索過高低,但在任何地方都找不到很好的答案。
獲得p值很簡單。
在零假設下,相關為0,它是正態分布的:
Z ~ N(0, 1/sqrt(ccf1$n.used))
因此,對於您觀察到的最大相關max.cor
,其p值就是概率Pr(Z > |max.cor|)
,可以通過以下公式計算:
2 * (1 - pnorm(abs(max.cor), mean = 0, sd = 1/sqrt(ccf1$n.used)))
跟進
真的那么簡單嗎?
ccf
一次計算許多相關性!
您是說ccf
是以不同的延遲計算相關性嗎? 好吧,如果您有大量觀察值N
,則每個滯后的ACF的標准偏差都相同: 1/sqrt(N)
。 這就是為什么置信區間為兩條水平線的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.