R 的 ccf 和 Julia 的 crosscor 中使用的方程式是什么?
What is the equation used in R's ccf and Julia's crosscor?
我一直在为这件事绞尽脑汁。现在,除了 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 来解决("easily" 是相对的,当你需要一个小时的时间来计算时),这些数字与我熟悉的任何方程式都不相似与(反正不多)。
所以,我打开了我的统计教科书,发现了很多我不打算用笔和纸测试的其他公式。我一度怀疑从向量中删除均值起到了作用,所以我尝试不这样做(遗憾的是,这只能在 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
但这仍然不像我用笔和纸计算的归一化互相关(我可能犯了未决错误)。
简而言之:我需要引用公式,那是什么?
我认为根据 Whosebug 的使用条款可以在此处引用此摘录吗?从 Venables 和 Ripley (2002) 的第 390 页(第 14.1 节)中,您可以找到他们在此处用于 acf()
函数的定义:
如果您查看 R 中 ccf()
函数的源代码(在提示符下键入 "ccf"),您可以看到 acf()
是如何使用的,并且可以询问以上acf()
实现与计算有关。
我一直在为这件事绞尽脑汁。现在,除了 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 来解决("easily" 是相对的,当你需要一个小时的时间来计算时),这些数字与我熟悉的任何方程式都不相似与(反正不多)。
所以,我打开了我的统计教科书,发现了很多我不打算用笔和纸测试的其他公式。我一度怀疑从向量中删除均值起到了作用,所以我尝试不这样做(遗憾的是,这只能在 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
但这仍然不像我用笔和纸计算的归一化互相关(我可能犯了未决错误)。
简而言之:我需要引用公式,那是什么?
我认为根据 Whosebug 的使用条款可以在此处引用此摘录吗?从 Venables 和 Ripley (2002) 的第 390 页(第 14.1 节)中,您可以找到他们在此处用于 acf()
函数的定义:
如果您查看 R 中 ccf()
函数的源代码(在提示符下键入 "ccf"),您可以看到 acf()
是如何使用的,并且可以询问以上acf()
实现与计算有关。