pandas 相关系数与协方差 |
您所在的位置:网站首页 › 方差矩阵和协方差矩阵 › pandas 相关系数与协方差 |
相关系数与协方差
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.14123457267422、相关系数(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 |