如何计算两列中两组数据之间的相关性?

时间:2019-09-01 13:58:13

标签: python pandas matplotlib jupyter-notebook

我想先创建两列,然后使用build()计算列LOG()和列Price的定期每日收益。之后,使用定期收益查找计算出的每日定期收益之间的相关性。

我尝试过

Adjusted Close

但它不起作用。

Combine_data['log_return'] = np.log(1 + Combine_data.pct_change)
Combine_data.head()

这是我的输出结果:

2 个答案:

答案 0 :(得分:0)

您可以尝试如下操作:

ser1= (df['gold']+1).apply(np.log)
ser2= (df['silver']+1).apply(np.log)
np.corrcoef(ser1, ser2)

结果如下:

Out[431]: 
array([[1.        , 0.30121126],
       [0.30121126, 1.        ]])

鉴于事实是,数据是随机生成的,所以相关系数为0.301还不错

Out[430]: 
          gold     silver        date
0   793.559641  19.112793  2019-08-23
1  1428.329390  17.758924  2019-08-24
2  1044.061092  17.962435  2019-08-25
3  1222.397539  17.638691  2019-08-26
4   890.945841  11.593497  2019-08-27
5  1224.616916  15.759736  2019-08-28
6  1059.684075  12.900665  2019-08-29
7  1147.011421  20.274250  2019-08-30
8   929.638993  12.244630  2019-08-31
9   515.545695  14.609073  2019-09-01

答案 1 :(得分:0)

有两种方法可以做到这一点:

  1. 使用Pearsonr相关:

    from scipy.stats.stats import pearsonr coeff = pearsonr(x, y)[0] # 0 is the coefficient, 1 is the p-value

  2. 使用numpy相关:

    import numpy as np coeff = np.corrcoef(x,y)[0,1]