1: 2019-06-14 (金) 23:19:04 njf[5] [6] [7] | 現: 2019-06-15 (土) 19:55:10 njf[5] [8] [9] | ||
---|---|---|---|
Line 8: | Line 8: | ||
import statistics | import statistics | ||
+ | |||
data = [1,2,3,4,5] | data = [1,2,3,4,5] | ||
+ | |||
print(statistics.mean(data)) | print(statistics.mean(data)) | ||
Line 19: | Line 19: | ||
標準偏差は母標準偏差(pstdev)と標本標準偏差(stdev)が両方用意されています。 | 標準偏差は母標準偏差(pstdev)と標本標準偏差(stdev)が両方用意されています。 | ||
+ | 母標準偏差はデータの個数で割るもの、標本標準偏差はデータの個数から1減じたもので割る方です。 | ||
+ | 詳細は略しますが、標本から母集団の統計量を推測するときには標本標準偏差を使うべきとされています。 | ||
- | 「[[Python/正規分布に従う乱数を生成する]]」で紹介した「random.gauss」で、平均10、標準偏差2.5の正規分布のデータを1000個作成し、その平均と標準偏差を求めると以下のようになります。 | + | 「[[Python/正規分布に従う乱数を生成する]]」で紹介した「random.gauss」で、平均10、標準偏差2.5の正規分布に従うランダムなデータを1000個作成し、その平均と標準偏差を求めると以下のようになります。 |
import statistics | import statistics | ||
Line 28: | Line 30: | ||
n = 1000 | n = 1000 | ||
data = [] | data = [] | ||
+ | |||
for j in range(n): | for j in range(n): | ||
data.append(random.gauss(m,v)) | data.append(random.gauss(m,v)) | ||
+ | |||
print("平均\t\t",statistics.mean(data)) | print("平均\t\t",statistics.mean(data)) | ||
print("母標準偏差\t",statistics.pstdev(data)) | print("母標準偏差\t",statistics.pstdev(data)) | ||
Line 37: | Line 39: | ||
結果: | 結果: | ||
- | 平均 9.961114639666533 | + | 平均 9.961114639666533 |
母標準偏差 2.4024438913751966 | 母標準偏差 2.4024438913751966 | ||
標本標準偏差 2.403646014988765 | 標本標準偏差 2.403646014988765 | ||
- | 乱数を使っているので値は実行するたびに変化しますが、だいたい正しい値が出ています。 | + | 乱数を使っているので値は実行するたびに変化しますが、平均10、標準偏差2.5に近い値が出ています。 |
+ | |||
+ | また、母分散(pvariance)や標本標準分散(variance)も全く同様に求められます。 | ||
+ | |||
+ | 上の例のように、1000個ぐらいのデータなら、スペックの低いパソコンでもほぼ一瞬で答えが出ます。 | ||
+ | |||
+ | しかし、もしもっと大量のデータを扱うなら、NumPyにも同様の関数があり、より高速なのでそちらを使うのがおすすめです。 |
(This host) = https://njf.jp