2016-12-10 8 views
0

これは、標準のscipy expect関数メソッドの使い方がわからないためです。私が使用している場合: scipy.stats.uniform.expectは手動計算とは異なる値を持っています

np.mean(np.random.uniform(-0.2,0.2,1000)**2) 

私は0.013235491320680141を持って、私は期待して正しい値である:私は手計算を使用している場合0.0026666666666666666

from scipy.stats import uniform 
    uniform.expect(lambda k: k**2,lb=-0.2,ub=0.2) 

私は値を得ました。だから私は標準的な期待関数または積分関数で何が間違っていたのですか?助けてください。

+0

ドキュメント。 stats.rv_continuous.expect.html#scipy.stats.rv_continuous.expect) – Eric

+0

私はチェックしましたが、正しい値を取得する方法はまだ分かりません。ドキュメントに例はありません。 –

+0

'ub'と' lb'についてのあなたの理解は間違っています。 'expect'は単にその分布の方法ではないので、それらは一様分布のパラメータではありません。 '' dist.expect(f、lb、ub) 'は期待値' f(x) 'を意味します。' x〜dist'は 'lb Eric

答えて

3

the documentation for expectを見ると、ublbはあなたの考えを意味するものではありません。それらは積分の境界であり、分布のパラメータではない。

あなたが実際にしたい:[ `scipy.stats.rv_continuous.expect`はこちら](https://docs.scipy.org/doc/scipy/reference/generated/scipyため

scipy.stats.uniform(loc=-0.2, scale=0.4).expect(lambda x: x**2) 
関連する問題