我有一系列数字数据(由Strike组织的选项调用价格)。
我想计算R中的第二个派生词。
我能够拟合平滑的曲线,例如
call.lo <- loess(mid ~ strike, df.x, model=T)
但是我坚持从那个到分化。
任何帮助表示感谢,谢谢。
答案 0 :(得分:2)
您想要discrete second derivative吗?
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
就像预期的那样。