Le livre Méthodes de prévision en finance est sorti, en France, cette semaine. L’application que je propose pour montrer la modélisation par copules (par opposition aux modèles GARCH multivariés en particulier) est basée sur un vieux billet sur le blog (ou les codes permettent de reproduire l’analyse que j’en fait), remis en forme dans un court article, Prévision avec des copules en finance
Tag Archives: Finance
Pareto models for risk management
Our paper, with Emmanuel Flachaire, “Pareto models for risk management” is now online…
The Pareto model is very popular in risk management, since simple analytical formulas can be derived for financial downside risk measures (Value-at-Risk, Expected Shortfall) or reinsurance premiums and related quantities (Large Claim Index, Return Period). Nevertheless, in practice, distributions are (strictly) Pareto only in the tails, above (possible very) large threshold. Therefore, it could be interesting to take into account second order behavior to provide a better fit. In this article, we present how to go from a strict Pareto model to Pareto-type distributions. We discuss inference, and derive formulas for various measures and indices, and finally provide applications on insurance losses and financial risks.
“Ethics in Quantitative Finance”
Just before going to the workshop on dependencies in finance and insurance, Tim Johnson (also known as @TCJUK on Twitter), researcher at Heriot-Watt University in Edinburgh and blogger on http://magic-maths-money.blogspot, sent me a copy of his manuscript entitled Ethics in Quantitative Finance: a pragmatic theory of markets. While opening the book, we think of Peter L. Bernstein, his masterpieces Capital Ideas (or the later Capital Ideas Evolving) as well as Against the Gods. But Tim’s book is quite different. This book is not really about finance, but about financial valuation and actuarial science. We can clearly see the deep interactions between financial mathematics and actuarial science. About uncertainy, prices and probabilities. And all those topics are embeded with a philosophical perspective
the argument is presented that financial markets are radically uncertain environments, where correspondence theories of truth are meaningless since there are no matters of fact about an uncertain financial future. In the face of this uncertainty, markets are places where “the opinion which is fated to be ultimately agreed to by all who investigate” is sought and opinions are expressed through asset prices. This implies that markets are centres of communicative action and money is behaving as a language. Using Jürgen Habermas’ analysis, this implies that market prices ‒ statements of opinions ‒ must satisfy objective, subjective and social truth criteria. The argument presented is that reciprocity guarantees the objective truth, sincerity guarantees the subjective truth and charity guarantees the rightness of a price. This explains why reciprocity is embedded in financial mathematics.
Picking an asset to invest
Yesterday, Andrew Lo spent some time on a nice graph, discussing attitudes towards risk. Here are four assets (thanks @TCJUK for improving the terminology), real data (no information here about time, but it’s the same scale for the four of them)
The question raised was quite simple
if you could invest in one, and only one, asset which one will you pick ?
Forecasting Financial Markets Conference
This week, we’ll have in Rennes the 22nd International Forecasting Financial Markets Conference (http://ffm-conference.com/). I will be chairing some sessions on Thursday,
Copulas and Financial Time Series
I was recently asked to write a survey on copulas for financial time series. The paper is, so far, unfortunately, in French, and is available on https://hal.archives-ouvertes.fr/. There is a description of various models, including some graphs and statistical outputs, obtained from read data.
To illustrate, I’ve been using weekly log-returns of (crude) oil prices, Brent, Dubaï and Maya.
The dataset is available from an excel file, oil.xls (I thought it was possible to load it direclty from the internet, but it did not work… so I suggest to download the file first, and then load it)
> library(xlsx) > temp <- tempfile() > download.file( + "http://freakonometrics.free.fr/oil.xls",temp) trying URL 'http://freakonometrics.free.fr/oil.xls' Content type 'application/vnd.ms-excel' length 99328 bytes (97 KB) downloaded 97 KB > oil=read.xlsx(temp,sheetName="DATA",dec=",") Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : java.io.IOException: block[ 0 ] already removed - does your POIFS have circular or duplicate block references? > oil=read.xlsx("D:\\home\\acharpen\\mes documents\\oil.xls",sheetName="DATA")
Then we can plot those three time series
> head(oil) Date WTI brent Dubai Maya 1 1997-01-10 2.73672 2.25465 3.3673 1.5400 2 1997-01-17 -3.40326 -6.01433 -3.8249 -4.1076 3 1997-01-24 -4.09531 -1.43076 -6.6375 -4.6166 4 1997-01-31 -0.65789 0.34873 0.7326 -1.5122 5 1997-02-07 -3.14293 -1.97765 -0.7326 -1.8798 6 1997-02-14 -5.60321 -7.84534 -7.6372 -11.0549 > Time=as.Date(oil$Date,"%Y-%m-%d") > plot(Time,oil[,3],type="l",ylab="Brent, weekly log returns",ylim=range(oil[,3:5]))
The idea is to use some multivariate ARMA-GARCH processes here. The heuristics here is that the first part is used to model the dynamics of the average value of the time series, and the second part is used to model the dynamics of the variance of the time series. Two kinds of models are considered in the paper
- a mutivariate GARCH process (or a model on the dynamics of the variance matrix) on the residuals from the ARMA models
- a multivariate model (based on copulas) on the residuals of the ARMA-GARCH process
Las Vegas and financial institutions
Exactly one month ago, I entered the Bellagio casino to gamble at the roulette. It was actually a request from my daughter’s godfather (who happens to be a probabilist, actually). On a comment on a previous post, he suggested the following deal,
In the Bellagio you put 10$ for me on the 33 and 10$ for you as well. If 33 shows up, you bring me to a French “3 étoiles” restaurant next time you stop by in France. If 33 doesn’t shows up, I bring you to MacDonald…
I have to admit that I like eating in French “3 étoiles” restaurants, so I did gamble. Well, I could not remember the terms of the agreement very well (neither the number to select, nor the amount to put on the table). So I did ask my daughter which number I was supposed to pick, and she choose 22. Anyway, the number that came up was neither the 33 nor the 22, so we lost. And roulette tables at the Bellagio were down to a $15 minimum (from what I remember, I was supposed to play $5 or $10). And I have seen tables with $100 minimum (probably more, but I am not sure, and I could not take much pictures inside) ! So I did play $15 (I did keep chips as souvenirs), and I have to admit that I was excited during a few seconds. I really enjoyed that thrilling sensation ! And I was playing only $15 !
Later on, in the room of the hotel – while we’ve been watching TV – we saw some poker games where people where putting $200,000 on the table (there was almost a million in the pot) ! I tried to explain my kids that this was a reason why there were so many signs on the walls claiming that kids were not supposed to enter casinos, and so many ads about gambling being an addiction. It is not reasonable to put so much on a table ! $200,000 on the table ? This is probably more than all I could possibly own !
I thought about all that yesterday, when I discovered the following Table, about leverage ratios of bank,see http://fool.com/investing/…
Company |
Leverage Ratio (Assets-to-Equity), 2007 |
---|---|
Bear Stearns | 34:1 |
Morgan Stanley | 33:1 |
Merrill Lynch | 32:1 |
Lehman Brothers | 31:1 |
Goldman Sachs | 26:1 |
(with similar values in U.K., according to http://voxeu.org/…)
What does 30 mean ? It means that a company with $1 in capital holds $30 in (various) financial positions (see http://newleftreview.org/II/… for a discussion). If you think about it, with a relative decline of 3.5%, the absolute loss is larger than the capital hold by the company… Now, if we forget about Lehman, and focus on me, gambling in Las Vegas, we can try to illustrate this 30:1 leverage ratio as follows. The way I see it is that, if I were a bank with $200,000 equity (equity being, from my understanding, everything I own), I would be able to borrow 30 times this amount, and put this money on some table in Las Vegas. OK, there might be a big difference, since in Vegas, on average I will loose money, while most models in finance claim that (on average) we should gain money (somehow, since it might depend on your reference level). And no one really own the casino in real life. But still. A 30 leverage ratio means that I would be playing more than $6 million on a table in Las Vegas ! How should I understand that 30 leverage ratio ? Am I really such a small player ? Are banks really too big players ? Or perhaps they do not hold enough capital to play that big….
Crash course on R for financial and actuarial econometrics
The crash course announced for this Friday, in Montréal, entitled Econometric Modeling in Finance and Insurance with the R Language, has been canceled by IFM2 – or to be more specific postponed. I will upload the slides on financial and actuarial applications later on (even if most of the material can be found, here and here, on this blog). Sorry about this late announcement.
Visualizing uncertainty using Jackknife
Once again, I (re)discovered last week at the Rmetrics conference that old tools can be extremely interesting to illustrate complex ideas, like uncertainty in fnancial markets, and stock prices. For instance a 99.5% quantile: we look for the scenario that occur with a probability of 1 out of 200. Are there nice ways to illustrate that quantity ?
Consider the monthly evolution of the SP500 index over the last 22 years,
> library(quantmod) > getSymbols('^GSPC', from='1990-01-01') [1] "GSPC" > GSPC = adjustOHLC(GSPC, + symbol.name='^GSPC') > MGSPC = to.monthly(GSPC) > CLOSE = MGSPC$GSPC.Close > plot(CLOSE)
It is possible to use Jackknife technique to illustrate uncertainty. The idea, in Jackknife, it to remove one of the observations, and to do that for all observations. More formally, from a sample , we define a (sub)sample where observation as been removed, i.e. . Then, we can study all samples when one observation was removed.
Here, in the context of financial time series, over 270 months, we can wonder what might have been the final value of the index if one observation (i.e. one month) had been removed. It is actually the idea of Jackknife,
> R=diff(log(CLOSE)); R=R[-1] > n=length(R) > X=rnorm(n,mean(R),sd(R)) > X=R > MX=t(matrix(X,n,n)) > MX=exp(MX) > diag(MX)=1 > SMX=MX > for(k in 2:n){SMX[,k]=SMX[,k-1]*(MX[,k])}
We can plot the different trajectories of the index, when we remove one month,
> init=as.numeric(CLOSE[1]) > plot(1:n,init*cumprod(exp(X)),type="l", + xlab="",ylab="",col="white") > for(k in 1:n){lines(0:n,init*c(1,SMX[k,]), + col="light blue")} > lines(0:n,init*c(1,cumprod(exp(X))),lwd=2, + col="blue")
This can be used to understand sensitivity, or unccertainty, of financial time series,
We can then look closer at the final value of the index, over those 270 scenarios,
or we also use a Box-Plot,
Here we can clearly see the impact: if we remove one good month, the index ends around 1250, while it reaches 1650 if we remove a bad month. The difference is huge. So instead of talking about volatility (which is actually a complex concept), that Jackknife idea of remove observations might be more intuitive, and much easier to get a first understanding of uncertainty. But those ideas of resampling are great. I will post a nice application soon (but first, I will discuss with some colleagues in Lyon).
Pricing options on multiple assets
I am a big fan of trees. It is a very nice way to see how financial pricing works, for derivatives. An with a matrix-based language (R for instance), it is extremely simple to compute almost everything. Even options multiple assets. Let us see how it works. But first, I have to assume that everyone knows about trees, and risk neutral probabilities, and is familiar with standard financial derivatives. Just in case, I can upload some old slides of the first course on asset pricing we gave a few years ago at École Polytechnique.
where the probability is the so-called risk neutral probability
So, we’ve done it here with only one single period, but it is possible to extend it to multiperiods. The idea is to keep that multiplicative representation of possible values of the stock, and to get a recombinant tree. At step 2, the stock can take only three different values: went up twice, went down twice, or went up and down (or the reverse, but we don’t care: this is the point of recombining). If we write things down, then we can prove that
for some probability parameter (the so-call risk neutral probability, if it is unique). But we do not really care about those closed formula, the goal is to write an algorithm which computes the tree, and return the price of a call option (say). But before starting, we have to make a connection between that model with up and down prices, and the parameters of the Black-Scholes diffusion, for the stock price. The idea is to identify the first and the second moment, i.e.
(where, under the risk neutral probability, the trend is the risk free rate) and
The code might look like that
n=5; T=1; r=0.05; sigma=.4;S=50;K=50 price=function(n){ u.n=exp(sigma*sqrt(T/n)); d.n=1/u.n p.n=(exp(r*T/n)-d.n)/(u.n-d.n) SJ=matrix(0,n+1,n+1) SJ[1,1]=S for(i in(2:(n+1))) {for(j in(1:i)){SJ[i,j]=S*u.n^(i-j)*d.n^(j-1)}} OPT=matrix(0,n+1,n+1) OPT[n+1,]=(SJ[n+1,]-K)*(SJ[n+1,]>K) for(i in(n:1)) {for(j in(1:i)){OPT[i,j]=exp(-r*T/n)*(OPT[i+1,j]*p.n+ (1-p.n)*OPT[i+1,j+1])}} return(OPT[1,1]) }
We can plot the evolution of the price, as a function of the number of time periods (or subdivision of the time interval, from now till maturity of the European option),
N=10:400 V=Vectorize(price)(N) plot(N,V,type="l")
Note that we can compare with the Black-Scholes price of this call option, given by
where
and
d1=1/(sigma*sqrt(T))*(log(S/K)+(r+sigma^2/2)*T) d2=d1-sigma*sqrt(T) BS=S*pnorm(d1)-K*exp(-r*T)*pnorm(d2) abline(h=BS,lty=2,col="red")
The code is clearly not optimal, but at least, we see what’s going on. For instance, we do not need a matrix when we calculate using backward recursions the price of the option. We can just keep a single vector. But this matrix is nice, because we can use it to price American options. For instance, with the code below, we compare the price of an American put option, and the price of European put option.
price.american=function(n,opt="put"){ u.n=exp(sigma*sqrt(T/n)); d.n=1/u.n p.n=(exp(r*T/n)-d.n)/(u.n-d.n) SJ=matrix(0,n+1,n+1) SJ[1,1]=S for(i in(2:(n+1))) {for(j in(1:i)) {SJ[i,j]=S*u.n^(i-j)*d.n^(j-1)}} OPTe=matrix(0,n+1,n+1) OPTa=matrix(0,n+1,n+1) if(opt=="call"){ OPTa[n+1,]=(SJ[n+1,]-K)*(SJ[n+1,]>K) OPTe[n+1,]=(SJ[n+1,]-K)*(SJ[n+1,]>K) } if(opt=="put"){ OPTa[n+1,]=(K-SJ[n+1,])*(SJ[n+1,]<K) OPTe[n+1,]=(K-SJ[n+1,])*(SJ[n+1,]<K) } for(i in(n:1)) { for(j in(1:i)) {if(opt=="call"){ OPTa[i,j]=max((SJ[i,j]-K)*(SJ[i,j]>K), exp(-r*T/n)*(OPTa[i+1,j]*p.n+ (1-p.n)*OPTa[i+1,j+1]))} if(opt=="put"){ OPTa[i,j]=max((K-SJ[i,j])*(K>SJ[i,j]), exp(-r*T/n)*(OPTa[i+1,j]*p.n+ (1-p.n)*OPTa[i+1,j+1]))} OPTe[i,j]=exp(-r*T/n)*(OPTe[i+1,j]*p.n+ (1-p.n)*OPTe[i+1,j+1])}} priceop=c(OPTe[1,1],OPTa[1,1]) names(priceop)=c("E","A") return(priceop)}
It is possible to compare those price, obtained on trees, with prices given by closed (approximated) formulas.
> d1=1/(sigma*sqrt(T))*(log(S/K)+(r+sigma^2/2)*T) > d2=d1-sigma*sqrt(T) > (BS=-S*pnorm(-d1)+K*exp(-r*T)*pnorm(-d2) ) [1] 6.572947 > N=10:200 > M=Vectorize(price.american)(N) > plot(N,M[1,],type='l',col='blue',ylim=range(M)) > lines(N,M[2,],type='l',col='red') > abline(h=BS,lty=2,col='blue') > library(fOptions) > (am=BAWAmericanApproxOption(TypeFlag = + "p", S = S,X = K, Time = T, r = r, + b = r, sigma =sigma)@price) [1] 6.840335 > abline(h=am,lty=2,col='red')
Another great thing with trees, is that it becomes possible to plot to region where it is optimal to exercise our right to sell the stock.
Let us move now to a model with two assets, as suggested by Rubinstein (1994). First, observe that a discretization of two independent Brownian motions will be based on two independent random walk, taking values
i.e. both went up (NW), both went down (SE), and one went up while the other went down (either NE or SW). With independent and symmetric random walks, the probabilities will be respectively 1/4. An if we move one step foreward, we have the following tree.
Here it is still recombining. But the size will increase much faster than in the univariate case. Now, assume that there might be some correlation. Then one can consider the following values, to have a specific correlation,
And again, the idea is then to identify the first two moments. This gives us the following system of equations for the four respective (risk neutral) probabilities
For those willing to do the maths, please do. The answer should be
and for the last one
The code here looks like that
price.spead=function(n){ T=1; r=0.05; K=0 S1=105 S2=100 sigma1=0.4 sigma2=0.3 rho=0.5 u1.n=exp(sigma1*sqrt(T/n)); d1.n=1/u1.n u2.n=exp(sigma2*sqrt(T/n)); d2.n=1/u2.n v1=r-sigma1^2/2; v2=r-sigma2^2/2 puu.n=(1+rho+sqrt(T/n)*(v1/sigma1+v2/sigma2))/4 pud.n=(1-rho+sqrt(T/n)*(v1/sigma1-v2/sigma2))/4 pdu.n=(1-rho+sqrt(T/n)*(-v1/sigma1+v2/sigma2))/4 pdd.n=(1+rho+sqrt(T/n)*(-v1/sigma1-v2/sigma2))/4 k=0:n un=matrix(1,n+1,1) SJ= (S1 * d1.n^k * u1.n^(n-k-1)) %*% t(un) - un %*%t(S2 * d2.n^k * u2.n^(n-k-1)) OPT=(SJ)*(SJ>K) for(k in(n:1)) { OPT0=matrix(0,k,k) for(i in(1:k)) { for(j in(1:k)) {OPT0[i,j]=(OPT[i,j]*puu.n+OPT[i+1,j]*pdu.n+ OPT[i,j+1]*pud.n+OPT[i+1,j+1]*pdd.n)*exp(-r*T/n)}} OPT=OPT0} return(OPT[1,1])}
If we look at the details, consider two periods, like on the figure above, the are nine values for the spread,
> n=2 > SJ [,1] [,2] [,3] [1,] 32.02217 84.86869 119.443578 [2,] -47.84652 5.00000 39.574891 [3,] -93.20959 -40.36308 -5.788184
and the payoff of the option is here
> OPT [,1] [,2] [,3] [1,] 32.02217 84.86869 119.44358 [2,] 0.00000 5.00000 39.57489 [3,] 0.00000 0.00000 0.00000
So if we go backward of one step, we have the following square of values
> k=n > OPT0<-matrix(0,k,k) > for(i in(1:k)) + { + for(j in(1:k)) + { + OPT0[i,j]=(OPT[i,j]*puu.n+OPT[i+1,j]*pdu.n+ + OPT[i,j+1]*pud.n+OPT[i+1,j+1]*pdd.n)*exp(-r*T/n) + } + } > OPT0 [,1] [,2] [1,] 22.2741190 58.421275 [2,] 0.5305465 5.977683
The idea is then to move backward once more,
> OPT=OPT0 > OPT0<-matrix(0,k,k) > for(i in(1:k)) + { + for(j in(1:k)) + { + OPT0[i,j]=(OPT[i,j]*puu.n+OPT[i+1,j]*pdu.n+ + OPT[i,j+1]*pud.n+OPT[i+1,j+1]*pdd.n)*exp(-r*T/n) + } + } > OPT0 [,1] [1,] 16.44106
Here calculations are much (much) longer,
> price.spead(250) [1] 15.66496
and again, it is possible to use standard approximations to compare that price with a more standard one,
> (sp=SpreadApproxOption(TypeFlag = + "c", S1 = 105, S2 = 100, X = 0, + Time = 1, r = .05, sigma1 = .4, + sigma2 = .3, rho = .5)@price) [1] 15.65077
Well, playing with trees is nice, but it might not be optimal for complex products. Next time, we’ll discuss other techniques…
Gold price and fear
Via @theEconomist, I understood that there might be connections between the price of Gold (which is said to be extremely high nowadays) and the VIX SP500 index (the option volatility index, i.e. the so-called “fear index“, as discussed – in French- a few months ago). This has been discussed also on several blogs, e.g. http://etfdailynews.com/ or http://blogs.marketwatch.com/. Via Yahoo quotes, it is possible to get also easily the
SP500 VIX index.
> library(tseries) > X=get.hist.quote("^VIX") > T=time(VIX) > Y=as.POSIXlt(T)$year+1900 > X2011=X[Y==2011,] > VIX=X2011[,4] > VIX100=as.numeric(VIX)/VIX[1]*100 > T2011=T[Y==2011] > plot(T2011,VIX100,lwd=2,col="red",type="l", + xlab="",ylab="",ylim=c(60,290))
And a huge xls file can give us the price of gold (on a daily basis). But we can extract only one series (with the price in USD, which is the series of interest here)
> goldprice=read.table( + "http://freakonometrics.blog.free.fr/ public/data/goldpriceUSD.csv", + header=TRUE,sep=";",dec=",") > T=as.Date(goldprice$Name,"%d/%m/%y") > GP=goldprice$USdollar > Y=as.POSIXlt(T)$year+1896 > GP2011=GP[Y==2011] > GP100=GP2011/GP2011[1]*100 > T2011=T[Y==2011] > lines(T2011-4*365.25,GP100,lwd=2,col="blue")
We can see that scales are quite different on those two series (starting at 100 at the beginning of January 2011),
An alternative might be not to consider the price of gold, but something more psychological, like Internet researches. It is possible to download the csv file for queries on gold price on Google, via google insight.
> google=read.table( + "http://freakonometrics.blog.free.fr/public/data/google.csv", + skip=4,header=TRUE,sep=",",nrows=51) > W=as.Date(substr(as.character(google$Semaine),1,10)) > G=google$gold.price > G100=G/G[1]*100 > lines(W,G100,lwd=2,col="blue")
which gives the following graph (again, starting at 100 at the beginning of January 2011),
Here, we can clearly observe that the two series are related, maybe cointegrated. Nice isn’t it ?
Fibonacci: des lapins à l’actualisation
Depuis qu’on peut facilement commander des livres d’occasion outre-atlantique, j’avoue en abuser un peu… La dernière commande que j’ai faite est le “origins of value“. Cet ouvrage, qui est une compilation d’articles d’histoire de la finance, contient un chapitre passionnant sur Leonardo Pisano alias Fibonacci. Pour remettre dans le contexte, Fibonacci vivait il y a fort fort longtemps, autour de 1200 (300 ans avant la renaissance et Léonard de Vinci). Je peux renvoyer ici par exemple pour une analyse de quelques uns de ses ouvrages.
Pour moi, Fibonnaci, c’était l’histoire de la reproduction des lapins, c’est à dire, l’étude
des suites récurentes pour ceux qui se souviennent de leurs cours de lycée, avec des suites de la forme
Le problème que l’on cherche à résoudre – posé par Fibonacci – est “partant d’un couple, combien de couples de lapins obtiendrons-nous après un nombre donné de mois sachant que chaque couple produit chaque mois un nouveau couple, lequel ne devient productif qu’après deux mois ?”. Pour ceux qui se souviennent de la résolution, l’équation charactéristique de cette relation de récurence est un polynôme de degré 2,
dont les solutions sont
et
Le premier nombre est souvent connu comme étant le nombre d’or (ici). Bref, Fibonacci a été recyclé abondamment par l’utilisation ésotérique de cette racine de polynôme de degré 2. Aussi, lorsque j’ai vu évoqué le nom de Fibonacci dans cet ouvrage de finance, j’ai eu peu peur, d’autant plus que certaines personnes faisant de l’analyse chartiste utilisent ce nombre d’or (comme l’évoque rapidement certains site, comme http://www.forexfibonacci.com/ ou http://www.fibonaccitrader.com/). Aussi, parler de Fibonacci en finance, c’est un peu comme parler de Nostradamus dans les modèles de prévisions.
Que nenni mon ami ! Fibonacci est l’auteur d’un Liber Abaci, correspondant à un livre des calculs. En fait, Leonardo s’est énormément inspiré des mathématiques arabes, alors que la norme était plutôt l’arithmétique romaine. Pour ceux qui ont essayé un jour dans leur vie de lire des nombres latins (même dans Astérix), la logique est assez déroutante ! Par exemple 888 s’écrit DCCCLXXXVIII… Essayez avec cette écriture de poser une addition ! Les nombres arabes – eux – utilisaient le système décimale, ce qui a fait gagné énormément de temps de calcul (on peut aussi remonter à l’arithmétique indienne, mais on sort largement du cadre de mon billet). Fibonacci évoque d’ailleurs constamment l’utilisation de la règle de trois (sans l’appeler ainsi, j’étais revenu ici sur l’origine de cette règle).
Dans son livre d’arithmétique des nombres arabes, Fibonacci montre une application intéressante: le calculs d’actualisation et des marges commerciales. William Goetzmann reprend tout cela dans un article publié en 2003, ” Fibonacci and the Financial Revolution” en ligne ici. Il faut aller pour cela dans le chapitre 12 du Liber Abaci, où Fibonacci parle de partage du profit (ce que nous appellerions l’allocation de capital, et que l’on retrouve dans les travaux sur les jeux coopératifs, en particulier les travaux de Shapley), mais aussi d’actualisationde flux futurs, et surtout, de réflexions sur la différence entre un taux annuel et un taux trimestriel. La version en anglaise est la suivante
ou encore
Dans la version originale, cela donne
Quand on pense qu’auparavant l’arithmétique se faisait en chiffre romain, et n’autorisait pas de raisonnements aussi subtils, on peut légitimement penser que Fibonacci est révolutionné le calcul actuariel (certes, en se contentant de traduire des textes arabes). Si on cherche à remonter encore dans le temps, on peut également citer un mathématicien indien, Brahmagupta, ब्रह्मगुप्त, vers 650, qui semble également avoir beaucoup inspiré Fibonacci.
Market valuation des garanties des produits d’assurance
Pour le dernier cours d’actuariat 2, on parlera de market valuation, i.e. de valorisation financière. Je vais aussi en profiter pour éclairer Bruno (pour qui j’avais déjà commencé à poster des billets sur le contrôle optimal) sur “comment introduit-t-on la mesure risque neutre dans un passif ?” , sous-entendu en assurance-vie (en assurance non-vie c’est à mon avis plus compliqué, mais c’est la question que l’on se pose quand on valoriser des cat-bonds par exemple). Notons que ce problème s’est posé assez tôt dans la littérature économique, je renverrais par exemple au papier de Brennan et Schwartz en 1976.
- Valorisation de produits financiers (en marché complet)
Je passerais un peu rapidement (en renvoyant ici ou là pour les grands principes), mais les techniques principales pour valoriser les actifs financiers sont les prix d’Arrow-Debreu, les probabilités risque-neutre, et les déflateurs. Mais auparavant, rappelons que le marché est composé de n actifs financiers (bien distincts) dont les prix et les payoffs sont parfaitement connus, et de n états de la natures, de telle sorte que la matrice des payoffs soit de plein rang. Introduisons le concept de portefeuillle de réplication. Compte tenu du fait que la matrice des payoffs est de plein rang, on a l’existence et l’unicité d’un tel portefeuille. Considérons un ensemble de payoff contingents aux états de la nature
Il est alors possible de créer un portefeuille (dit de réplication) qui permette de toucher précisément ces payoffs à la date 1. Le prix (à la date 0) d’un tel actif est alors le prix du portefeuille de réplication.
Considérons les actifs rapportant 1 dans un état de la nature, et 0 sinon, à la date 1, i.e.
appelés actifs d’Arrow-Debreu. On note le prix aujourd’hui d’un tel actif. Notons que le prix d’un actif sans risque, rapportant 1 demain dans tous les états du monde est . Aussi, si on note le taux sans risque, alors
Le prix de l’actif rapportant à la date 1 est alors .
Posons tel que soit une distribution de probabilité. Alors
où l’espérance est prix sous la mesure de probabilité appelée probabilité risque-neutre.
Je renvoie ici (par exemple) pour l’introdution de cette probabilité via les arbres binomiaux. Bref, c’est ainsi que l’on arrive au théorème fondamental de la valorisation d’actif en marché complet: le prix d’un actif contingent l’espérance sous probabilité risque neutre, des payoff actualisés.
Aussi, prenons l’exemple d’un put européen, de maturité T et de strike K. Le prix (à la date 0) du put est donné par
Rappelons d’ailleurs que la formule de Black et Scholes donne un prix pour un tel produit financier (un put européen),
Voilà rapidement comment on valorise un produit financier en marché complet, en calculant la valeur d’un portefeuille de réplication.
- Valorisation de produits d’assurance
Pour valoriser les produits d’assurance, classiquement, on calcule des primes pures, ou des valeurs actuelles probables. Par exemple en assurance-vie (car c’est essentiellement de ça dont on parle non ?), considérons simplement une garantie plancher, où l’on s’engage à verser 1€ au décès d’un souscripteur. La valeur actuelle probable (que l’on calcule sous la probabilité historique) est alors
que l’on pourrra réécrire
(où j’adopte une convention de temps continu pour les taux pour garder une analogie avec le cas financier, mais ça n’est pas vraiment important ici). Bref, par rapport à la valorisation financière on valorise toujours des flux futurs (payoffs) actualisés, mais en prenant l’espérance sous la probabilité historique. Et c’est généralement comme ça que l’on valorise un produit d’assurance: les risques ne sont pas échangés sur des marchés liquides, on n’a donc pas vraimentt de marché complet, et les assureurs espèrent simplement que la mutualisation (via la loi des grands nombres) leur permettra d’avoir égalité entre les flux entrants et les flux sortants.
Remarque: j’avais fait l’an dernier un rapide billet sur la transformée d’Esscher (ici) qui présentait une méthode conciliant les deux approches. Mais je suis toujours à la recherche du papier original (datant de 1932) pour proposer une nouvelle discussion sur ce sujet…
- Valorisation des garanties planchers dans les contrats d’assurance vie, une approche heuristique
Là où les choses se compliquent c’est quand on mélange des garanties d’assurance (un décès) avec des garanties financières (sur des taux ou bien un actif financier pour des contats en unité de compte). Considérons pour cela un contrat décès, où l’assureur s’engage à payer, au moment du décès à la date le maximum entre la somme investie en actif risqué à la signature du contrat, et le niveau atteint par l’actif lors du décès, . Autrement dit, l’assureur s’engage à verser . De manière plus général, disons qu’il existe une valeur plancher en dessous de laquelle on ne descendra pas, que l’on notera K.
Notons que l’on peut réécrire le payoff
Le terme de gauche est la valeur de l’actif, et le second terme peut être interprété comme la valeur de la garantie plancher. Par la suite, on ne s’intéressera qu’à la valeur de cette garantie. Le flux versé (pour cette garantie) à la date t, pour un individu d’âge x à la souscription est alors tout simplement
(les dates étant supposées discrètes ici). Si l’on cherche à calculer la valeur actuelle probable de l’ensemble des flux, on voit que deux espaces de probabilités intervienne: l’espace des probabilités actuarielles (sous lesquelles on couvre le risque de décès en supposant les risques mutualisables, i.e. l’univers historique ) et l’espace des probabilités financières (sous lesquelles on couvre le risque financiers, i.e. l’univers risque neutre ). Autrement dit, la valeur actuelle probable s’écrit
que l’on pourrrait réécrire
où le terme à droite est le prix d’un call de strike K de maturité t.
Notons que la commission de contrôle s’était penché sur le sujet il y a quelques années, via le mémoire d’actuariat de Sylvain Merlus et Olivier Pequeux (ici), et c’est ce genre de formule qui avait été proposé, à savoir de faire somme somme de prix de put. Et c’est cette approche que la réglementation a imposé de valoriser cette garantie.
Pour aller plus loin, il avait aussi été précaunisé d’utiliser la formule de Black et Scholes pour valoriser ces puts, ce qui a donné la formule “standard”
où
et
Voilà comment on valorise une telle garantie. Je n’ai parlé de la couverture, car on voit qu’elle ne serait pas parfaite, loin de là.
Comme toutes les formules standards, elle a l’avantage de la simplicité.
Bon formellement, si on veut faire ça proprement, ça risque d’êetre plus compliqué, et il faudrait parler des mesures risques neutre forward, mais on fera ça une autre fois. Sinon tout ça est repris dans une multitude de documents que l’on peut trouver ici, là, voire ici ou encore là. Et pour aller plus loin, il y a eu récemment pas mal de livres qui abordent ces sujets….
En complément, je pourrais aussi mettre des vieux transparents d’un cours donné il y a plusieurs années maintenant,
Primes, joker et mathématiques financières
Lors du dîner de gala des JEEA jeudi soir, Mohamed m’a posé une question intéressante, et je lui ai promis un billet (ou plutôt deux car son problème est compliqué, et je ne connais la solution qu’à une version simple). Le problème est le suivant: un gros assureur à trois lettres souhaite encourager les agents commerciaux par une prime. On leur donne un joker, et durant une période d’un mois, ils concluent des affaires nouvelles. Ils ont la possibilité de toucher une fois (et un seule) une prime (en utilisant leur joker) qui sera proportionnelle au montant de l’affaire signée. Quelle est la stratégie optimale pour utiliser leur joker ?. Une question plus courte pour résumer cette optimalité: le deuxième jour, un gros contrat (aux yeux du vendeur) est signé: faut-il utiliser son joker ou vaut-il mieux attendre un peu ? Bon, le vrai problème est qu’ils ont 5 jokers, et qu’ils peuvent les utiliser en une seule fois, ou en plusieurs…. Avant de réfléchir à cette histoire de 5 jokers, regardons un peu avec un….
- Formalisation du problème…
Faisons quelques hypothèses forcément simplificatrices… On suppose que chaque jour, un contrat est signé, et que les montant des contrats sont indépendants et identiquement distribués (on ne fait pas de plus gros deal en début de mois). Soit le montant de la prime associée à la kième affaire (si on utilisait le joker). Il faut alors arbitrer, chaque jour k, entre
- toucher
- ne pas toucher la prime, et espérer que l’on touchera davantage plus tard.
Notons la valeur du joker à la date k. Alors
Aussi
soit
On sait aussi que (le dernier jour, si on a le joker, on l’utilise). Autrement dit, on devrait y arriver par induction backward… Et la résolution dépend de la loi des montants des affaires.
- si F est uniforme sur [0,100]
Dans ce cas, l’équation se simplifie. Si ,
et
soit
On peut visualiser cette fonction sur le graphique suivant, en fonction du temps
Autrement dit, on se fixe une stratégie a priori, et on s’y tient ! Sur la simulation suivant, on utilise son joker dès le 4ème jour,
Bon, je suis nul en calculs, mais en faisant du monte carlo, on en déduit la loi de la date optimale d’exercice,
ainsi que le gain espéré (ce qui permettra à Mohamed de se couvrir).
Notons que l’espérance de la date d’exercice est environ le 12ème jour, et le montant moyen est de 95 (contre 50 en exerçant le dernier jour).
- si on change de loi, une loi exponentielle ?
Je pense qu’on peut faire des calculs fermés…. mais je suis un peu paresseux…. on obtient la courbe suivante
La distribution de la date optimale donne
et pour le montant empoché
Dans ce cas, on exerce en moyenne au bout de 17 jours, pour un gain moyen de 174.
- L’exercice d’options américaines
Damned, mais tout ça correspond au problème de valorisation des options américaines (ou plutôt Bermudéennes car le temps est discret). Les options dites bermudéennes peuvent être exercée à un ensemble prédéterminé de dates
L’idée de la valorisation est simple: à chaque date, le détenteur de l’option a en effet de choix,
- exercer son option et en retirer un payoff
- conserver son option, de telle sorte que son option vaut en
Si on note le facteur d’actualisation entre les dates et , on en déduit que la valeur en de l’option peut s’écrire
où est la filtration naturelle, et est une probabilité risque neutre, sous laquelle la valeur actualisée de l’actif est une martingale, i.e.
Je renvoie à mes notes de cours de méthodes numériques en finance (ici) mais en utilisant les arbres binomiaux, on peut valoriser un put américain, par exemple,