Pythonで統計-モーメント

1次モーメント

1次モーメントは、平均を表します。

import numpy as np

vals = np.random.normal(0, 0.5, 10000)
#1次モーメント 平均
moment1 = np.mean(vals)

2次モーメント

2次モーメントは、分散を表します。

import numpy as np

vals = np.random.normal(0, 0.5, 10000)
#2次モーメント 分散
moment2 = np.var(vals)

3次モーメント

3次モーメントは、歪度を表します。
分布がどれだけ偏っているかを示します。
scipy.statsをインポートします。

import numpy as np
import scipy.stats as sp

vals = np.random.normal(0, 0.5, 10000)

#3次モーメント 歪度 分布がどれだけ偏っているか

moment3 = sp.skew(vals)

4次モーメント

4次モーメントは、尖度を表します。
分布がどれだけ尖っているかを示します。
3次モーメント同様にscipy.statsをインポートします。

import numpy as np
import scipy.stats as sp

vals = np.random.normal(0, 0.5, 10000)

#4次モーメント 尖度 どれだけ尖っているか

moment4 = sp.kurtosis(vals)

まとめ

ソースコード

1から4までのモーメントを出力します。
ヒストグラムをおまけに表示します。

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as sp

vals = np.random.normal(0, 0.5, 10000)

plt.hist(vals, 50)
plt.show()

moment = []
#1次モーメント 平均
moment.append(np.mean(vals))

#2次モーメント 分散
moment.append(np.var(vals))

#3次モーメント 歪度 分布がどれだけ偏っているか

moment.append(sp.skew(vals))

#4次モーメント 尖度 どれだけ尖っているか

moment.append(sp.kurtosis(vals))

for i in range(4):
   print("{0}モーメント:{1}".format(i+1,moment[i]))

出力

moment

参考