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()


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()分布の非対称性を示す指標