Как рассчитать коэффициент вариации в Python


Коэффициент вариации , часто обозначаемый аббревиатурой CV , представляет собой способ измерения степени разброса значений в наборе данных по отношению к среднему значению. Он рассчитывается как:

CV = σ / μ

куда:

  • σ: стандартное отклонение набора данных
  • μ: среднее значение набора данных

Говоря простым языком, коэффициент вариации — это просто отношение между стандартным отклонением и средним значением.

Когда использовать коэффициент вариации

Коэффициент вариации часто используется для сравнения вариации между двумя разными наборами данных.

В реальном мире он часто используется в финансах для сравнения среднего ожидаемого дохода от инвестиций с ожидаемым стандартным отклонением инвестиций. Это позволяет инвесторам сравнивать соотношение риска и доходности между инвестициями.

Например, предположим, что инвестор рассматривает возможность инвестирования в следующие два взаимных фонда:

Взаимный фонд A: среднее = 9%, стандартное отклонение = 12,4%

Взаимный фонд B: среднее = 5%, стандартное отклонение = 8,2%

При расчете коэффициента вариации для каждого фонда инвестор находит:

CV для взаимного фонда A = 12,4% / 9% = 1,38

CV для взаимного фонда B = 8,2% / 5% = 1,64

Поскольку взаимный фонд А имеет более низкий коэффициент вариации, он предлагает лучшую среднюю доходность по сравнению со стандартным отклонением.

Как рассчитать коэффициент вариации в Python

Чтобы вычислить коэффициент вариации для набора данных в Python, вы можете использовать следующий синтаксис:

import numpy as np

cv = lambda x: np.std(x, ddof= 1 ) / np.mean (x) \* 100

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: Коэффициент вариации для одного массива

Следующий код показывает, как вычислить CV для одного массива:

#create vector of data
data = [88, 85, 82, 97, 67, 77, 74, 86, 81, 95, 77, 88, 85, 76, 81, 82]

#define function to calculate cv
cv = lambda x: np.std(x, ddof= 1 ) / np.mean (x) \* 100 

#calculate CV
cv(data)

9.234518

Коэффициент вариации оказывается равным 9,23 .

Пример 2: Коэффициент вариации для нескольких векторов

В следующем коде показано, как рассчитать CV для нескольких столбцов в кадре данных pandas:

import numpy as np
import pandas as pd

#define function to calculate cv
cv = lambda x: np.std(x, ddof= 1 ) / np.mean (x) \* 100 

#create pandas DataFrame
df = pd.DataFrame({'a': [88, 85, 82, 97, 67, 77, 74, 86, 81, 95],
 'b': [77, 88, 85, 76, 81, 82, 88, 91, 92, 99],
 'c': [67, 68, 68, 74, 74, 76, 76, 77, 78, 84]})

#calculate CV for each column in data frame
df.apply (cv)

a 11.012892
b 8.330843
c 7.154009
dtype: float64

Обратите внимание, что пропущенные значения будут просто проигнорированы при расчете коэффициента вариации:

import numpy as np
import pandas as pd

#define function to calculate cv
cv = lambda x: np.std(x, ddof= 1 ) / np.mean (x) \* 100 

#create pandas DataFrame
df = pd.DataFrame({'a': [88, 85, 82, 97, 67, 77, 74, 86, 81, 95],
 'b': [77, 88, 85, 76, 81, 82, 88, 91, np.nan , 99],
 'c': [67, 68, 68, 74, 74, 76, 76, 77, 78, np.nan ]})

#calculate CV for each column in data frame
df.apply (cv)

a 11.012892
b 8.497612
c 5.860924
dtype: float64

Дополнительные ресурсы

Как рассчитать коэффициент вариации R
Как рассчитать коэффициент вариации в Excel
Как рассчитать коэффициент вариации в Google Sheets

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.