ページへ戻る

− Links

 印刷 

Python​/平均と標準偏差を求める のソース :: NJF Wiki

xpwiki:Python/平均と標準偏差を求めるのソース

« Prev[3]  
Pythonには標準でstatisticsという数理統計関数ライブラリが用意されています。

それを使うと、平均や標準偏差、中央値などさまざまな統計量が簡単に計算できます。

*平均 [#i983fcef]

平均を求めるにはmeanを使います。

 import statistics
 
 data = [1,2,3,4,5]
 
 print(statistics.mean(data))

結果:
 3

*標準偏差 [#e9f8f1bb]

標準偏差は母標準偏差(pstdev)と標本標準偏差(stdev)が両方用意されています。
母標準偏差はデータの個数で割るもの、標本標準偏差はデータの個数から1減じたもので割る方です。
詳細は略しますが、標本から母集団の統計量を推測するときには標本標準偏差を使うべきとされています。

「[[Python/正規分布に従う乱数を生成する]]」で紹介した「random.gauss」で、平均10、標準偏差2.5の正規分布に従うランダムなデータを1000個作成し、その平均と標準偏差を求めると以下のようになります。

 import statistics
 import random
 m = 10
 v = 2.5
 n = 1000
 data = []
 
 for j in range(n):
     data.append(random.gauss(m,v))
 
 print("平均\t\t",statistics.mean(data))
 print("母標準偏差\t",statistics.pstdev(data))
 print("標本標準偏差\t",statistics.stdev(data))

結果:
 平均             9.961114639666533
 母標準偏差       2.4024438913751966
 標本標準偏差    2.403646014988765

乱数を使っているので値は実行するたびに変化しますが、平均10、標準偏差2.5に近い値が出ています。

また、母分散(pvariance)や標本標準分散(variance)も全く同様に求められます。

上の例のように、1000個ぐらいのデータなら、スペックの低いパソコンでもほぼ一瞬で答えが出ます。

しかし、もしもっと大量のデータを扱うなら、NumPyにも同様の関数があり、より高速なのでそちらを使うのがおすすめです。

« Prev[3]