校準GBM參數時如何繞過平坦概似函式?
我想聯合校準幾何布朗運動的漂移 mu 和波動率 sigma ,
$$ \log(S_t) = \log(S_{t-1}) + (\mu - 0.5*\sigma^2) \Delta t + \sigma*\sqrt{\Delta t}*Z_t $$ 在哪裡 $ Z_t $ 是一個標準的正態分佈隨機變數,我正在通過生成數據來測試它 $ x = \log(S_t) $ 通過
x(1) = 0; for i = 2:N x(i) = x(i-1) + (mu-0.5*sigma^2)*Deltat + sigma*sqrt(Deltat)*randn; end
和我的(對數)概似函式
function LL = LL(x, pars) mu = pars(1); sigma = pars(2); Nt = size(x,2); LL = 0; for j = 2:Nt LH_j = normpdf(x(j), x(j-1)+(mu-0.5*sigma^2)*Deltat, sigma*sqrt(Deltat)); LL = LL + log(LH_j); end
我最大化使用
fmincon
(因為 sigma 被限制為正),起始值 0.15 和 0.3,真實值 0.1 和 0.2,N = Nt = 1000
或 100000 個生成點超過一年(即 $ \Delta t $ = 0.0001 或 0.000001)。單獨校準波動率會產生一個很好的概似函式,在真實參數附近具有最大值,但對於小的 Deltat(小於 0.1),校準 mu 和 sigma 會持續顯示(對數)概似面在 mu 中非常平坦(至少在真正的參數);我希望那裡也有一個最大值;出於某種原因,我認為應該可以將 GBM 模型校準為一年內 100 個股票價格的數據系列,使 Deltat = 0.01 的平均值。
非常感謝任何經驗或幫助的分享(我腦海中閃過的想法:概似函式不正確/這是正常行為/數據點太少/數據生成不正確/…?)。
這是優化問題中經常發生的情況,即某個方向幾乎是平坦的。Google“預處理”。基本上這個想法是重新調整變數,以便 Hessian 有大約。對角線上相同數量級的值。
此外,這不是一個固定過程,因此估計 mu 可能很困難。
順便說一句,不確定在這裡使用“normpdf”功能是否是一個好主意。相反,您可能應該只寫出完整的對數概似表達式(但不確定這是否會有所幫助)。不過,這對我來說似乎是正確的。
對數概似函式在 $ \mu $ -direction,用於小時間範圍(您使用 $ T = 1 $ 看起來像)。您可能已經註意到,增加觀察次數但保持時間範圍相同並不能提高估計的準確性 $ \mu $ - 如果你問我,這有點違反直覺。但是,增加時間範圍 $ T $ 確實提高了估計的準確性。要查看此內容,請在此處查看我的問題。
Merton (1980)提出使用貝氏技術,在該技術中,您首先指定 $ \mu $ 並使用貝氏規則推導出新的對數概似函式。這現在被稱為“最大後驗 (MAP)”估計,是嘗試更好地估計 $ \mu $ . 但事實仍然存在:MLE 估計 $ \mu $ 在短時間範圍內是出了名的不准確。