我觉得np.corrcoef返回一个矩阵似乎很奇怪.
correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)
[[ 1. -0.99598935]
[-0.99598935 1. ]]
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样,是否有可能只返回一个经典意义上的值?
在matlab我用
a=[1,4,6]
b=[1,2,3]
corr(a,b)
Run Code Online (Sandbox Code Playgroud)
返回.9934.我尝试过,numpy.correlate但它会返回完全不同的东西.获得两个向量的相关性的最简单方法是什么?
我正在尝试计算两个变量的Pearson相关系数.这些变量用于确定邮政编码的数量与一系列距离之间是否存在关系.所以我想看看邮政编码的数量是否随着距离范围的变化而增加/减少.
我将有一个列表,它将计算距离范围内的邮政编码数量,另一个列表将具有实际范围.
有一个包含一系列距离的列表是否可以?或者更好的是有一个像[50,100,500,1000]这样的列表,其中每个元素将包含该数量的范围.例如,列表表示长达50公里,然后从50公里到100公里,依此类推.
我有两个同样长的数据数组的数据集,或者我可以创建一个两项条目数组,我想计算数据所代表的相关性和统计显着性(可能紧密相关,或者可能有无统计学意义的相关性).
我用Python编程并安装了scipy和numpy.我在Python中查看并发现了计算Pearson相关性和重要性,但这似乎希望对数据进行操作,使其落入指定范围.
我假设,有什么方法可以让scipy或numpy给出两个数组的相关性和统计显着性?
我正在使用大型生物数据集.
我想计算数据表中所有2列组合的PCC(Pearson相关系数),并将结果保存为DataFrame或CSV文件.
数据表如下所示:列是基因的名称,行是数据集的代码.浮点数表示基因在数据集中的激活程度.
GeneA GeneB GeneC ...
DataA 1.5 2.5 3.5 ...
DataB 5.5 6.5 7.5 ...
DataC 8.5 8.5 8.5 ...
...
Run Code Online (Sandbox Code Playgroud)
作为输出,我想构建如下所示的表(DataFrame或csv文件),因为scipy.stats.pearsonr函数返回(PCC,p值).在我的例子中,XX和YY表示pearsonr的结果([1.5,5.5,8.5],[2.5,6.5,8.5]).同样,ZZ和AA表示皮尔逊([1.5,5.5,8.5],[3.5,7.5,8.5])的结果.在我的测试中,我不需要像GeneB_GeneA或GeneC_GeneB这样的冗余数据.
PCC P-value
GeneA_GeneB XX YY
GeneA_GeneC ZZ AA
GeneB_GeneC BB CC
...
Run Code Online (Sandbox Code Playgroud)
由于列数和行数很多(超过100)并且它们的名称很复杂,因此使用列名或行名将很困难.
对于专家来说这可能是一个简单的问题,我不知道如何使用python和pandas库来处理这种表.特别是制作新的DataFrame并添加结果似乎非常困难.
抱歉我的解释不好,但我希望有人可以帮助我.