我现在是自己写的小函数来计算相关系数的。Python里有没有现成的函数能够计算两个数组的相关系数的?
3个回答
还有一种是numpy.corrcoef。这个可以可以求多个数组的相关系数。
比如要求a,b,c,d两两之间的相关系数。
import numpy as np
np.corrcoef([a,b,c,d])
得到一个4乘4的对称矩阵,矩阵元素就是相关系数。
SofaSofa数据科学社区DS面试题库 DS面经>>> import scipy.stats as stats
>>> a = [1.2, 1.5, 1.9]; b = [2.2, 2.5, 3.1]
>>> stats.pearsonr(a,b)
(0.99419162560192009, 0.068648785502029797)
返回的第一个数0.99419就是a和b的相关系数。第二个数0.0686是以a和b不同为零假设下的p值。
SofaSofa数据科学社区DS面试题库 DS面经如果数据在pandas的DataFrame里的话,可以直接调用df.corr(),这个应该是最方便的了
>>> import pandas as pd
>>> df = pd.DataFrame()
>>> df['a'] = [1, 3, 2, 4]
>>> df['b'] = [1, 2, 3, 5]
>>> df.corr()
a b
a 1.000000 0.831522
b 0.831522 1.000000
SofaSofa数据科学社区DS面试题库 DS面经