Python: взвешенный коэффициент вариации - PullRequest
0 голосов
/ 12 декабря 2018

Как я могу вычислить взвешенный коэффициент вариации (CV) для массива NumPy в Python?Для этой цели можно использовать любой популярный сторонний пакет 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

1 Ответ

0 голосов
/ 12 декабря 2018

Это можно сделать с помощью класса 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

Для связанной статистики, то есть взвешенного джини, см. этот ответ .


Кредит: Этот ответ мотивируется одним при расчете взвешенного стандартного отклонения ,

...