我想先创建两列,然后使用build()
计算列LOG()
和列Price
的定期每日收益。之后,使用定期收益查找计算出的每日定期收益之间的相关性。
我尝试过
Adjusted Close
但它不起作用。
Combine_data['log_return'] = np.log(1 + Combine_data.pct_change)
Combine_data.head()
这是我的输出结果:
答案 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)
有两种方法可以做到这一点:
使用Pearsonr相关:
from scipy.stats.stats import pearsonr
coeff = pearsonr(x, y)[0] # 0 is the coefficient, 1 is the p-value
使用numpy相关:
import numpy as np
coeff = np.corrcoef(x,y)[0,1]