へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)! #vZkt8fc6J

Pythonで車輪の再生産だけどnumpy使わずに標準偏差を求めるモジュールつくってみた

はじめに

統計学の勉強なう
読んでる本→『統計のはなし』

標準偏差ってなんだ

複数の数値が存在しているとき、それがどのくらいバラついて存在しているか』を表す数値。
大きければ大きいほどばらついていることがわかる

標準偏差ってどうやって求めるの

  • 全部の値の平均を出す(相加平均)
  • 平均と各値との差をそれぞれ出す
  • その値をおのおの2乗する
  • 足し合わせて、値の個数で割る(分散)
  • 出た値の平方根標準偏差

くわしい説明はダルいので割愛

(参考)numpyでの標準偏差の出し方

import numpy
print numpy.std(numpy.array([1, 2, 3]))

Pythonメモ:numpyで標準偏差を求める | MtBの日記

実装してみる


CreateTestData/mystd_diviation.py at master · harukaeru/CreateTestData · GitHub


numpyと比較してみた

numpy

import numpy
numpy.std(numpy.array([1,2]))
0.5
numpy.std(numpy.array([1,2,5]))
1.699673171197595
numpy.std(numpy.array([1,2,5,10]))
3.5
numpy.std(numpy.array([1,2,5,10,200]))
78.262634762701424
numpy.std(numpy.array([1,2,5,10,200,400]))
150.81777083619821

ぼくがつくったやつ

import mystd_diviation
mystd_diviation.calc_diviation([1,2])
0.5
mystd_diviation.calc_diviation([1,2,5])
1.699673171197595
mystd_diviation.calc_diviation([1,2,5,10])
3.5
mystd_diviation.calc_diviation([1,2,5,10,200])
78.26263476270142
mystd_diviation.calc_diviation([1,2,5,10,200,400])
150.8177708361982

なんか精度負けてるんだけど……つかえねえ……つらい

おわりに

numpyはすごい!