Comment inverser une fonction ?

Je n’aurais jamais imaginé découvrir avec la célèbre fonction de Black-Scholes à quel point il peut être difficile d’inverser une fonction. Le problème n’est pas numérique ; il y a de nombreux algorithmes performants pour cela même s’ils ne sont pas tous connus du plus grand nombre. Il s’agit d’un problème d’asymptotiques : sous certaines hypothèses (grande ou petite maturité par exemple), il faut trouver le développement asymptotique de la volatilité en fonction du prix de l’option.

Je m’étais frotté à ce problème quand j’étais « quant » à Londres il y a plusieurs années et j’avais juste été capable de donner les premiers termes du développement. J’avais fini par abandonner complètement après avoir vu circuler un long article de Roger Lee et d’un de ses étudiants sur ce sujet au moment où je finissais de rédiger le mien. L’article de Lee a depuis été cité près d’une centaine de fois mais j’en avais toujours gardé un sentiment étrange ; je n’avais pas réussi à lire et comprendre vraiment en profondeur l’article de Lee (qui aujourd’hui encore reste abscons pour moi) et je restais persuadé que le problème devait se résoudre autrement et plus simplement.

C’est à ce moment que je suis revenu voir mon ami Joris van der Hoeven et très rapidement, tout s’est éclairé… Au final, nous répondons non seulement au problème posé mais en plus, nous donnons des algorithmes effectifs pour inverser des fonctions connues comme la fonction de Gauss, la fonction de Lambert, la fonction Gamma incomplète ou plus généralement des fonctions de type « exp-log » qui sont hautement tangentes à l’identité… Notre article est disponible ici.

Insistons sur le fait que le problème n’est pas simple a priori. Si une fonction est analytique au voisinage d’un point, son inverse fonctionnelle (lorsqu’elle existe) s’obtient facilement grâce au théorème des fonctions implicites. Cependant, si la fonction considérée n’est pas analytique en ce point, les choses sont nettement plus compliquées…

Donnons un exemple qui dépasse le cadre de la finance : étant donné y très proche de 1^{-}, trouver x tel que

\frac{1}{\sqrt{2 \pi}}\int^x_{- \infty} e^{-\frac{t^2}{2}} dt = y.

Peut-on exprimer x en fonction de y ? Au fond, inverser Black-Scholes n’est pas plus compliqué que résoudre ce problème déjà ancien…

Inversion de la formule de Black-Scholes

Voici la formule de Black-Scholes :

BS(S,K,T,\sigma) = S Q(d_+)-K Q(d_-)

Ici, S, K, T, \sigma désignent respectivement le prix du sous-jacent considéré (le prix d’une action par exemple ou un taux d’intérêt), le strike de l’option, la maturité de l’option et la volatilité. La fonction Q est la fonction Gaussienne Q(x)=\frac{1}{\sqrt{2 \pi}}\int^x_{- \infty} e^{-\frac{t^2}{2}} dt et d_{\pm}=\frac{\log \left( \frac{S}{K} \right) \pm\frac{\sigma^2 T}{2}}{\sigma \sqrt{T}}. Pour simplifier, on a supposé que le taux d’intérêt était nul.

Dans les années 70, Black-Scholes et Merton voulaient calculer le prix d’une option BS(S,K,T,\sigma) en fonction d’un paramètre appelé volatilité \sigma. Aujourd’hui, on veut au contraire calculer \sigma en fonction du prix de l’option…

Il y a au moins une raison à vouloir inverser Black-Scholes de manière théorique. Issus de modèles stochastiques décrivant la dynamique des actifs financiers, les prix d’options sont solutions d’équations aux dérivées partielles de la forme

\partial_{\tau} y = L.y

où \tau désigne le temps restant avant que l’option ne parvienne à maturité et L est un opérateur différentiel d’espace dont les variables sont des fonctions des paramètres du modèle. La plupart du temps, l’équation ci-dessus n’a pas de solution fermée exacte car les modèles considérés sont bien plus compliqués que celui de Black-Scholes. Et s’ils le sont, c’est bien sûr que le modèle de Black-Scholes ne parvient pas à décrire la réalité des marchés financiers et à expliquer notamment l’existence d’un « smile » de volatilité.

On est donc réduit à rechercher des approximations du résultat, ce qui conduit à des calculs de développements asymptotiques de prix d’option sous certaines hypothèses comme {\tau}\ll 1 ou {\tau}\gg 1 par exemple.

Différentes techniques ont été développées à cet effet. Il s’agit souvent de méthodes de perturbations utilisées en physique. On pourra consulter par exemple le livre d’Ivan AvramidiHeat Kernel Method and its Applications, professeur de mathématiques à l’École des mines du Nouveau-Mexique.

