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


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

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