統計学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
もう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
小数点...
ちなみに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