Python:加权变异系数
问题内容:
如何在Python中的NumPy数组上计算 加权
变异系数
(CV)?为此,可以使用任何流行的第三方Python软件包。
我可以使用来计算CV
scipy.stats.variation
,但未加权。
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
类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
有关相关统计信息(即加权基尼),请参见此答案。
信用:这个答案是由一个在计算加权标准差时得出的。