簡體   English   中英

在Python中擬合Monte Carlo

[英]Fitting with monte carlo in python

我使用一個名為emcee的python包來使函數適應某些數據點。 擬合看起來不錯,但是當我想在每一步繪制每個參數的值時,我得到以下信息:

在此處輸入圖片說明

在他們的示例中(具有不同的功能和數據點),他們得到了:

在此處輸入圖片說明

為什么我的函數收斂如此之快,為什么它在開始時就具有怪異的形狀。 我使用可能性和后驗概率應用MCMC。 即使擬合看起來很好,函數參數的誤差也很小(比實際值小10 ^ 10),我認為這是由於隨機游走。 知道如何解決嗎? 這是他們的擬合代碼: http : //dan.iel.fm/emcee/current/user/line/我使用了相同的代碼,對我的數據點和擬合函數進行了明顯的修改。

我不會說您的函數的收斂速度比您鏈接到的emcee行擬合示例快。 在該示例中,步行者幾乎立即開始探索參數空間中最可能的值,而在您的情況下,它需要超過200次迭代才能到達高概率區域。

軌跡圖中的跳躍看起來像是老化。 這是MCMC采樣算法的一個共同特征,即為步行者提供遠離大部分后路的起點,然后必須找到通往后路的路。 在您的情況下,似然函數看起來相當平滑,因此您只需要進行大約一百次迭代即可實現此目的,從而使函數具有您正在談論的“怪異形狀”。

如果可以更好地限制起點,請這樣做; 如果不是,您可以考慮在進行進一步分析之前丟棄此初始長度(有關長度燃燒的討論,請參見此處此處 )。

至於誤差是否是現實的,您需要為此檢查生成的后驗模型,因為實際參數值與其不確定性之比在此沒有發言權。 例如,如果我們以您的鏈接示例為例 ,將b的真實值更改為10 ^ 10,則所得的誤差將減小十個數量級,同時仍保持完全有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM