Pythonを用いた統計学の手法のプログラミング 〜NumPy、Matplotlib etc〜

数式だけの解説ではわかりにくい場合もあると思われるので、統計学の手法や関連する概念をPythonのプログラミングで表現します。

・プログラミングまとめ
https://www.hello-statisticians.com/program

主要ライブラリ一問一答

・NumPy
・Matplotlib

基本的な公式

平均

分散

・$V[X]=E[(X-E[X])^2]$を元に計算
・$V[X]=E[X^2]-E[X]^2$を元に計算

共分散

・$\mathrm{Cov}[X,Y]=E[(X-E[X])(Y-E[Y])]$を元に計算
・$\mathrm{Cov}[X,Y]=E[XY]-E[X]E[Y]$を元に計算

共分散行列

下記で作成を行った。
https://www.hello-statisticians.com/explain-books-cat/stat_workbook/stat_workbook_ch22.html#221

相関係数

「記述統計のプログラミング」の「相関係数」で取り扱いを行った。

相関行列

下記で作成を行った。
https://www.hello-statisticians.com/explain-books-cat/stat_workbook/stat_workbook_ch22.html#221

確率分布の描画

離散分布

・ポアソン分布
・二項分布の極限① ポアソン小数の法則とポアソン分布
・二項分布の極限② 中心極限定理と正規分布

連続分布

・正規分布
・指数分布

乱数生成

・乗算合同法
・M系列
・メルセンヌツイスタ法
・中心極限定理を用いた正規乱数の生成
・ボックス・ミュラー法

確率過程・時系列解析

・ブラウン運動
・ポアソン過程
・ARMA過程・共分散定常
・ホワイトノイズ
・コレログラム

統計的推定

統計数値表

SciPyと統計数値表
・数値積分に基づく標本分布の統計数値表の計算

区間推定

・分散既知の場合の母平均の区間推定

仮説検定

・分散既知の場合の母平均の検定

ノンパラメトリック法

・順位和検定
・並べ替え検定
・符号付き順位検定
・符号検定
・クラスカル・ウォリス検定

回帰

線形回帰

・単回帰のパラメータ推定
・重回帰のパラメータ推定

質的回帰

・ロジスティック回帰のパラメータ推定
・プロビット回帰のパラメータ推定

離散値の回帰

・ポアソン回帰

ベイズ法

共役事前分布

・二項分布-ベータ分布
・ポアソン分布-ガンマ分布
・正規分布-正規分布

MCMC

・メトロポリス法

自動微分

・自動微分の基本処理
・自動微分のモジュール化

注意しておくとよい事項

変数の型がint型の際の割り算の結果

int型をint型で割る際は、結果が小数ではなく余りの切り捨ての形式になることは注意しておくと良い。

import numpy as np

x = np.array([1, 2, 3, 1, 2])

print("np.mean(x): {}".format(np.mean(x)))
print("np.sum(x)/5: {}".format(np.sum(x)/5))
print("np.sum(x)/5.: {}".format(np.sum(x)/5.))

・実行結果

> print("np.mean(x): {}".format(np.mean(x)))
np.mean(x): 1.8
> print("np.sum(x)/5: {}".format(np.sum(x)/5))
np.sum(x)/5: 1
> print("np.sum(x)/5.: {}".format(np.sum(x)/5.))
np.sum(x)/5.: 1.8