NumPyで標準誤差を計算する【Python】

Feb. 4, 2020, 2:24 a.m. edited Dec. 5, 2021, 3 a.m.

#NumPy  #Python 

母集団から \(n\) 個の標本 \(\{x_i\}\) を抽出したとする。その平均を \(\overline{x}:=\sum_{i=1}^n x_i/n\) とする。

このとき、得られた個々のデータ自体のバラつきの度合いを知りたいときは標準偏差 $$ s:=\sqrt{\frac{1}{n-1}\sum_{i=1}^{n} (x_i-\overline{x})^2} $$ を使う。一方、標本から計算される統計量(平均など)のバラつきの度合いを知りたいときは標準誤差 $$ \frac{s}{\sqrt{n}} $$ を使う(なお、これは母集団の大きさが十分大きいときの式であるが、実用上はこれで十分であろう)

ゆえに、NumPyを用いて書くと、

import numpy as np
x = [1, 5, 3, 6, 4, 5] # 適当なデータ

というデータがxにあったときに、前者(標準偏差)は

np.std(x, ddof=1)

で計算でき、後者(標準誤差)は

np.std(x, ddof=1) / np.sqrt(len(x))

で計算できる。