Spline extrapolation in a smooth, horizontal manner

5 次查看(过去 30 天)
I would like to replicate the empirical findings of a model in the paper "Option‐implied risk aversion estimates" by "Bliss & Panigirtzoglou (2004).
They estimate a natural cubic spline on observed option prices. This function is then extrapolated beyond the range of this observed data, in a smooth, horizontal manner.
My question is: How do you apply this in MATLAB? I already estimated the spline interpolation in the range of the observed data with the function csaps. However, I don't know how to extrapolate it beyond the ending points.
Thanks in advance!
  3 个评论
Sim Kron
Sim Kron 2020-6-8
Hi David,
thanks for your help! Do you know how this extrapolation of the fnxtr function works? Does it use the polynomial of the two ending points (so the two "extreme" observations) or does it simply expand the function linearly outside the range for which I have observations? Regarding your question: I have never heard of extrapolation being responsible for the dotcom crash. Sry, can't help you there.
Thanks again!
John D'Errico
John D'Errico 2020-6-8
Long ago, in a galaxy far, far away, I wrote a tool that tried to intelligently extrapolate an existing spline function. It allowed you to extrapolate the end of the curve, but using information provided by the user. For example, it could extrapolate, but force the extrapolated function to be monotonic. This actually required some fairly careful coding on my part, and sadly it does not lie in the public domain, nor would I be terribly willing to re-write it. I won't write code for the public domain that I feel would require an interface that is too complex.
The problem is, if you extrapolate a (cubic) spline, it will see a cubic segment. And cubic polynomials can do all sorts of nasty stuff when extrapolated. Extrapolate too far, and you can get almost any result. And that of course, is the fundamental problem of extrapolation. Intelligent extrapolation really requires additional information to yield anything that is well-posed.
The code fnxtr seems to be (in my opinion) too generous, in that it assumes the user understands what they are getting into when they do extrapolation. It allows you to do any extrapolation they wish. You can extrapolate using the existing polynomial segment, or you can force it to do a lower order extrapolation, while maintaining some degree of continuity with that segment. But the one thing fnxtr does not do is control the expected shape of the result.
Essentially that puts the onus of intelligence directly upon the user, because it really assumes they will check the result to see if the extrapolant would be meaningful, and that check would require a moderately deep understanding of the splines involved.
Really though, no matter how it is accomplished, extrapolation is a risky business.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Splines 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by