Python 数学、統計、機械学習:基本統計量、分散と標準偏差
1.基本統計量
Python 数学、統計、機械学習:基本統計量、ヒストグラム で使用した、Bostonデータセット の住宅価格をヒストグラムに表示し、各基本統計量を出力してみる。
from sklearn import datasets import pandas as pd import matplotlib.pyplot as plt import math def var_stdev(): """ https://pythondatascience.plavox.info/matplotlib/%E6%95%A3%E5%B8%83%E5%9B%B3 https://qiita.com/ynakayama/items/8d3b1f7356da5bcbe9bc https://teratail.com/questions/72586 :return: """ boston = datasets.load_boston() df = pd.DataFrame(boston.target) df.columns = ['Price'] x = df['Price'] # CSVに出力 # x.to_csv('~/work/house_price.csv') import pprint print(pprint.pprint(dir(x))) label = """ mean={0:f} median={1:f} mode={2:f} variance={3:f} standard deviation={4:f} standard error={5:f} kurtosis={6:f} skewness={7:f} """.format(x.mean(), x.median(), x.mode().iloc[0], x.var(), x.std(), x.sem(), x.kurtosis(), x.skew()) fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.set_title('Boston house price') ax.hist(x, bins=int(round(math.sqrt(x.count()), 0)), rwidth=0.8, label='house price(x $1,000)') ax.text(25, 40, label) ax.legend() plt.show() if __name__ == "__main__": var_stdev()
基本統計量 | 対応するDataFrameの関数 | 概要 |
平均(mean) | mean() | 観測値の総和を観測値の個数で割ったもの |
中央値(median) | median() | 有限個のデータを小さい順に並べたとき中央に位置する値 |
最頻値(mode) | mode() | データ群や確率分布で最も頻繁に出現する値 |
分散(variance) | var() | 平均からのバラツキを示す指標、標準偏差の2乗、0 に近いほど散らばりは小さい |
標準偏差(standard deviation) | std() | 平均からのバラツキを示す指標、分散の正の平方根 |
標準誤差(standard error) | sem() |
母集団からある数の標本を選ぶとき、選ぶ組み合わせに依って統計量がどの程度ばらつくかを、全ての組み合わせについての標準偏差で表したもの。 統計量を指定せずに単に「標準誤差」と言った場合、標本平均の標準誤差(standard error of the mean、SEM)のことを普通は指す。 |
尖度(kurtosis) | kurtosis() | 正規分布と比べて、尖度が大きければ鋭いピークと長く太い裾を持った分布を持ち、尖度が小さければより丸みがかったピークと短く細い尾を持った分布であるという事が判断できる |
歪度(skewness) | skew() | 分布の非対称性を示す指標 |