python里计算加权的相关系数?

  统计/机器学习 描述性统计 Python    浏览次数:5997        分享
1

我知道numpy里有计算正常的相关系数的函数,请问如果是加权的相关系数怎么计算?

比如我在pandas的dataframe里有三列,一列x,一列y,还有一列是w,表示每行的权重,我怎么计算基于权重w的x和y的相关系数?

 

Solomon   2019-10-16 14:26



   2个回答 
5

可以使用statsmodels.stats.weightstats.DescrStatsW模块

from statsmodels.stats import weightstats
stats_summary = weightstats.DescrStatsW(df[['x', 'y']], weights=df['w'])
print(stats_summary.corrcoef[0, 1]

stats_summary.corrcoef是一个2乘2的对称矩阵,对角线是1,其他位置的元素就是加权的相关系数

SofaSofa数据科学社区DS面试题库 DS面经

我小宋   2019-10-16 22:14

3

numpy的实现版本如下

import numpy as np

def cov(x, y, w):
    """Weighted Covariance"""
    return np.average((x - m(x, w)) * (y - m(y, w)), weights=w)

def corr(x, y, w):
    """Weighted Correlation"""
    return cov(x, y, w) / np.sqrt(cov(x, x, w) * cov(y, y, w))
SofaSofa数据科学社区DS面试题库 DS面经

LiShanfei   2019-10-17 12:38



  相关讨论

python里求加权标准差或者加权方差的函数是什么?

python中求加权中位数

python中计算加权平均

模型融合方法:加权融合

如何计算加权最小二乘法的样本权重?

Python计算两个数组的相关系数

一个连续变量和一个二元变量的相关系数怎么求?

有序分类变量的相关系数

pyspark groupby 加权平均?

如果x是等级变量, y是连续变量 相关分析是不是用speaman

  随便看看

推荐系统算法里的cold start是什么意思?

sklearn里的LabelEncoder什么用?

yolo v4和yolo v3的主要区别是什么?

numpy.full这个函数有什么用?

opencv里waitkey和destroyAllWindows有什么用?