不偏分散
母分散を推定するために用いられる分散のことを不偏分散という。
データ$ x =\{x_1,x_2,\ldots,x_N\}, データの平均値$ \bar{x}、データの個数$ Nとする。
NumPyを用いる例
code:var_unbiased_np01.py
import numpy as np
# 定義通り
S1 = np.sum((x - np.mean(x))**2)/(len(x) - 1)
print('by definition :', S1)
# var
S2 = np.var(x, ddof=1)
print('by var :', S2)
# cov
S3 = np.cov(x)
print('by cov :', S3)
varはデフォルトで標本分散を求めるため、ddof=1を与える必要がある。これは定義式の分数におけるN-ddofに相当する(Delta Degrees of Freedom)。
covは、デフォルト(bias=False)で不偏分散を求めることに注意。
PyTorchを用いる例
code:var_unbiased_pt01.py
import torch as pt
# 定義通り
S1 = pt.sum((x - pt.mean(x))**2)/(x.shape0 - 1) print('by definition :', S1)
# var
S2 = pt.var(x)
print('var :', S2)
# cov
S3 = pt.cov(x)
print('cov :', S3)
PyTrochの提供するvar, covは、デフォルトで不偏分散を求める。
参考