如何用python计算变异系数
变异系数,通常缩写为CV ,是一种测量数据集中值相对于平均值的分布的方法。计算方法如下:
CV = σ / μ
金子:
- σ:数据集的标准差
- μ:数据集的平均值
简单来说,变异系数就是标准差与平均值的比值。
何时使用变异系数
变异系数通常用于比较两组不同数据之间的变异。
在现实世界中,它经常用于金融领域,将投资的平均预期回报与投资的预期标准差进行比较。这使投资者可以比较投资之间的风险回报权衡。
例如,假设投资者正在考虑投资以下两只共同基金:
共同基金 A:平均值 = 9%,标准差 = 12.4%
UCITS B:平均值 = 5%,标准差 = 8.2%
通过计算每只基金的变异系数,投资者注意到:
共同基金 A 的 CV = 12.4% /9% = 1.38
共同基金 B 的 CV = 8.2% / 5% = 1.64
由于共同基金 A 的变异系数较低,因此相对于标准差而言,它提供了更好的平均回报。
如何用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:多个向量的变异系数
以下代码显示了如何计算 pandas DataFrame 中多列的 CV:
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