str*_*Bus 2 r time-series cross-correlation p-value
我使用 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)
Run Code Online (Sandbox Code Playgroud)
但我真正需要的是最大相关性的 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]
Run Code Online (Sandbox Code Playgroud)
如何计算这个 p 值?我到处搜索,但在任何地方都找不到好的答案。
获取 p 值很简单。
在相关性为 0 的零假设下,它服从正态分布:
Z ~ N(0, 1/sqrt(ccf1$n.used))
Run Code Online (Sandbox Code Playgroud)
因此,对于观察到的最大相关性max.cor,其 p 值就是概率Pr(Z > |max.cor|),可以通过以下方式计算:
2 * (1 - pnorm(abs(max.cor), mean = 0, sd = 1/sqrt(ccf1$n.used)))
Run Code Online (Sandbox Code Playgroud)
跟进
真的有那么简单吗?它
ccf同时计算许多相关性!
你是说这ccf是计算不同滞后的相关性吗?好吧,如果您有大量观测值N,每个滞后处的 ACF 标准差是相同的:1/sqrt(N)。这就是为什么置信区间是两条水平线。
| 归档时间: |
|
| 查看次数: |
3989 次 |
| 最近记录: |