为了账号安全,请及时绑定邮箱和手机立即绑定

相关性错误

相关性错误

阿晨1998 2023-09-26 16:22:14
我是 python 和 pandas/matplotlib 的新手。我正在尝试计算迪士尼和 Netflix 的两个收盘股价之间的相关性(作为示例),但不确定我是否做得正确?当我输出如下图所示的数据时,它看起来很奇怪,并不像我预期的那样(因为我预计它是显示两只股票之间相关性的一行)。计算两个收盘股价之间的相关性的最佳/最简单方法是什么,以及如何使输出看起来更好?任何提示或帮助表示赞赏!
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

如果您只想要两列之间的相关性,可以使用内置pearsonr模块 in scipy,它返回Pearson 相关性p 值

尝试这个:

#input test data


>>> newData

        DIS      NFLX

0  0.620575  0.122005

1  0.124085  0.380087

2  0.286652  0.218533

3  0.569696  0.511214

4  0.081106  0.114614

5  0.223516  0.677468

6  0.226528  0.474243

7  0.998798  0.099523

8  0.994585  0.429352

9  0.277520  0.882989


>>> from scipy import stats

>>> corr, p_value = stats.pearsonr(newData['DIS'].values, newData['NFLX'].values)

>>> print(corr)

-0.25752281938162824

它不会返回任何有缺陷的东西。返回一个方形相关矩阵,如果有多个特征/变量,df.corr()这非常有用。您始终可以通过和提取df['DIS']和之间的相关性:df['NFLX']lociloc


>>> #test data

>>> newData.corr()

           DIS      NFLX

DIS   1.000000 -0.257523

NFLX -0.257523  1.000000 


>>> newData.corr().loc['DIS','NFLX']

-0.25752281938162824


>>> newData.corr().loc['NFLX','DIS']

-0.25752281938162824


>>> newData.corr().iloc[1][0] # 2nd row and 1st column 

-0.25752281938162824


>>>newData.corr().loc[0][1] # 1nd row and 2nd column 

-0.25752281938162824

您可以使用 pandas 立即使相关矩阵看起来更好style:


newData.corr().style.background_gradient(cmap='viridis') 

https://img3.sycdn.imooc.com/651294f700011f0d04320153.jpg

如果你想让相关矩阵看起来更好。您可以使用名为 的seaborn 热图功能sns.heatmap。这是一个例子:


import matplotlib.pyplot as plt

import seaborn as sns


sns.heatmap(newData.corr(),annot=True, lw=2, cmap='coolwarm')

plt.show()

输出:

https://img2.sycdn.imooc.com/651295020001b86b05550437.jpg

查看完整回答
反对 回复 2023-09-26
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

不,你的答案是对的,这被称为相关矩阵,你从中可以理解什么

  1. 等于 1 的对角线部分始终为 1,因为同一特征的相关值为 1

  2. 两只股票之间的相关性等于 0.0272

  3. 例如,如果你有第三个特征,它将为每个特征生成一个 3*3 矩阵

旁注:呈现相关矩阵的一个好方法是使用热图,它很容易理解和可视化,您可以检查这个问题,它有一个很好的答案,有助于理解如何构建它


查看完整回答
反对 回复 2023-09-26
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信