Or, on souhaite calculer non seulement le prix de l’option mais également et surtout sa volatilité implicite (dans le cadre d’une option vanille). Il faut voir cela comme d’un héritage. Black-Scholes est certes désuet mais on veut tout de même conserver les apparences et en particulier on souhaite toujours pouvoir manipuler le \sigma présent dans la  formule de Black-Scholes que l’on appelle volatilité implicite (il s’agit d’une mauvaise traduction de l’anglais implied volatility).

Bref, il s’agit d’opérer une transformation : passer d’un développement en prix à un développement en volatilité implicite. En théorie, il suffit d’appliquer pour cela la fonction inverse de la fonction de Black-Scholes. Seulement voilà, la fonction de Black-Scholes n’est pas analytique autour de {\tau}=0 ni de \tau=\infty. Ce n’est pas étonnant vu que le pay-off de l’option S\longmapsto (S-K)_+ = Max(S-K,0) n’est lui-même pas analytique et que la fonction gaussienne Q n’est-elle même pas analytique en +\infty comme on l’a rappelé plus haut… Cela rend la transformation plus compliquée.

A l’aide d’un petit tour de passe-passe, on peut montrer que le développement de la formule de Black-Scholes en temps très petit ou au contraire dans la limite où \tau est très grand est toujours de la forme :

y(x) = x + \alpha \log x + \varphi_0 + \sum_{i = 1}^n  \frac{\varphi_i}{x^i} + {\footnotesize \mathscr{O}} \left( \frac{1}{x^n}\right)

Si \tau\ll 1, on a \alpha = \frac{3}{2}, x=\frac{\log^2 \left( \frac{K}{S} \right)}{2\sigma^2 \tau} et y=-\log(\frac{C-(S-K)_+}{S}). Si \tau\gg 1, on a \alpha=\frac{1}{2} , x=\frac{\sigma^2 \tau}{8} et y=-\log(\frac{S-C}{S}). Dans les deux cas, C désigne le prix Black-Scholes C=BS(S,K,T,\sigma), \varphi_0, \varphi_1, ... sont des réels indépendants de \sigma et x\gg 1. Inverser Black-Scholes consiste donc à trouver x en fonction de y.

Fonctions hautement tangentes à l’identité

Plus généralement, on peut s’intéresser à une fonction réelle \phi dont le développement asymptotique en fonction de x\gg 1 est de la forme

\phi(x) = x + \phi_0 + \frac{\phi_1}{x} + \frac{\phi_2}{x^2} + \cdots+\frac{\phi_n}{x^n} +\mathscr{O} (x^{- n - 1 / 2})

pour tout entier n et où, cette fois-ci, \phi_0, \phi_1,... désignent des fonctions polynomiales en \log(x). Une telle fonction \phi est dite hautement tangente à l’identité. Elle est nécessairement inversible au voisinage de +\infty. Cependant son inverse fonctionnelle \phi^{<-1>} n’est pas simple à obtenir. Une idée pour obtenir le résultat est de considérer le problème non plus dans un ensemble de fonctions réelles mais dans un anneau algébrique du type {\Bbb A}={\Bbb R}[\log x][[\frac{1}{x}]]. Dans ce cas, le problème de la recherche de l’inverse fonctionnelle de \phi est semblable à un problème de recherche de zéro d’une fonction. En effet, la fonction \phi^{<-1>} est solution de l’équation

\phi(g) = x

qui peut se résoudre à l’aide d’une simple méthode de Newton en partant par exemple de g=x. L’existence d’une valuation sur {\Bbb A} (la valuation est définie par v(\frac{1}{x})=1 et v\left(\log(x)\right)=0) simplifie les choses et permet de majorer l’erreur entre la solution théorique et la solution approchée. En général, le bon cadre pour traiter ce genre de problème est de considérer \phi (x) comme une transsérie formelle et d’appliquer des résultats théoriques d’inverses fonctionnelles connues pour les transséries. Cependant, la signification analytique du résultat est perdue en général…

Nous montrons qu’un algorithme du type Newton peut encore s’appliquer dans un cadre purement analytique en travaillant sur un corps de Hardy muni d’une fonction dite raide (voir la définition dans notre article) permettant encore de définir une valuation. C’est le cas par exemple des fonctions dites « exp-log ». Tout découle de là…

Je n’aurais jamais su tout cela si je n’étais pas allé voir régulièrement Joris dans son bureau à l’X. Pour les lecteurs curieux, je signale qu’un travail colossal sur les transséries vient de paraître, écrit par Joris conjointement avec deux collaborateurs. Et encore, il ne s’agit que du premier tome…

Si vous voulez voir la formule donnant l’inverse fonctionnelle de la fonction y(x) donnée à la fin de la section précédente, jetez un coup d’oeil à la dernière page de l’article !

Merci Joris !