我有一组数字数据(碰巧是由 Strike 组织的期权看涨价格)。
我想计算 R 中的二阶导数。
我能够拟合平滑曲线,例如
call.lo <- loess(mid ~ strike, df.x, model=T)
但我坚持从那个到差异化。
任何帮助表示赞赏,谢谢。
我有一组数字数据(碰巧是由 Strike 组织的期权看涨价格)。
我想计算 R 中的二阶导数。
我能够拟合平滑曲线,例如
call.lo <- loess(mid ~ strike, df.x, model=T)
但我坚持从那个到差异化。
任何帮助表示赞赏,谢谢。
你想要离散的二阶导数吗?
mid <- 1:100; strike <- (1:100)^3 + 2*(1:100)^2 + 1:100 + 5
deriv <- function(x, y) diff(y) / diff(x)
middle_pts <- function(x) x[-1] - diff(x) / 2
second_d <- deriv(middle_pts(mid), deriv(mid, strike))
smooth_second_d <- loess(second_d ~ midpts,
data.frame(second_d = second_d, midpts = middle_pts(middle_pts(mid))), model = T)
例子:
plot(middle_pts(middle_pts(mid)), deriv(middle_pts(mid), deriv(mid, strike)))
我看到6x + 4
了预期的结果。