2017-10-22 12 views
1

ダム質問ようhereから容赦なく、ベクトル化正規分布のPython

N = 10000 
x = 10 + 2*np.random.randn(N) 
y = 5 + x + np.random.randn(N) 

def neg_loglike(const,coef,std): 
    mu = const + coef*x 
    print(mu.shape) 
    return -1*stats.norm(mu, std).logpdf(y).sum() 

seed = np.array([1,1,1]) 
res = minimize(neg_loglike, seed, method = 'Nelder-Mead', 
      options={'disp': True}) 

MUは、この場合の配列/ベクターである - そうstats.norm各々に対する正規分布を生成しています値x

最後に、res.x の最適値を正しく解釈すると、これらのパラメータが正規分布の集合を生成することになります分布でyを見る確率を最大化する。

答えて

2

はい、normは、locscaleのベクトルを受け取り、各入力を独自の分布として扱います。参照したリンクの場合のように、1つのパラメータのベクトルともう1つのスカラーを入力しても問題ありません(scale1locはベクトルxです)。例えば

from scipy.stats import norm 

norm(loc=[1,2,3], scale=1).logpdf([4,5,6]) 

出力:

array([-5.41893853, -5.41893853, -5.41893853]) 
+0

質問の気の毒と最後の部分 - 実質的に異なる問題だオプティマイザ – RSHAP

+0

の結果を解釈する方法です、とではありません実際にコーディングに関連しています。最尤という文脈でNelder-Mead Simplexの結果を理解することは、[Cross Validated](https://stats.stackexchange.com/)に適したトピックです。 –

+0

ok that is fair、 – RSHAP

関連する問題