我对此一直很摸不着头脑。现在,除了 Julia 在滞后方面给出了看似倒退的结果
julia> crosscor([1,2,3,4], [1,2,3,1])'
1x7 Array{Float64,2}:
-0.30339 0.0 0.64049 0.13484 -0.37081 -0.40452 0.30339
> print(ccf(c(1,2,3,4), c(1,2,3,1), type="correlation", plot=F))
Autocorrelations of series ‘X’, by lag
-3 -2 -1 0 1 2 3
0.303 -0.405 -0.371 0.135 0.640 0.000 -0.303
通过反转 x 和 y 可以很容易地解决这个问题(“容易”是相对的,当你需要花费一个小时才能弄清楚时),这些数字与我熟悉的任何方程都不相似(它们不是无论如何,不多)。
所以,我打开了我的统计教科书,发现了许多其他公式,我不会用笔和纸来测试它们。我一度怀疑从向量中删除均值发挥了作用,所以我尝试不这样做(遗憾的是,这只能在 Julia 中完成)
julia> crosscor([1,2,3,4], [1,2,3,1], demean=false)'
1x7 Array{Float64,2}:
0.188562 0.518545 0.942809 0.848528 0.518545 0.235702 0.0471405
但这仍然不像我用笔和纸计算的归一化互相关(我可能犯了未决的错误)。
简而言之:我需要引用公式,那么它是什么?
最佳答案
我认为根据 StackOverflow 的使用条款可以在这里引用这段摘录吗?从 Venables 和 Ripley (2002) 的第 390 页(第 14.1 节)中,您可以找到他们在此处使用的 acf()
函数的定义:
如果您查看 R 中 ccf()
函数的源代码(在提示符处输入“ccf”),您可以看到 acf()
是如何被执行的使用并可以询问上述 acf()
实现如何与计算相关。
关于r - R 的 ccf 和 Julia 的 crosscor 中使用的方程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30917082/