2012-02-23 111 views
0

我使用Matlab-fminsearch作爲二項分佈函數的負極大似然模型。我沒有收到任何錯誤通知,但是我想估計的參數始終是起始值。顯然,有一個錯誤。我知道我提出了一個完全一般的問題。但是有沒有可能有任何人有同樣的錯誤,並知道如何處理它? 非常感謝,最大似然fminsearch

@woodchips,謝謝你很多。一步一步,我試着去做你建議我的事情。首先,我實際上最大化了(-log(可能性)),這不是問題。我想我發現了這個問題,但如果我不打擾你,我仍然有一些問題。我有一個模型(param)在paramstart = p1中最大化。這個模型是爲(-log(likelihood(F)))構建的,我的F是一個向量化函數,如F(t,Z,X,T,param,m2,m3,k,l)。 (tdata,kdata,ldata),X,T是網格,Z是這個網格上的函數,(m1,m2,m3)是給定的參數。當我想看到F(tdata, Z,X,T,m1,m2,m3,kdata,ldata),我獲得了很好的輸出。但我認爲fminsearch認爲F(tdata,Z,X,T,p,m2,m3,kdata,ldata)像一個常數,所以我始終將估計參數作爲起始值。我會很高興,如果你有任何建議來調整。

+0

我認爲你需要閱讀演示和幫助fminsearch。 IT有很多如何使用它的例子。在這種情況下,似乎fminsearch不知道你想優化哪些參數。再看看例子,並遵循它們。 – 2012-02-24 13:25:02

+0

@woodchips,再次感謝。 – user1018331 2012-02-24 13:48:53

回答

2

你有一些選項可以嘗試調整。我會從算法開始。

當功能值在起點附近幾乎沒有變化時,它也有問題。也許切換到對數似然有幫助。

我總是使用fminuncfmincon。它們還允許提供Hessian(通常優於「估計」)或「典型值」,因此算法不會在不可行區域花費時間。

+0

謝謝你的回答。我會嘗試你的提示。 – user1018331 2012-02-24 08:21:52

1

事實上,你永遠不應該最大化似然函數,但總是最大化該函數的日誌。浮點問題幾乎總是會破壞問題。你的優化開始和停止在同一點是一個很好的指標,這是問題所在。

您可能需要深入一點,但即便如此,下一個測試是測試,我建議所有優化工具的用戶都爲他們的每一個問題做好準備,在他們將一個函數放入優化。評估你的目標在附近的幾個點。它會產生顯着不同的值嗎?如果不是,那麼看看爲什麼不。你是否創建了一個不平滑的目標來優化或零目標?即,在所提供的公差範圍內爲零?

如果確實產生了不同的值但仍然不收斂,請確保您知道如何正確調用優化器。對,就像以前從沒有人犯過這個錯誤。這實際上是優化器失敗的一個常見原因。

如果確實會產生不同的好值,並且您正在調用優化器,那麼請考慮是否存在優化程序嘗試分歧產生垃圾回收結果的區域。目標是產生複雜還是想象的結果?

+0

非常感謝你。如果我不打擾你,你能幫我拿我的籌碼。我是在同一個問題下寫的。 – user1018331 2012-02-24 12:37:39