pandas 相关系数与协方差

您所在的位置:网站首页 方差矩阵和协方差矩阵 pandas 相关系数与协方差

pandas 相关系数与协方差

2024-07-10 07:44| 来源: 网络整理| 查看: 265

                                                       相关系数与协方差

 

1、协方差(Covariance)

    反映两个样本/变量之间的相互关系以及之间的相关程度。

    期望值分别为E[X]与E[Y]的两个实随机变量X与Y之间的协方差Cov(X,Y)定义为:

 

    如果有 X,Y 两个变量,每个时刻的 "X值与其均值之差" 乘以 "Y值与其均值之差" 得到一个乘积,再对这每时刻的乘积求和并求出均值。

    如果协方差为正,说明 X,Y 是同向变化,协方差越大说明同向程度越高;如果协方差为负,说明 X ,Y 反向运动,协方差越小说明反向程度越高。  

import pandas as pd # 协方差 df = pd.DataFrame({ "GDP": [900, 1000, 1100, 1200, 1300], "foreign_Trade": [300, 400, 500, 550, 600], "year": ["2012", "2013", "2014", "2015", "2016"] }) print(df.cov()) print("=====================================") print(df["GDP"].cov(df["foreign_Trade"])) print("=====================================") info_man = pd.read_csv("F:/人工智能/科学计算库/files/user_info_man.csv", sep="::", engine="python", encoding="utf-8", header=None) info_woman = pd.read_csv("F:/人工智能/科学计算库/files/user_info_woman.csv", sep="::", engine="python", encoding="utf-8", header=None) print(info_man[10].cov(info_man[11])) print(info_woman[10].cov(info_woman[11])) # 运行结果: GDP foreign_Trade GDP 25000.0 18750.0 foreign_Trade 18750.0 14500.0 ===================================== 18750.0 ===================================== 1089.9397736694957 978.1412345726742

2、相关系数(Correlation coefficient)

    反映两个样本/样本之间的相互关系以及之间的相关程度。在COV 的基础上进行了无量纲化操作,也就是进行了标准化操作。

        其中,Cov(X,Y)为X与Y的协方差,Var[X]为X的方差,Var[Y]为Y的方差  

    用 X,Y 的协方差除以 X 的标准差和 Y 的标准差。所以,相关系数也可以看成协方差:一种踢除了两个变量量纲影响、标准化后的特殊协方差。

        (1) 也可以反映两个变量变化时是同向还是反向,如果同向变化为正,反向变化为负;

        (2) 由于它是标准化后的协方差,因此更重的特性是,它消除了两个变量变化幅度的影响,而只是单纯反映两个变量单位变化的相似程度。

    注意:

        相关系数不像协方差一样可以在 +\infty 到 -\infty 间变化,它只能在 +1 到 -1 之间变化;

        当相关系数为 1 的时候两者相似度最大,同向正相关;

        当相关系数为 0 的时候两者没有相似度,两个变量无关;

        当相关系数为 -1 的时候两者变化的反向相似度最大,完全反向负相关。

import pandas as pd # 相关系数 df = pd.DataFrame({ "GDP": [900, 1000, 1100, 1200, 1300], "foreign_Trade": [300, 400, 500, 550, 600], "year": ["2012", "2013", "2014", "2015", "2016"] }) print(df.corr()) print("======================================") print(df["GDP"].corr(df["foreign_Trade"])) print("=====================================") info_man = pd.read_csv("F:/人工智能/科学计算库/files/user_info_man.csv", sep="::", engine="python", encoding="utf-8", header=None) info_woman = pd.read_csv("F:/人工智能/科学计算库/files/user_info_woman.csv", sep="::", engine="python", encoding="utf-8", header=None) print(info_man[10].corr(info_man[11])) print(info_woman[10].corr(info_woman[11])) # 运行结果: GDP foreign_Trade GDP 1.000000 0.984798 foreign_Trade 0.984798 1.000000 ====================================== 0.9847982464479191 ===================================== 0.6205527345581338 0.6045776098486645

    

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3