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。
如何在 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。