Math 一个关于互相关的问题&;相关系数

Math 一个关于互相关的问题&;相关系数,math,matlab,data-analysis,cross-correlation,Math,Matlab,Data Analysis,Cross Correlation,可能重复: 当我在MATLAB中交叉关联两个数据集a和b(每73个点长)并将其绘制成图形时,它看起来像一个有145个点的三角形。当我绘制范围为+/-1的互相关输出时,我混淆了相关系数和三角形图形。你读过该函数返回的结果了吗? c=xcorr(x,y)返回长度2*N-1向量中的互相关序列,其中x和y是长度N向量(N>1) 2*73-1=145。下面的公式解释了原因。我认真地认为您需要从统计学书籍中阅读更多关于互相关函数和相关系数的内容,因为您在这里的困惑比与MATLAB相关的问题更为根本。除非

可能重复:


当我在MATLAB中交叉关联两个数据集
a
b
(每73个点长)并将其绘制成图形时,它看起来像一个有145个点的三角形。当我绘制范围为+/-1的互相关输出时,我混淆了相关系数和三角形图形。

你读过该函数返回的结果了吗?

c=xcorr(x,y)
返回长度
2*N-1
向量中的互相关序列,其中
x
y
是长度
N
向量
(N>1)


2*73-1=145
。下面的公式解释了原因。

我认真地认为您需要从统计学书籍中阅读更多关于互相关函数和相关系数的内容,因为您在这里的困惑比与MATLAB相关的问题更为根本。除非你知道你在处理什么,否则你就无法理解MATLAB给你的东西,即使你的程序是正确的

互相关: 这是你在一个公司所做的。考虑数据<代码> < <代码> > <代码> b>代码>如下< /p>
    A                   B

    x                   
x   |       x           x   
|   |       |       x   |   
|   |   x   |       |   |   x
|   |   |   |       |   |   |
---------------     -----------
0   1   2   3       0   1   2 
然后取
B
并将其滑动到底,以便
B
的最后一点和
A
的第一点对齐:

                x                   
            x   |       x 
            |   |       |   
            |   |   x   |       
            |   |   |   |
----x---x------------------
   -2  -1   0   1   2   3

        x   
    x   |   
    |   |   x
    |   |   |
----------------x---x---x--
   -2  -1   0   1   2   3
在数据不存在的地方填写零,即在本例中,
B
超过0,而
A
在0之前。然后将它们逐点相乘并相加,将
0+0+3+0+0+0+0=3
作为互相关的第一个点

然后向右滑动
B
一步并重复

            x                   
        x   |       x 
        |   |       |   
        |   |   x   |       
        |   |   |   |
----x------------------
   -1   0   1   2   3

        x   
    x   |   
    |   |   x
    |   |   |
----------------x---x--
   -1   0   1   2   3
0+9+4+0+0=13
作为互相关的第二个点。您一直这样做,直到将
B
滑到
A
的另一端

结果向量是
length(A)+length(B)-1
,因为我们从0开始重叠,所以它少了一点。所以这里你应该得到互相关的
3+4-1=6
点,在你的例子中,你应该得到
73+73-1=145

如您所见,任何点处的互相关向量值不必在±1范围内。当两个数据向量“最相似”时,互相关具有最大值。峰值与零的“偏移”表示两个数据集之间的“滞后”

相关系数 (我假设皮尔逊的)仅仅是一个定义为

            Covariance(A,B)
r = --------------------------------
    ________________________________
  \|Covariance(A,A)*Covariance(B,B)
其中,
协方差(A,A)
更好地称为
方差(A)
。这是一个范围从
-1
1
的数量(至于为什么必须在±1之间,请查阅)

注:
虽然可以确定计算两个数据点不相等的数据向量的互相关,但不能计算它们的相关系数。协方差的概念是衡量两个变量/数据集如何一起变化的一种方法,并不是为不相等的数据集定义的。

那么它只是显示了两个图的相似程度吗?顺便说一下,谢谢你的长篇大论answer@Tyler31:更好的说法是,它测量两个向量/数据集/时间序列的相似性,作为滞后的函数…@Tyler31:BTW,MATLAB中的互相关仅当您使用
'coeff'
选项要求它返回-1和1之间的值时才返回。感谢您帮助我解决术语混淆问题。非常感谢您,Lorem,感谢您对互相关工作原理的精彩解释。我知道这是一条老线索(而且是重复的),但这个答案可能是我见过的最好的。