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

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

我知道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中求加权中位数   1回答

模型融合方法:加权融合   2回答

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

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

python中计算加权平均   1回答

钓鱼网站欺诈识别里评价标准加权logloss在python里对应的函数是什么?   1回答

sklearn.cluster.KMeans怎么给样本加权重?   1回答

pyspark groupby 加权平均?   1回答

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

超几何分布几何分布的关联?   2回答

序列的autocorrelation(自相关系数)的计算公式   1回答

Python计算两个数组的相关系数   3回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!