ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

分散・標準偏差

スポンサードリンク

統計学3級取るぞ!!!

親の顔より何度もみた分散と標準偏差

$ python
>>> a = [5, 3, 4, 10, 3]
>>> a_ = sum(a) / len(a)  # 平均
>>> a_
5.0
>>> s = sum([(i - a_)**2 for i in a]) / len(a)  # 分散
>>> s
6.8
>>> import math
>>> math.sqrt(s)  # 分散をルートでかけると標準偏差
2.6076809620810595

www.youtube.com

もう1つの方法でとく

>>> x2_ = sum([i ** 2 for i in a])  / len(a)  # xの2乗の平均
>>> x2_
31.8
>>> x_2 = (sum([i for i in a]) / len(a))**2  # xの平均の2乗
>>> x_2
25.0
>>> x2_ - x_2
6.800000000000001

小数点...

www.youtube.com

ちなみにPythonの場合、正確に計算したい場合はDecimalを利用しましょ.

>>> from decimal import Decimal
>>> x2_ = Decimal(sum([i ** 2 for i in a]))  / Decimal(len(a))
>>> x2
Decimal('31.8')

>>> x_2 = (Decimal(sum([i for i in a])) / Decimal(len(a)))**2
>>> x_2
Decimal('25')

>>> x2_ - x_2
Decimal('6.8')
>>> float(x2_ - x_2)
6.8