2012-02-07 52 views
2

我正在構建一個蒙特卡洛仿真爲功率估計的目的,我需要運行10,000次迭代,其中每個迭代涉及擬合一串混合線性&邏輯模型到我生成的數據。一旦進入藍月亮,我會得到如下的錯誤:收斂錯誤代碼在nlminb - 哪裏存儲?

nlminb問題,收斂錯誤代碼= 1;消息=迭代限制 沒有收斂

達到我從谷歌搜索的錯誤,這是常見的,可能是我的數據的功能(因爲它沒有在大多數貫穿模擬程序發生)聚集。然而,這是一個痛苦,因爲它使我的模擬崩潰,我可能會失去幾天的運行時間。我想使程序更強大的通過添加一些錯誤處理它,但我不知道在哪裏的「收斂錯誤代碼」存儲,如果任何地方。

檢查LME,lmeObject手冊頁和nlminb並沒有真正的幫助。有任何想法嗎?

+0

http://article.gmane.org/gmane.comp.lang.r.general/253908 – 2012-02-07 23:13:49

回答

1

這聽起來更像是一個比一個錯誤的警告。爲了成功收斂,nlminb返回的列表的「收斂」元素將爲0。我會問你是否想要增加控制列表中的「iter.max」元素。該信息位於幫助頁面上。

+0

感謝您的答覆。我不知道這是我需要的,雖然 - 在複雜的數據10000個模擬,我可能會碰到一些集合,使得我的模型不收斂,這就是爲什麼我希望建立異常而不是僅僅試圖防止收斂問題本身。 據我瞭解,錯誤和警告之間的區別是,錯誤將停止該程序,並警告將只設置警告標誌(除非你設置一個選項來停止所有的警告 - 我沒有)。是對的嗎?我的程序不僅設置了警告標誌,它也停止。 – ErinMcJ 2012-02-07 23:37:33

+0

但是......這是你正在做的事情之後,導致錯誤的呼叫。正如你所說,警告不會停止執行。在拋出錯誤後使用traceback()並找出根本原因。是否有其他程序調用'nlminb'? – 2012-02-08 02:45:25

+0

謝謝,我會試試。我希望能夠更可靠地觸發錯誤 - 您是否碰巧知道數據集的哪些屬性導致它們無法收斂?我昨天花了一些時間試圖專門生成不正確的數據,所以我可以進一步詢問錯誤,但反過來,失敗了。 – ErinMcJ 2012-02-08 13:17:03