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: Brent
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