本文介绍了Python:加权变异系数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何计算加权的变异系数 ( CV)在Python中的NumPy数组上?为此,可以使用任何流行的第三方Python软件包.

How can I calculate the weighted coefficient of variation (CV) over a NumPy array in Python? It's okay to use any popular third-party Python package for this purpose.

我可以使用 scipy.stats.variation ,但未加权.

I can calculate the CV using scipy.stats.variation, but it's not weighted.

import numpy as np
from scipy.stats import variation

arr = np.arange(-5, 5)
weights = np.arange(9, -1, -1)  # Same size as arr
cv = abs(variation(arr))  # Isn't weighted

推荐答案

这可以使用 statsmodels.stats.weightstats.DescrStatsW 类" rel ="nofollow noreferrer"> statsmodels 用于计算加权统计信息的软件包.

from statsmodels.stats.weightstats import DescrStatsW

arr = np.arange(-5, 5)
weights = np.arange(9, -1, -1)  # Same size as arr

dsw = DescrStatsW(arr, weights)
cv = dsw.std / abs(dsw.mean)  # weighted std / abs of weighted mean

print(cv)
1.6583123951777001

有关统计信息(即加权基尼),请参见此答案.

For a related statistic, i.e. the weighted gini, see this answer.

信用:这个答案是由一个人在计算加权标准偏差时得出的.

Credit: This answer is motivated by one on calculating the weighted standard deviation.

这篇关于Python:加权变异系数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-17 07:39