Коэффициент вариации , часто обозначаемый аббревиатурой 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