我使用scipy的pdist和相关度量来构建相关矩阵,但是这些值与我从numpy的corrcoef中获得的值不匹配。
我在一个非常简单的两个相同值的1-d数组上应用了pdist:[1,2,3]和[1,2,3]:
from scipy.spatial.distance import pdist, squareform
import pandas as pd
import numpy as np
df = pd.DataFrame([[1,1],[2,2],[3,3]]).transpose()
print np.corrcoef(df)
print squareform(pdist(df, metric='correlation'))
我没有输出相关值1,而是从pdist得到2.2E-16:
[[ 1. 1.]
[ 1. 1.]]
[[ 0.00000000e+00 2.22044605e-16]
[ 2.22044605e-16 0.00000000e+00]]
以下是我在scipy中找到的相关度量标准代码:
umu = u.mean()
vmu = v.mean()
um = u - umu
vm = v - vmu
dist = 1.0 - np.dot(um, vm) / (norm(um) * norm(vm))
答案 0 :(得分:4)
"相关距离"与相关系数不同。 A"距离"两个相等点之间假设为0.(如果搜索"相关距离",请注意还有另一个概念,"距离相关" ,这与"相关距离不相同"。)