Коэффициент вариации , часто обозначаемый аббревиатурой CV , представляет собой способ измерения степени разброса значений в наборе данных по отношению к среднему значению. Он рассчитывается как:
CV = σ / μ
куда:
- σ: стандартное отклонение набора данных
- μ: среднее значение набора данных
Говоря простым языком, коэффициент вариации — это просто отношение между стандартным отклонением и средним значением.
Когда использовать коэффициент вариации
Коэффициент вариации часто используется для сравнения вариации между двумя разными наборами данных.
В реальном мире он часто используется в финансах для сравнения среднего ожидаемого дохода от инвестиций с ожидаемым стандартным отклонением инвестиций. Это позволяет инвесторам сравнивать соотношение риска и доходности между инвестициями.
Например, предположим, что инвестор рассматривает возможность инвестирования в следующие два взаимных фонда:
Взаимный фонд A: среднее = 9%, стандартное отклонение = 12,4%
Взаимный фонд B: среднее = 5%, стандартное отклонение = 8,2%
При расчете коэффициента вариации для каждого фонда инвестор находит:
CV для взаимного фонда A = 12,4% / 9% = 1,38
CV для взаимного фонда B = 8,2% / 5% = 1,64
Поскольку взаимный фонд А имеет более низкий коэффициент вариации, он предлагает лучшую среднюю доходность по сравнению со стандартным отклонением.
Как рассчитать коэффициент вариации R
Чтобы вычислить коэффициент вариации для набора данных в R, вы можете использовать следующий синтаксис:
cv <- sd(data) / mean(data) \* 100
В следующих примерах показано, как использовать этот синтаксис на практике.
Пример 1: Коэффициент вариации для одного вектора
Следующий код показывает, как вычислить CV для одного вектора:
#create vector of data
data <- c(88, 85, 82, 97, 67, 77, 74, 86, 81, 95, 77, 88, 85, 76, 81, 82)
#calculate CV
cv <- sd(data) / mean(data) \* 100
#display CV
cv
[1] 9.234518
Коэффициент вариации оказывается равным 9,23 .
Пример 2: Коэффициент вариации для нескольких векторов
В следующем коде показано, как вычислить CV для нескольких векторов во фрейме данных с помощью функции sapply() :
#create data frame
data <- data.frame(a=c(88, 85, 82, 97, 67, 77, 74, 86, 81, 95),
b=c(77, 88, 85, 76, 81, 82, 88, 91, 92, 99),
c=c(67, 68, 68, 74, 74, 76, 76, 77, 78, 84))
#calculate CV for each column in data frame
sapply(data, function (x) sd(x) / mean(x) \* 100 )
a b c
11.012892 8.330843 7.154009
Обязательно используйте na.rm=T , если в ваших данных также есть пропущенные значения. Это говорит R просто игнорировать пропущенные значения при вычислении коэффициента вариации:
#create data frame
data <- data.frame(a=c(88, 85, 82, 97, 67, 77, 74, 86, 81, 95),
b=c(77, 88, 85, 76, 81, 82, 88, 91, NA , 99),
c=c(67, 68, 68, 74, 74, 76, 76, 77, 78, NA ))
#calculate CV for each column in data frame
sapply(data, function (x) sd(x, na.rm= T ) / mean(x, na.rm= T ) \* 100 )
a b c
11.012892 8.497612 5.860924
Дополнительные ресурсы
Как рассчитать среднее абсолютное отклонение в R
Как рассчитать стандартное отклонение в R
Как найти диапазон в R