これまで四分位数を使った散布度や分散・標準偏差を使った散布度を求めてきました
しかし、実際のデータでは平均値同士が異なる場合があります
そういった場合には、「変動係数」という散布度を用いることで、異なるデータ同士を比較することができます
今回は変動係数をpythonで求める方法について解説していきたいと思います
pythonで統計学を順序立てて学びたい方は、こちらの記事を参考に進めてみてください
Contents
変動係数とは
変動係数とは、標準偏差を平均値で割った値を指します
単位の異なるデータのばらつきや、平均値に対するデータとばらつきの関係を相対的に評価する際に使用する数値となります
データのばらつきが大きければ、変動係数は大きくなり、
データのばらつきが小さければ、変動係数は小さくなります
変動係数の求め方
例えば、2010年の1人あたり県民所得の平均が16.3万円、標準偏差は5.5万円だったのに対して、
2020年の1人あたり県民所得の平均は113.3万円、標準偏差は25.8万円だったとします
どちらも同じ県民所得というデータですが、明らかに両者のデータは異なるということがわかります
単純に標準偏差だけで比較すれば約5倍、大きくなっています
さらに平均値で言えば、約7倍、大きくなっています
このような時に、変動係数を求めます
変動係数は標準偏差/平均値で求めることができるので、
5.5/16.3=0.33(33%)
25.8/113.3=0.22(22%)
このようにみると、2010年の県民所得の方がばらつきが大きいことがわかります
分散や標準偏差は、元のデータに左右されます
そのため、元データの大きさが2群間で異なる場合には、標準偏差などで比較してしまうと、誤った解釈になりかねません
そういった場合、変動係数を用います
pythonで変動係数を求める方法
では実際にpythonで変動係数を求めていきたいと思います
変動係数は標準偏差/平均なので、標準偏差を求めていきます
import numpy as np
sample=[17,18,8,5,1,9]
#平均値を算出
mean=np.mean(sample)
print("平均値は",mean)
#標準偏差
std=np.std(sample)
print("標準偏差は",std)
#変動係数
variation=std/mean
print("変動係数は",variation)
また、spicy.statsのvariationを使用することでも変動係数を求めることができます
from scipy import stats
sample=[17,18,8,5,1,9]
variation=stats.variation(sample)
print("変動係数は",variation)
どちらの方法でも同じ結果になることがわかります
使いやすいのはscipy.statsを使った方法です
まとめ
- 変動係数はデータ間が異なる場合に用いる
- 変動係数は1を超えるとばらつきが非常に大きい
- 変動係数を求めるにはscipy.statsのvariationを用いる
pythonで統計学を学ぶ上で必須書籍
Pythonの独学をスムーズに行うために
Pythonを独学で学んでいると、
「何このエラー」
「何が悪いのかよくわからない」
「この文法どうすればいいんだっけ?」
という場面に何度も遭遇します
Kindleはご存知の通り、電子書籍ですが、
Kindleには多くのpython学習本が用意されており、無料で読むことができます。
(たまに有料もあります)
ひとまずどういった書籍があるのか?
もしものために、書籍に目を通しておこう
という場合には、kindleの利用がおすすめです。
また、webで調べて、試行錯誤しても全くわからない…
っていう状況を打破してくれる、手助けしてくれるのが、テラテイルです。
実現したいこと・エラーメッセージ・コードなどを記載すれば、プロのエンジニアの方々が手助けをしてくれます。
どちらも登録しておいて損はないサイトです。
Python初心者はぜひ利用してみてください。