程式

R 中的 SABR 校準。如何估計 rho 和 nu 以使平方誤差和最小化

  • May 4, 2017

我從預定義的 beta 和 alpha 開始。然後我想找到 rho 和 nu 以使S平方誤差****的總和最小化。SSE 是指我的模型估計的波動率和觀察到的市場波動率之間的差異。我怎樣才能在 R 中做到這一點?我做了以下工作:

## difvol is a function of rho and nu, which is the sum of squared errors.
nlm(difvol,0.01,0.01)

diffvol 是這樣設計的:

(第一次觀察到的波動率 - 黑色隱含波動率)^2 + (第二次觀察到的波動率 - 黑色隱含波動率)^2 …

黑色隱含波動率在我的設置中沒有值,因為我沒有對 rho 和 nu 的估計。

但是,nlm 程式碼只返回一個估計值,我需要估計 nu 和 rho。從這裡做什麼?如何正確使用 nlm。

我知道我的 diffvol 功能本來可以更好,但我不想改變它。

嘗試重新設計你的對象函式,你的difvol,所以它是一個二維向量的函式

dilvol<-function(X){ 
rho<-X[1]
nu<-X[2]
##type in your function here and use rho and nu normally..
}
nlm(difvol,c(0.1,0.1)

這可能有效

引用自:https://quant.stackexchange.com/questions/31029