Python:加权变异系数

Python: Weighted coefficient of variation

如何在 Python 中计算 NumPy 数组的 加权 coefficient of variation (CV)?为此,可以使用任何流行的第三方 Python 包。

我可以使用 scipy.stats.variation 计算 CV,但它没有加权。

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 class in the statsmodels package for calculating weighted statistics 来完成。

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

有关相关统计数据,即加权基尼系数,请参阅


致谢:此答案的动机是计算 weighted standard deviation