Как рассчитать коэффициент вариации в python
Коэффициент вариации , часто сокращенно CV , представляет собой способ измерения разброса значений в наборе данных относительно среднего значения. Он рассчитывается следующим образом:
КВ = σ/мк
Золото:
- σ: стандартное отклонение набора данных
- μ: среднее значение набора данных
Проще говоря, коэффициент вариации — это просто отношение стандартного отклонения к среднему значению.
Когда использовать коэффициент вариации
Коэффициент вариации часто используется для сравнения вариаций между двумя разными наборами данных.
В реальном мире его часто используют в финансах для сравнения средней ожидаемой доходности инвестиций с ожидаемым стандартным отклонением инвестиций. Это позволяет инвесторам сравнивать соотношение риска и доходности между инвестициями.
Например, предположим, что инвестор рассматривает возможность инвестирования в следующие два взаимных фонда:
Взаимный фонд A: среднее значение = 9%, стандартное отклонение = 12,4%.
UCITS 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 нескольких столбцов в DataFrame 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 b8.330843 c7.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. no , 99], 'c': [67, 68, 68, 74, 74, 76, 76, 77, 78, np. no ]}) #calculate CV for each column in data frame df. apply (cv) a 11.012892 b 8.497612 c5.860924 dtype:float64
Дополнительные ресурсы
Как рассчитать коэффициент вариации R
Как рассчитать коэффициент вариации в Excel
Как рассчитать коэффициент вариации в Google Таблицах