我想在Matlab中计算Pearson's correlation coefficent(不使用Matlab的corr
函数)。在Matlab中Pearson's系数和协方差计算
简单地说,我有两个矢量A和B(它们中的每是1×100),我试图以计算这样的皮尔森系数:
P = cov(x, y)/std(x, 1)std(y,1)
我使用Matlab的cov
和std
功能。我不明白的是,在COV函数返回我一个方阵是这样的:
corrAB =
0.8000 0.2000
0.2000 4.8000
但我期待有一个单一的号码作为协方差,所以我可以想出一个P(皮尔逊系数)号码。我错过了什么?
你的意思是'P = COV(X,Y)/ SQRT(VAR(X)* VAR(Y)); '?对角线应该是1.非对角线是你想要的。 – 2011-04-13 12:16:36
你是对的,我更新了这个问题。上例中的“对角线”是0.2000还是0.2000?那么我应该用他们做另一个计算还是只用0.2来计算? – Ramala 2011-04-13 13:17:09
以你为例,0.2是非对角线。但是,0.8和4.8都应该是1.所以你的calc有些问题。只需做corr(x,y)检查。阅读帮助以了解为什么它返回一个矩阵。这也是我第一次意外。 – 2011-04-13 16:16:21