2017-03-22 14 views
1

標準正規分布に対してscipy.stats.normによって生成された確率密度関数にモンテカルロ積分を使用しようとしましたが、1 /(2 * sqrtの代わりに1scipy.stats.norm density関数は1に統合されていません

コードの(PI)):それは私がここで何か間違ったこと1.アムに収束しない理由

from scipy.stats import norm 
from numpy import average, pi 
import math 
samples = norm.rvs(loc=0, scale=1, size=10000000) 
average(norm.pdf(samples, loc=0, scale=1)) - (1/(2*math.sqrt(pi))) 

これは戻ります〜0 誰かが説明していただけますか?

答えて

1

通常は大量に配布されているサンプルでPDFを評価し、そのPDF値の平均を取っています。実際には、正規分布に対する標準PDFの期待値を計算しています。これを計算する簡単な方法は次のとおりです。

In [284]: from scipy.stats import norm 

In [285]: norm.expect(norm.pdf) 
Out[285]: 0.28209479177387786 

In [286]: 1/(2*np.sqrt(np.pi)) 
Out[286]: 0.28209479177387814 
+0

愚かな私...もちろんあなたです。私は、例えば、リーマン・サムを使って、ルーベーグ対策と統合すべきだった。これは本当に1を返します。 – user25640

関連する問題