Jak obliczyć współczynnik zmienności w pythonie
Współczynnik zmienności , często w skrócie CV , to sposób pomiaru rozrzutu wartości w zbiorze danych w stosunku do średniej. Oblicza się go w następujący sposób:
CV = σ / μ
Złoto:
- σ: odchylenie standardowe zbioru danych
- μ: średnia ze zbioru danych
Mówiąc najprościej, współczynnik zmienności to po prostu stosunek odchylenia standardowego do średniej.
Kiedy stosować współczynnik zmienności
Współczynnik zmienności jest często używany do porównywania zmienności między dwoma różnymi zestawami danych.
W prawdziwym świecie jest często używany w finansach do porównywania średniego oczekiwanego zwrotu z inwestycji z oczekiwanym odchyleniem standardowym inwestycji. Umożliwia to inwestorom porównanie stosunku ryzyka do zwrotu pomiędzy inwestycjami.
Załóżmy na przykład, że inwestor rozważa inwestycję w następujące dwa fundusze wspólnego inwestowania:
Fundusz inwestycyjny A: średnia = 9%, odchylenie standardowe = 12,4%
UCITS B: średnia = 5%, odchylenie standardowe = 8,2%
Obliczając współczynnik zmienności każdego funduszu, inwestor zauważa:
CV dla funduszu inwestycyjnego A = 12,4% /9% = 1,38
CV dla funduszu inwestycyjnego B = 8,2% / 5% = 1,64
Ponieważ fundusz inwestycyjny A ma niższy współczynnik zmienności, zapewnia lepszy średni zwrot w porównaniu z odchyleniem standardowym.
Jak obliczyć współczynnik zmienności w Pythonie
Aby obliczyć współczynnik zmienności zbioru danych w Pythonie, możesz użyć następującej składni:
import numpy as np cv = lambda x: np. std (x, ddof= 1 ) / np. mean (x) * 100
Poniższe przykłady pokazują, jak używać tej składni w praktyce.
Przykład 1: Współczynnik zmienności dla pojedynczej sieci
Poniższy kod pokazuje, jak obliczyć CV dla pojedynczej tabeli:
#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
Współczynnik zmienności okazuje się wynosić 9,23 .
Przykład 2: Współczynnik zmienności dla kilku wektorów
Poniższy kod pokazuje, jak obliczyć CV wielu kolumn w ramce DataFrame pandy:
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
Należy pamiętać, że brakujące wartości zostaną po prostu zignorowane przy obliczaniu współczynnika zmienności:
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
Dodatkowe zasoby
Jak obliczyć współczynnik zmienności R
Jak obliczyć współczynnik zmienności w programie Excel
Jak obliczyć współczynnik zmienności w Arkuszach Google