Python で変動係数を計算する方法
変動係数 は、 CVと略されることが多く、平均に対するデータセット内の値の広がりを測定する方法です。次のように計算されます。
CV = σ / μ
金:
- σ:データセットの標準偏差
- μ:データセットの平均
簡単に言うと、変動係数は平均値に対する標準偏差の比率です。
変動係数を使用する場合
変動係数は、2 つの異なるデータセット間の変動を比較するためによく使用されます。
現実の世界では、投資の平均期待収益と投資の期待標準偏差を比較するために金融でよく使用されます。これにより、投資家は投資間のリスクとリターンのトレードオフを比較できます。
たとえば、投資家が次の 2 つの投資信託への投資を検討しているとします。
投資信託 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