2017-02-27 92 views
2

私は実行したシミュレーションの確率密度ヒストグラムをプロットしようとする単純なタスクを実行しました。しかし、プロットすると、各ビンの確率は周波数プロットの結果と一致しないようです。 50ビンでは、各ビンに2%の平均確率があり、それはグラフに反映されません。事前にMatplotlibを使った確率密度ヒストグラム

おかげ

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 

plntAcres = 88.0 
hvstPer = 0.99 
hvstAcres = plntAcres*hvstPer 
yldAcre = np.random.triangular(47,48,49, 10000) 

carryIn = 464 
pdn = hvstAcres * yldAcre 
imp = 25.0 
ttlSup = carryIn + pdn + imp 

crush = np.random.uniform(1945, 1990,10000) 
expts = np.random.uniform(2085, 2200,10000) 
seedRes = 130 
ttlDem = crush + expts + seedRes 

carryOut = ttlSup - ttlDem 

print carryOut 

plt.hist(carryOut, bins=50,normed=True) 
plt.title("Carry Out Distribution") 
plt.xlabel("Value") 
plt.ylabel("Probability") 
plt.show() 

Probability density of Carry out

答えて

1

ため チェックウィキペディア、normed引数がprobabilitesではなく、確率密度にはなりません。確率自体が必要な場合は、代わりにweights引数を使用してください(1/len(carryOut)を入力してください)。

重要な2行:

weights = np.ones_like(carryOut)/(len(carryOut)) 
plt.hist(carryOut, bins=50, weights=weights) 
+0

ありがとう!、それは働いた。感謝します – Moj

0

あなたのスキーマはベルカーブで、通常お使いの確率変数が正規分布していることを意味します。 hist機能でNormal Distribution/Gauss distribution

+0

と理由のため。彼は同等の標準偏差を持つ3つの確率変数を加算(減算)しています。相関関係がない限り(この場合ではない)、結果はガウス分布(大数の法則)に近い傾向があります。 –

+0

私の主な問題は、inidvidualビンの確率が1になっていないように見えて、なぜわからないのですか?@honza_p – Moj

+0

今質問を理解しています。 –

関連する問題