Statistisk analyse af finansielle data Peter Dalgaard 27 May 2015 Peter Dalgaard Statistisk analyse af finansielle data
Statistisk analyse af finansielle data
Peter Dalgaard
27 May 2015
Peter Dalgaard Statistisk analyse af finansielle data
Præsentation
Hvem jeg erHvad jeg laverUndervisning på CBSForskning/udviklingsarbejde
Peter Dalgaard Statistisk analyse af finansielle data
Hvem er jeg?
Peter Dalgaard, professor siden 2010, tidligere Biostatistisk Afdelingved Københavns Universitet
Nu ved Center for Statistik, Institut for Finansiering, CBS
Underviser hovedsagelig HA(mat) og Cand.merc.(mat) (“MØK”)
Hovedemne inden for forskning/udvikling: Statistical Computing,specielt statistikværktøjet “R”
Peter Dalgaard Statistisk analyse af finansielle data
Statistik og finansiering
Statistik, overordnet: At se observerede data i lyset afmatematisk/sandsynlighedsteoretiske modeller.
Vurdere data under hensyntagen til “støj i systemet”.
Delvis overlap med matematisk finansiering og økonometri.Statistikeren har typisk mere fokus på data, modelkontrol, osv.
Peter Dalgaard Statistisk analyse af finansielle data
Statistisk software
“Let’s not kid ourselves: the most widely used piece ofsoftware for statistics is Excel.”– Brian D. Ripley (‘Statistical Methods Need Software: AView of Statistical Computing’) Opening lecture RoyalStatistical Society 2002, Plymouth (September 2002)
Peter Dalgaard Statistisk analyse af finansielle data
MEN:
9/2/13 10:11 Right Tool for the Job
Page 1 of 1http://homepage.stat.uiowa.edu/~jcryer/22s008/righttool.htm
Get the Right Tool for the Job!
Friends Don't Let Friends UseExcel For Statistics!
Peter Dalgaard Statistisk analyse af finansielle data
Problemer med Excel
Excel er fint til småting, hvor man kan overskue beregningerne
Bliver uoverskueligt, med stor risiko for fejl, i komplekse regneark
Folk i branchen nævner “The London Whale” hvor JP Morgan tabte2 milliarder USD på en enkelt traders uholdbare position
[VaR model] “operated through a series of Excelspreadsheets, which had to be completed manually, by aprocess of copying and pasting data from one spreadsheetto another”, and “that it should be automated” but neverwas.
Peter Dalgaard Statistisk analyse af finansielle data
R projektet
R er et Open Source værktøj til statistiske beregninger og grafik.
Først og fremmest er R et programmeringssprog hvori man kanformulere og automatisere sine analysemetoder
Startede c. 1992 i New Zealand, oprindelig til undervisningsbrug.
Udviklede sig fra 1997 ganske heftigt og har i dag flere millionerbrugere, over 6000 kontribuerede pakker, m.m.
Peter Dalgaard Statistisk analyse af finansielle data
Plan:
Vise et simpelt eksempel på en finansiel tidsserieVise eksempler på sandsynlighedsmodeller for kursudviklingerVise metoder til fit af modeller til observerede dataAlt sammen med brug af R
Peter Dalgaard Statistisk analyse af finansielle data
Indlæse og opsummere data
(Nordea Invest Stabil Balanceret, jan. 2012 – nov. 2014)
Beregning af log-return rt = log(Yt)− log(Yt−1)
dd <- read.delim2("stabil-bal.txt", na="-")val <- dd[[2]] ## 2. søjlelogret <- diff(log(val))mean(logret)
## [1] 0.0003886024
sd(logret)
## [1] 0.002263442
Peter Dalgaard Statistisk analyse af finansielle data
Plotte data
plot(val, type="l")
0 200 400 600
100
105
110
115
120
125
130
Index
val
Peter Dalgaard Statistisk analyse af finansielle data
log-returns
plot(logret, type="l")
0 200 400 600
−0.
010
−0.
005
0.00
00.
005
Index
logr
et
Stationær tidsrække (?)
Peter Dalgaard Statistisk analyse af finansielle data
Geometrisk Random Walk
Standardmodel i matematisk finansiering (Kontinuert tid: GeometricBrownian Motion)
Yt = Yt−1 +m+ et
Yt log-kursværdi til tid tm driftledet “error term”, støjledet uafhængige, normalfordelte middelværdi 0, standardafvigelse(volatilitet) s — “hvid støj”
Peter Dalgaard Statistisk analyse af finansielle data
Normalfordelingen
−0.010 −0.005 0.000 0.005
050
100
150
x
dnor
m(x
, 0, s
)
Peter Dalgaard Statistisk analyse af finansielle data
Simulere geometrisk Random Walk
m <- mean(logret)s <- sd(logret)set.seed(7913)sim <- cumsum(rnorm(723, m, s))
Peter Dalgaard Statistisk analyse af finansielle data
Simuleret proces
plot(100*exp(sim), type="l")
0 200 400 600
100
110
120
130
140
150
Index
100
* ex
p(si
m)
Peter Dalgaard Statistisk analyse af finansielle data
Mange simulationer
sim <- replicate(50, cumsum(rnorm(723, m, s)))matplot(100*exp(sim), type="l") # 723x50 matrix
0 200 400 600
100
110
120
130
140
150
100
* ex
p(si
m)
Peter Dalgaard Statistisk analyse af finansielle data
Sandsynlighedsfordeling af afkast
Usikkerheden på afkast efter 723 børsdage kan (i denne simplemodel) beregnes matematisk: Standardafvigelse på r1 + · · ·+ r723er s√
723
curve(dlnorm(x/100, 723*m, sqrt(723)*s), from=100, to=150)
100 110 120 130 140 150
01
23
45
x
dlno
rm(x
/100
, 723
* m
, sqr
t(72
3) *
s)
Peter Dalgaard Statistisk analyse af finansielle data
Porteføljerisiko
1
Forventet afkast/risiko - 10 års horisont
Risikoklasse Lav Middel Høj
Forventet afkast- Lav 72%- Middel 84%- Høj 96%
-‐40%
-‐20%
0%
20%
40%
60%
80%
100%
120%
140%
160%
180%
200%
220%
240%
260%
280%
300%
1 2 3
170%
219%
270%
-‐20%-‐10%
0%
Mul
igt a
fkas
t
med
90%
san
dsyn
lighe
d
Maksimalt tab 1 år -10% -13% -16%
Aktier Obligationer
Opdateret 20.02.2014
50% 50% 65%
35% 80%
20%
Peter Dalgaard Statistisk analyse af finansielle data
Holder Random Walk modellen?
I almindelighed holder der ikke at antage at data er engeometrisk Random Walk!Det er en hæderlig første tilnærmelse, men der er problemeret er ikke uafhængigeet er ikke normalfordeltes er ikke konstant
Peter Dalgaard Statistisk analyse af finansielle data
Seriel korrelation
Random Walk forudsætter at log-returns er indbyrdes uafhængige.Imidlertid ses ofte en sammenhæng med den/de forgåendeobservationer (autokorrelation). Dette kan checkes ved at plotteYt+1 mod Yt:
first <- head(logret, -1)last <- tail(logret, -1)
plot(first, last)
Peter Dalgaard Statistisk analyse af finansielle data
Autokorrelationsplot
−0.010 −0.005 0.000 0.005
−0.
010
−0.
005
0.00
00.
005
first
last
Peter Dalgaard Statistisk analyse af finansielle data
Autoregressiv model
AR(1) procesrt −m = a(rt−1 −m) + et
rt log-returnsm middelværdia regressionsparameteret hvid støjStationær, hvis −1 < a < 1a = 0 =⇒ rt −m = et og dermed at Yt er en Random Walk
Peter Dalgaard Statistisk analyse af finansielle data
Estimation i AR-proces
fit <- arima(logret, order=c(1,0,0))
(De tre led i “order=”) er
antal AR lags (her 1)I (integrereret): antal differenser for at processen bliverstationærMA: moving average (ut = et + bet−1)
Peter Dalgaard Statistisk analyse af finansielle data
Output
fit
#### Call:## arima(x = logret, order = c(1, 0, 0))#### Coefficients:## ar1 intercept## 0.1702 4e-04## s.e. 0.0368 1e-04#### sigma^2 estimated as 4.969e-06: log likelihood = 3388.84, aic = -6771.68
Peter Dalgaard Statistisk analyse af finansielle data
Ikke-normalfordelte et
qqnorm(residuals(fit))qqline(residuals(fit))
−3 −2 −1 0 1 2 3
−0.
010
0.00
00.
005
Normal Q−Q Plot
Theoretical Quantiles
Sam
ple
Qua
ntile
s
Peter Dalgaard Statistisk analyse af finansielle data
Volatility clustering
“Klumper i støjen”
plot(residuals(fit))
Time
resi
dual
s(fit
)
0 200 400 600
−0.
010
0.00
00.
005
Peter Dalgaard Statistisk analyse af finansielle data
GARCH modellerne
“Generalized AutoRegressive Conditional Heteroskedastic”
Støjled med varierende s
ut = stet
GARCH(1,1):s2
t = ω + αe2t−1 + βs2
t−1
(+mange varianter!)
Peter Dalgaard Statistisk analyse af finansielle data
Fitte GARCH model
AR(1)-proces, GARCH(1,1) fejl, med skæv t-fordeling i stedet fornormalfordeling (“sstd”)
library(fGarch)fit <- garchFit(~ arma(1,0) + garch(1,1),
data=logret, cond.dist="sstd")summary(fit)
Peter Dalgaard Statistisk analyse af finansielle data
Output
...Estimate Std. Error t value Pr(>|t|)
mu 4.112e-04 8.037e-05 5.117 3.11e-07 ***ar1 1.228e-01 3.960e-02 3.102 0.00192 **omega 5.659e-07 2.474e-07 2.287 0.02218 *alpha1 1.237e-01 4.047e-02 3.056 0.00224 **beta1 7.629e-01 7.584e-02 10.060 < 2e-16 ***skew 8.922e-01 4.696e-02 19.000 < 2e-16 ***shape 1.000e+01 3.540e+00 2.825 0.00473 **...
Peter Dalgaard Statistisk analyse af finansielle data
Prædiktion
predict(fit, plot=TRUE)
0 50 100 150
−0.
006
−0.
002
0.00
20.
006
Index
x
Prediction with confidence intervals
X̂t+h
X̂t+h − 2.098 MSEX̂t+h + 1.878 MSE
Peter Dalgaard Statistisk analyse af finansielle data
Perspektiver og udfordringer
Store porteføljerBig dataFast data (High-Frequency Trading)TradingstrategierTeoriudvikling (metoderne indeholder fx en del tvivlsommeapproksimationer)
Peter Dalgaard Statistisk analyse af finansielle data