Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误相关性_Python_Pandas_Matplotlib - Fatal编程技术网

Python 错误相关性

Python 错误相关性,python,pandas,matplotlib,Python,Pandas,Matplotlib,我不熟悉python和pandas/matplotlib。我试图计算迪斯尼和Netflix两个收盘价之间的相关性(作为一个例子),但不确定我是否做得正确?当我输出如下图所示的数据时,它看起来很奇怪,并不像我预期的那样(因为我预期它是显示两支股票之间相关性的一行) 计算两个收盘股价之间相关性的最佳/最简单方法是什么,以及如何使产出看起来更好?任何提示或帮助都将不胜感激 如果只需要两列之间的相关性,可以使用scipy中的内置模块,该模块返回皮尔逊相关性和p值 试试这个: #input test da

我不熟悉python和pandas/matplotlib。我试图计算迪斯尼和Netflix两个收盘价之间的相关性(作为一个例子),但不确定我是否做得正确?当我输出如下图所示的数据时,它看起来很奇怪,并不像我预期的那样(因为我预期它是显示两支股票之间相关性的一行)

计算两个收盘股价之间相关性的最佳/最简单方法是什么,以及如何使产出看起来更好?任何提示或帮助都将不胜感激


如果只需要两列之间的相关性,可以使用
scipy
中的内置模块,该模块返回皮尔逊相关性和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']
之间的相关性:

通过使用熊猫,您可以立即使相关矩阵看起来更好:

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

import matplotlib.pyplot as plt
import seaborn as sns

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


不,你的答案是对的。你从中了解到,这叫做相关矩阵

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

  • 两种股票之间的相关性等于0.0272

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

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

    请提供数据帧的示例。如果你的数据帧只包含收盘价,你做得很正确哦,好的,谢谢。有没有办法阻止它在实际矩阵之前连续两次打印世界“符号”?(如上图所示)。0.02是弱相关性,对吗?(因为这是2%)第一个问题你可以问我提到的一个绘制协作矩阵的技术人员组织得很好,不需要任何组织。第二个问题相关性理解相关性的一个简单方法是使用散点图绘制两列,例如,如果我们有相关性。70在x和y之间,这意味着当x增加,y增加,所以你依赖它,它对你来说是不是很弱,一般的答案是肯定的,如果你觉得方便的话,请别忘了给我的答案投票。我有一个答案,让我知道它是否适合你。如果答案是正确的,请勾选并向上投票。只需回答您下面的评论:
    newData.corr()
    似乎是一个多级数据帧。然后,我可以考虑使用
    newData.droplevel(0,axis=0)
    和newData.columns=['DIS','NFLX']删除额外的符号。此外,是的,0.02是非常弱的相关性或无相关性。通常,0.50或更高表示强相关性。
    newData.corr().style.background_gradient(cmap='viridis') 
    
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    sns.heatmap(newData.corr(),annot=True, lw=2, cmap='coolwarm')
    plt.show()