1: 2019-06-14 (金) 23:19:04 njf[5] [6] [7] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Pythonには標準でstatisticsという数理統計関数ライブラリが用意されています。 | ||
+ | それを使うと、平均や標準偏差、中央値などさまざまな統計量が簡単に計算できます。 | ||
+ | |||
+ | *平均 [#i983fcef] | ||
+ | |||
+ | 平均を求めるにはmeanを使います。 | ||
+ | |||
+ | import statistics | ||
+ | |||
+ | data = [1,2,3,4,5] | ||
+ | |||
+ | print(statistics.mean(data)) | ||
+ | |||
+ | 結果: | ||
+ | 3 | ||
+ | |||
+ | *標準偏差 [#e9f8f1bb] | ||
+ | |||
+ | 標準偏差は母標準偏差(pstdev)と標本標準偏差(stdev)が両方用意されています。 | ||
+ | |||
+ | 「[[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 | ||
+ | |||
+ | 乱数を使っているので値は実行するたびに変化しますが、だいたい正しい値が出ています。 |
(This host) = https://njf.jp