Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

(統計学, (高校数学: データの分析)) 分散と不偏分散 (Python 3 (自作関数), NumPy: var(, ddof=1), sum(), mean())

使用するライブラリ

NumPy

Python 3 コード

var_unbiased_var.py

#!/usr/bin/env python3


"""(docstring)
"""


import numpy as np


# 分散
def my_var(dat):
    """(docstring)
    """
    return np.sum((dat - np.mean(dat))**2) / len(dat)


# 不偏分散
def my_unbiased_var(dat):
    """(docstring)
    """
    return np.sum((dat - np.mean(dat))**2) / (len(dat)-1)


if __name__ == '__main__':
    dat = [1, 2, 3]

    print('NumPy の var(): 分散:')
    print(np.var(dat))
    print('NumPy の var(, ddof=1): 不偏分散:')
    print(np.var(dat, ddof=1))
    print('')

    print('自作関数の my_var():')
    print(my_var(dat))
    print('自作関数の my_unbiased_var():')
    print(my_unbiased_var(dat))

出力

$ python3 var_unbiased_var.py
NumPy の var(): 分散:
0.6666666666666666
NumPy の var(, ddof=1): 不偏分散:
1.0

自作関数の my_var():
0.6666666666666666
自作関数の my_unbiased_var():
1.0

参考文献 (数式を参考)

入門 統計学 −検定から多変量解析・実験計画法まで−

入門 統計学 −検定から多変量解析・実験計画法まで−

高校数学解法事典 第九版

高校数学解法事典 第九版