Introduction à l'analyse de la performance financière des actifs cotés. Après un rappel de la définition de la performance en finance, l'intervention est centrée sur l'analyse statistique sous le langage de programmation R.
Available in English as soon as possible!
3. Introduction
• L’analyse de la performance est une question importante
• Question financière
• La financiarisation de l’économie a amené les marchés financiers à
dominer la coordination économique
• Question méthodologique
• Comment évaluer la performance d’un portefeuille ?
• Question théorique
• Quelle représentation des marchés financiers ?
3
4. Introduction
• Le cours est une introduction à l’analyse de la
performance financière en utilisant un langage de
programmation
• Comment est définie la performance dans la théorie financière ?
• Quels sont les résultats attendus selon la théorie moderne du
portefeuille ?
• Quelles sont les mesures de la performance ?
4
5. Introduction
• Plan (I)
1. La notion de performance en finance
2. Statistiques descriptives
3. Histogramme et tests de normalité
4. Analyse espérance-variance
5
7. La notion de performance
• Historique
• L’analyse de la performance est une des questions originelles qui a
construit la théorie des marchés financiers
• Bachelier (1900) met en évidence qu’à tout moment la hausse et la
baisse de cours sont équiprobables
• L’évolution des cours est aléatoire
• Cowles (1933, 1944) met en évidence que les conseils d’investissement
des analystes financiers ne permettent pas de surperformer le marché
• Il est impossible de prévoir les cours futurs
7
8. La notion de performance
• Hypothèse d'efficience des marchés
• Définition
8
[…] the ideal is a market in which prices provide accurate signal for ressource
allocation: that is, a market in which firms can make production-Investment decisions,
and investors can choose among the securities that represent ownership of firms’
activities under the assumption that security prices at any time "fully reflect" all
available information. A market in which prices always "fully reflect" available
information is called "efficient". (Fama E., 1970)
[the market efficiency hypothesis is] the simple statement that security prices fully
reflect allavailable information. A precondition for this strong version of the hypothesis
is that information and tranding costs, the costs of getting prices to reflect information,
are always 0 (Grossman and Stiglitz (1980). A weaker and enconomically more
sensible version of the efficiency hypothesis says that prices reflect information to the
point where the marginal benefits of acting on information (the profits to be made) do
not exceed the marginal costs (Jensen (1978). (Fama E., 1991)
9. La notion de performance
• Hypothèse d'efficience des marchés
• Définition
• La définition de l’efficience varie en fonction de l’information considérée
(Fama, 1970)
9
Information publique,
passée et présente
(efficience au sens
semi-fort)
Information publique,
passée (efficience au
sens faible)
Information publique,
et privée (efficience
au sens fort)
10. La notion de performance
• Hypothèse d'efficience des marchés
• Conséquences
• Le prix est une estimation non biaisée de la valeur intrinsèque d’un titre
• Il n’y a pas de meilleur analyste financier que le marché
• Les variations futures sont indépendantes des variations passées
• Marche aléatoire des marchés
• La bonne anticipation récurrente des variations est impossible
• Hypothèse de valeur nulle du gérant (a)
10
11. La notion de performance
• Frontière efficiente (Markowitz, 1952)
• La frontière efficiente combine les actifs permettant une
comparaison des rentabilités des actifs
• Deux règles de dominance stochastique
• Un portefeuille efficient optimise le couple rentabilité-risque
• Un portefeuille diversifié comprend 50 lignes (cf. Euro Stoxx 50)
• Convergence vers la moyenne de marché et donc peu de
rentabilités extrêmes
11
A un niveau de rentabilité donné,
choix de l’actif le moins risqué
A un niveau de risque donné,
choix de l’actif le plus rentable
12. La notion de performance
• Frontière efficiente (Markowitz, 1952)
• La frontière efficiente est constituée de l’ensemble des portefeuilles
qui optimise le couple rentabilité/risque
12
Actif A
Actif B
Rf
0%
2%
4%
6%
8%
10%
12%
14%
0% 5% 10% 15% 20% 25%
Rentabilité(R)
Volatilité (σ)
Frontière efficiente à deux actifs risqués
Frontière efficiente à deux actifs dont Rf (capital market line)
13. La notion de performance
• Résultats attendus
• La performance intègre la notion de rentabilité et de risque
• Il existe plusieurs mesures de la rentabilité et du risque
• Les rentabilités suivent un processus aléatoire
• La représentation la plus courante est la loi normale
• Un bon gérant affiche une performance similaire au marché
compte-tenu du risque
• La surperformance est impossible
• La sous-performance est possible
13
Infinité des causes
Indépendance
des causes
Additivité des causes
14. La notion de performance
• Critiques
• Finance comportementale
• Il existe des biais comportementaux dans l’évaluation des actifs
financiers
• Anomalies de marché
• Anomalies calendaires : « effet janvier » (les rentabilités des premiers
jours de janvier sont anormalement élevées), « effet week-end » (les
rentabilités des lundi sont anormalement faibles)
• Autres anomalies : « effet taille » (prime des small caps), relation
négative entre PER et rentabilités et entre market to book ratio et
rentabilités
• La loi normale représentent imparfaitement l’évolution des cours
• La loi normale sous-estime le niveau de risque
14
16. Analyse de données
• Définition
• Procédure statistique destinée à déterminer les principales
caractéristiques d’un jeu de données
• La formation utilise le langage de programmation
16
#install packages (collections of functions which allow more
statistical techniques, and graphical devices)
install.packages("quantmode")
install.packages("fBasics")
install.packages("moments")
install.packages("PerformanceAnalytics")
install.packages("normtest")
install.packages("tseries")
install.packages("roll")
install.packages("xts")
Les données sont disponibles dans le fichier data.csv avec
- Pi, cours de clôture quotidiens d’une action i;
- Pm, cours de clôture quotidiens d’un indice de marché m
- RFR, taux de clôture d’une obligation souveraine fictive de maturité constante 10 ans
17. • Calcul des rentabilités quotidiennes
• Les rentabilités logarithmiques sont additives
17
#read data
data<-read.csv2(file= file.choose(),header = TRUE,sep = ";",dec = ",")
#Compute daily returns
library(quantmode)
data$Ri<-Delt(x1 = data$Pi,x2 = NULL,k = 1,type = "log")
data$Rm<-Delt(x1 = data$Pm,x2 = NULL,k = 1,type = "log")
data$Rf<- log(1+data$RFR/250)
#Clean up data object
#suppress 1st row
data<-data[-1,]
#suppress colums 2,3,4 (we only keep colums 1, 5 to 7)
data<-data[,c(1,5:7)]
1,
,
, ln
ti
ti
ti
R
R
R
Analyse de données
If the package “quantmode” doesn’t
work (it happens !), we can compute
daily returns as follows
data$Ri[2:774]<-log(data$Pi[2:774]/data$Pi[1:773])
data$Ri[2:774]<-diff(log(data$Pi))
18. • Statistiques descriptives
• Principaux indicateurs
18
n
t
itii RR
n 1
2
,
2
1
1
n
t
tiii R
n
RRE
1
,
1
library(fBasics)
basicStats(data[,2:4])
3
i
ii
i
RR
ESk
4
i
ii
i
RR
EK
Analyse de données
Ri Rm Rf
nobs 773.000000 773.000000 774.000000
NAs 0.000000 0.000000 0.000000
Minimum -0.035737 -0.032272 0.000093
Maximum 0.035524 0.025047 0.000156
I. Quartile -0.004088 -0.004349 0.000114
3. Quartile 0.005653 0.005855 0.000142
Mean 0.000491 0.000529 0.000127
Median 0.000639 0.000844 0.000130
Sum 0.379467 0.409023 0.097973
SE Mean 0.000298 0.000299 0.000001
LCL Mean -0.000094 -0.000057 0.000125
UCL Mean 0.001075 0.001115 0.000128
Variance 0.000069 0.000069 0.000000
Stdev 0.008278 0.008300 0.000017
Skewness -0.369131 -0.391430 -0.352644
Kurtosis I.794045 I.091768 -1.073065
19. • Statistiques descriptives
• Principaux indicateurs
19
Indicateur Définition
Moyenne
En finance, la moyenne est un indicateur de rentabilité
La moyenne est calculée sur des données quotidiennes. Elle doit être
exprimée sur une base annuelle (n = 252 jours)
Variance
En finance, la variance est un indicateur de risque.
La variance est calculée sur des données quotidiennes. Elle doit être
exprimée sur une base annuelle.
La variance est exprimée dans le carré de l’unité de mesure (« %² »). Elle
permet de calculer l’écart-type (volatilité)
yMean.Ri<-mean(data$Ri)*252
yMean.Rm<-mean(data$Rm)*252
ySD.Ri<-sd(data$Ri)*sqrt(252)
ySD.Rm<-sd(data$Rm)*sqrt(252)
Analyse de données
20. • Statistiques descriptives
• Principaux indicateurs
20
Indicateur Définition
Skewness
(Sk)
Coefficient d’asymétrie (moment centré d’ordre 3)
SI > 0, distribution décalée à gauche de la médiane (queue de distribution étalée
vers la droite)
Si < 0, distribution décalée à droite de la médiane (queue de distribution étalée
vers la gauche)
Kurtosis
(K)
Coefficient d’aplatissement (moment centrée d’ordre 4) (K>1)
Si > 3, distribution leptokurtique (queues « épaisses » avec des rentabilités
anormales plus fréquentes)
Si < 3, distribution platykurtique (queues peu épaisses, avec des rentabilités
anormales moins fréquentes)
Analyse de données
21. Analyse de données
• Statistiques descriptives
• Principaux indicateurs
• Quelques mesures du kurtosis
• Le kurtosis est parfois « normalisé » (calculé en excès de 3)
21
[1] 1.794045
attr(,"method")
[1] "excess“
[1] 4.794045
[1] 1.806473
[1] 4.806473
library(moments)
kurtosis(data$Ri)
mean(((data$Ri-mean(data$Ri))/sd(data$Ri))^4)
library(PerformanceAnalytics)
kurtosis(data$Ri, na.rm = FALSE, method = "excess")
kurtosis(data$Ri, na.rm = FALSE, method = "moment")
Le package le plus
explicite !
22. Analyse de données
• Statistiques descriptives
• Principaux indicateurs
• Quelques mesures du skewness
22
library(moments)
skewness(data$Ri)
mean(((data$Ri-mean(data$Ri))/sd(data$Ri))^3)
library(PerformanceAnalytics)
skewness(data$Ri, na.rm = FALSE)
Delt.1.log
-0.3698488
[1] -0.3691314
[1] -0.3698488
Il existe parfois de
(petits) écarts dans
les résultats
24. Tests de normalité
• Histogramme des rentabilités
• Pour la théorie financière, les marchés évoluent de manière
aléatoire
• Une représentation commune de l’aléatoire est la loi normale
• La loi normale a une structure causale qui définit un monde relativement
stable
• … cohérente avec l’hypothèse d’efficience (et la concurrence pure et parfaite)
• Faible occurrence des rentabilités extrêmes
• Forte occurrence des rentabilités autour de la moyenne
24
Mouvement brownien
Processus
stochastique Marche aléatoire
25. Tests de normalité
• Histogramme des rentabilités
• Définition
• Graphique qui permet d’observer une distribution et de la comparer à
d’autres distributions empiriques ou à une distribution théorique (N)
25
hist(data$Ri,main = "Histograms of Ri and Rm", breaks = 100, freq =
FALSE, xlab = "Ri", xlim = c(min(data$Ri,data$Rm),
max(data$Ri,data$Rm)), col = "green",axes = F)
axis(1, pos = 0, cex.axis = 0.8)
axis(2,pos = 0,cex.axis = 0.8,las = 2)
hist(data$Rm,breaks = 50, freq = FALSE, xlim =
c(min(data$Ri,data$Rm), max(data$Ri,data$Rm)), col = "red",,axes =
F,add = TRUE)
curve(dnorm(x, mean(data$Ri), sd(data$Ri)), xlim = c(min(data$Ri),
max(data$Ri)), lwd = 2,col = "grey", add = TRUE)
curve(dnorm(x, mean(data$Rm), sd(data$Rm)), xlim = c(min(data$Rm),
max(data$Rm)), lwd = 2,col = "red", add = TRUE)
legend("topleft",c("Histogram of Ri","Histogram of Rm"),lty =
c(1,1),col = c("green","red"),bty = "n")
26. Tests de normalité
• Histogramme des rentabilités
26
Distributions
plus
« pointues »
Des rentabilités
moins
fréquentes sur
les flancs
Des queues
plus
épaisses
27. Tests de normalité
• Histogramme des rentabilités
• La loi normale approxime mal la distribution des rentabilités
• Sous-estimation des occurrences de rentabilités extrêmes
27
(min(data$Ri)-mean(data$Ri))/sd(data$Ri)
pnorm(q = (min(data$Ri)-mean(data$Ri))/sd(data$Ri),mean = 0,sd =
1, lower.tail = TRUE, log.p = FALSE)
format(x = pnorm(q = -4.376432,mean = 0,sd = 1, lower.tail =
TRUE,log.p = FALSE),scientific = FALSE, digits = 10)
format(x = 1/(pnorm(q = -4.376432, mean = 0, sd = 1,TRUE,
FALSE)*nrow(data$Ri)), scientific = FALSE, digits = 10)
[1] -4.376432
[1] 6.03189e-06
[1] "0.000006031890184"
[1] "214.4702608"
« format » sort un
résultat en chaîne
de caractères
La rentabilité minimale est
survenue 1 fois en 773 jours
soit 214 fois trop souvent…
28. • Test de normalité des distributions
• Test non paramétrique de Jarque-Bera (1980) (pour n>>0)
• H0: Sk = 0 et K = 3 (les données suivent une loi normale)
• H1: Sk ≠ 0 ou K ≠ 3 (les données ne suivent pas une loi normale)
28
Jarque-Bera test for normality
data: data$Ri
JB = 122.73, p-value < 2.2e-16
Title:
Jarque - Bera Normalality Test
Test Results:
STATISTIC:
X-squared: 122.7298
P VALUE:
Asymptotic p Value: < 2.2e-16
Jarque Bera Test
data: data$Ri
X-squared = 122.73, df = 2, p-value < 2.2e-16
22
3
4
1
6
ii
i
i KSk
n
JB
Tests de normalité
library(normtest)
jb.norm.test(data$Ri)
library(fBasics)
jarque.beraTest(data$Ri)
library(tseries)
jarque.bera.test(data$Ri)
29. Tests de normalité
• Test de normalité des distributions
• Test non paramétrique de Kolgomorov-Smirnov
• H0 : D = D0 (les données suivent la loi normale)
• H1 : D ≠ D0 (les données ne suivent pas la loi normale)
29
Title: One-sample Kolmogorov-Smirnov test
Test Results:
STATISTIC:
D: 0.4878
P VALUE:
Alternative Two-Sided: < 2.2e-16
Alternative Less: < 2.2e-16
Alternative Greater: < 2.2e-16
library(fBasics)
ksnormTest(data$Ri)
A a = 10%, valeur critique = 1,223/√n
A a = 5%, valeur critique = 1,358/ √n
A a = 1%, valeur critique = 1,629/ √n
Si D calculé > valeur critique, rejet de H0
31. • Définition
• Combinaison de tests d'hypothèse consistant à tester une
hypothèse statistique
• Les tests paramétriques se basent sur une distribution théorique
• Deux risques d’erreur
• Risque de rejeter l'hypothèse nulle alors qu'elle est vraie
• Risque de première espèce a 1%, 5% ou 10%
• Risque de retenir l'hypothèse nulle alors qu'elle est fausse
• Risque de seconde espèce b
31
Analyse espérance variance
32. Test de Fisher Test de Student
Paramètre
Hypothèse
nulle (H0)
Hypothèse
alternative (H1)
• Définition
• Combinaison de deux tests paramétriques successifs sur la
variance et la moyenne
32
21 mm
21 mm
22
1 2
22
1 2
1
1
2
2
22
1
2
11
1;1 21
n
Sn
n
Sn
F nn
2
11
21
21
2
22
2
11
2121
221
nn
nn
SnSn
mmXX
T nn
Quand n1 = n2, 2
2
2
1
1;1 21
S
S
F nn
Analyse espérance variance
33. • Tests paramétriques
• Règle de décision
• Test de Fisher
• Test de Student
33
H0 acceptée H0 rejetée
0 Valeur
critique à
10%
Valeur
critique à 5%
Valeur
critique à 1%
H0 acceptée H0 rejetée
1 Valeur
critique à
10%
Valeur
critique à 5%
Valeur
critique à 1%
La p value est de plus en plus fréquemment
calculée
• si p value < 1%, rejet de H0 à 1% (***)
• si p value < 5%, rejet de H0 à 5% (**)
• si p value < 10%, rejet de H0 à 10% (*)
Analyse espérance variance
34. • Tests paramétriques
• Test de Fisher
• La variance de Ri est-elle différente de la variance de Rm ?
34
F test to compare two variances
data: data$Ri and data$Rm
F = 0.99478, num df = 772, denom df = 772, p-value = 0.9421
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.8637999 1.1456325
sample estimates:
ratio of variances
0.994785
var.test(x = data$Ri,y = data$Rm)
Le test sous R
ne suit pas la
convention
2
2
2
1
Analyse espérance variance
ifelse(var(data$Ri) > var(data$Rm), var(data$Ri) / var(data$Rm),
var(data$Rm) / var(data$Ri))
35. • Tests paramétriques
• Test de Student
• L’espérance de Ri est-elle différente de l’espérance de Rm ?
35
Paired t-test
data: data$Ri and data$Rm
t = -0.13619, df = 772, p-value = 0.8917
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.0005893457 0.0005128742
sample estimates:
mean of the differences
-3.823577e-05
t.test(x = data$Ri,y = data$Rm,paired = TRUE)
Analyse espérance variance
37. • Critiques
• La volatilité n’est pas stable dans le temps
• Calcul de la volatilité glissante à 20 jours
37
#Computing 20 day rolling Std dev
library(roll)
data$SD_Ri<-roll_sd(data$Ri,width = 20) *sqrt(252)
data$SD_Rm<-roll_sd(data$Rm,width = 20) *sqrt(252)
#Converting date data to date format
date<-as.Date(data$Date,format = "%d/%m/%Y")
data<-cbind(date,data[,-1])
library(xts)
data<-xts(data[,2:6],order.by = data[,1])
#Drawing plot
windows()
plot(data$SD_Ri[23:773], xlab = "Date", ylab = "Annualized Std
Dev",type = "l", col = "green")
lines(data$SD_Rm,col = "red")
legend("topleft",c("Std dev of Ri","Std dev of Rm"),lty =
c(1,1),col = c("green","red"),bty = "n")
title(main = "20 day rolling std dev of Ri and Rm")
Analyse espérance variance
40. Conclusion
• Les statistiques permettent de présenter, modéliser (et
prévoir?) le comportement d’un titre
• Les statistiques descriptives permettent de donner les moments de
la variable
• L’histogramme et le test de normalité permettent d’évaluer
l’adéquation entre une variable et la loi statistique de référence
• L’analyse espérance variance permet une comparaison des
variables
40
41. Conclusion
• L’analyse financière cherche à intégrer le risque et à
neutraliser des effets dus à plusieurs facteurs
• Monofactorial models are the precursors
• Modèle de marché (Sharpe, 1963)
• Modèle d’équilibre des actifs financiers (Lintner, 1965)
• Multifactor models try to integrate more variables
• Market timing (Treynor-Mazuy, 1966)
• Arbitrage pricing theory (Ross, 1976)
• Modèle de Fama-French à trois facteurs (1993)
• Modèle de Carhart à quatre facteurs (1997)
41
42. Bibliographie
Finance
• Bachelier L. (1900), Théorie de la spéculation, Annales scientifiques de l’ENS, (17)3, 21-86
• Carthart M. (1997), “On persistence of Mutual Fund Performance”, Journal of Finance, (52), 57-82
• Cowles A. (1933), “Can Stock Market Forecasters Forecast?”, Econometrica, (1)3, 309-324
• Cowles A. (1944), “Stock Market Forecasting”, Econometrica, (12)3-4, 206-214
• Fama E. (1970), “Efficient Capital Markets: A review of Theory and Empirical Work”, Journal of Finance,
(25)2, 383-417
• Fama E. (1991), “Efficient Capital Markets”, Journal of Finance, (46)5, 1575-1617
• Fama E., K. French (1993), “Common Risk Factors in the Returns on Stocks and Bonds”, Journal of
Financial Economics, (33), 3-56.
• Lintner J. (1965), “The valuation of risk assets and the selection of risky investments in stock portfolios and
capital budgets”, Review of Economics and Statistics, 47(1), 13–37
• Markowitz H. (1952), “Portfolio Selection”, Journal of Finance, (7)1, 77-91
• Ross S. (1976), "The Arbitrage Theory of Capital Asset Pricing". Journal of Economic Theory, (13)3, 341-
360
• Sharpe W. (1963), “A Simplified Model for Portfolio Analysis”, Management Science, (9)2, 277-293
• Treynor, J., Mazuy, K. (1966), “Can Mutual Funds Outguess the Market?” Harvard Business Review, (44),
131-136
Statistics
• Jarque C., Bera A. (1980). “Efficient tests for normality, homoscedasticity and serial independence of
regression residuals”, Economics Letters. (6) 3, 255–259
42