2016-05-13 4 views
0

私は3次元の多変量正規分布を生成しようとしていますが、その値は各次元で約0〜100の範囲になります。1Dの場合の分散に対する等価共分散行列はどれくらいですか?

Iは、平均50と分散16と1次元の正規分布を生成する場合:

data = random.normal(50, 16, 1000) 

を私は多変量場合にそれを拡張するとき、得られた分布は値だけ、値がほぼ0から100の範囲しかしました35から65の範囲:

covar = [[16, 0, 0], [0, 16, 0], [0, 0, 16]] 
data = random.multivariate_normal([50, 50, 50], covar, 1000) 

Iは0から100

までの範囲の予想される結果、値を取得するための三次元 random.normalを使用して

この矛盾はどこから起こりますか?私は多変量の場合、各ディメンションに必要な値の範囲を得るために私はこのような共分散行列行う必要があります。

covar = [[300, 0, 0], [0, 300, 0], [0, 0, 300]] 

平均の正規分布のために完全に不合理なようだ50

どんな助けでも大歓迎です!

答えて

0

分散を標準偏差と混同しています。もしnp.random.multivariate_normalに渡す共分散行列の対角がに対応するのに対し、np.random.normal

scale=

パラメータは各次元での差異、標準偏差(分散の平方根すなわち)を指定します。

共分散行列の対角を16**2 == 256に設定してみてください。

+0

これは今や理にかなっています!私は 'np.random.multivariate_normal'も標準偏差を使っていますが、明らかにそうではないと考えました。ご協力いただきありがとうございます! – mirelio

+0

これは理由のためにco *分散*行列と呼ばれています... –

+0

私はあなたが "(すなわち分散の平方根)"の代わりに "(すなわち分散の平方根)"を意味すると思います – ayhan

関連する問題