load("heks_v23.Rdata")
MET4 - HEKS - V23
Oppgave 1
Gi en introduksjon med deskriptiv statistikk som er relevant for videre undersøkelser for om skandinaviske fond ble mer aktive etter at myndighetene startet sine undersøkelser
En mulighet er å lage en enkel deskriptiv tabell over år, med en eller annen historie om at det var en økning i aktiv andel rundt 2014:
%>%
funds group_by(year, initial_closet) %>%
summarise(antall = n(), mean_active = mean(active_share),
mean_fund_size = mean(fund_size, na.rm = TRUE),
mean_alpha = mean(alpha, na.rm = TRUE))
`summarise()` has grouped output by 'year'. You can override using the
`.groups` argument.
# A tibble: 10 × 6
# Groups: year [5]
year initial_closet antall mean_active mean_fund_size mean_alpha
<dbl> <lgl> <int> <dbl> <dbl> <dbl>
1 2013 FALSE 1272 61.3 316. 0.158
2 2013 TRUE 528 31.0 550. 0.111
3 2014 FALSE 1272 62.5 379. 0.224
4 2014 TRUE 528 32.8 610. 0.171
5 2015 FALSE 1272 64.1 358. 0.291
6 2015 TRUE 528 37.3 552. 0.175
7 2016 FALSE 1272 65.4 374. 0.380
8 2016 TRUE 528 40.6 524. 0.350
9 2017 FALSE 1243 65.9 476. 0.0494
10 2017 TRUE 528 42.1 616. -0.0108
Kan splitte opp på de fondene som var under 40 initielt og lage en figur:
%>%
funds group_by(year, initial_closet) %>%
summarise(antall = n(), mean_active = mean(active_share),
mean_fund_size = mean(fund_size, na.rm = TRUE),
mean_alpha = mean(alpha, na.rm = TRUE)) %>%
ggplot(aes(x = year, y = mean_active, linetype = initial_closet)) +
geom_line()
Fund size:
%>%
funds group_by(year, initial_closet) %>%
summarise(antall = n(), mean_active = mean(active_share),
mean_fund_size = mean(fund_size, na.rm = TRUE),
mean_alpha = mean(alpha, na.rm = TRUE)) %>%
ggplot(aes(x = year, y = mean_fund_size, linetype = initial_closet)) +
geom_line()
… og alpha:
%>%
funds group_by(year, initial_closet) %>%
summarise(antall = n(), mean_active = mean(active_share),
mean_fund_size = mean(fund_size, na.rm = TRUE),
mean_alpha = mean(alpha, na.rm = TRUE)) %>%
ggplot(aes(x = year, y = mean_alpha, linetype = initial_closet)) +
geom_line()
Med tilhørende diskusjon.
Oppgave 2
Se på observasjonene som er gjort på slutten av hvert år (filter(month == 12)
). Gjennomfør en eller flere hypotesetester som undersøker hvorvidt fondene endret graden av aktiv forvaltning i løpet av perioden som vi har data for. Diskuter metodevalg, resultat, og konklusjon
Paret \(t\)-test for active_share
2013 vs. 2015, det vil si rett før og rett etter “behandlingsvinduet”:
<-
active_2013 %>%
funds filter(month == 12, year == 2013) %>%
select(fund_id, active_share_2013 = active_share)
<-
active_2015 %>%
funds filter(month == 12, year == 2015) %>%
select(fund_id, active_share_2015 = active_share)
<- full_join(active_2013, active_2015) active_both
Joining, by = "fund_id"
t.test(active_both$active_share_2013, active_both$active_share_2015)
Welch Two Sample t-test
data: active_both$active_share_2013 and active_both$active_share_2015
t = -2.0937, df = 295.92, p-value = 0.03713
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-8.7409640 -0.2705846
sample estimates:
mean of x mean of y
52.56115 57.06693
Paret:
t.test(active_both$active_share_2013, active_both$active_share_2015, paired = TRUE)
Paired t-test
data: active_both$active_share_2013 and active_both$active_share_2015
t = -7.2728, df = 149, p-value = 1.856e-11
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
-5.729994 -3.281555
sample estimates:
mean difference
-4.505774
Konklusjonen er at fondene har en siginfikant økning i “aktivitet” gjennom på disse to årene. Her kan man diskutere hva dette egentlig betyr. Er det en form for innrømmelse av skyld? Noen får kanskje med seg detaljen i paperet om at de har en kontrollgruppe, gjør diff-in-diff, etc., som gjør argumentet mye sterkere.
Oppgave 3
Sett opp en eller flere regresjonsmodeller for å undersøke påstanden om at indeksfondene i datasettet endret grad av aktiv forvaltning i perioden etter 2014. Modellen(e) og diskusjonen skal oppfylle følgende to krav:
- Den må ta høyde for at indeksfondene som hadde lav grad av aktiv forvaltning ved starten av perioden kan ha hatt en annen utvikling i tid enn fondene som ikke hadde lav grad av aktiv forvaltning i starten av perioden.
- Alle valg (som f.eks. hvilke variabler som brukes og hvordan) skal begrunnes og diskuteres.
Diagnostiser minst en modell og skriv en tydelig konklusjon.
Her er det noen valg som må tas. For det første: skal man bruke year
som tidsvariabel, eller dummyen post_2014
. Den må uansett ganges sammen med dummyen initial_closet
for å oppfylle det første kravet. I utgangspunktet kan man tenke seg å ha faste fondseffekter, men det går ikke når vi skal bruke inital_closet
, siden det bare er en lineærkombinasjon av fondsdummyene. Videre kan vi ta med noen kontrollvariabler og kanskje også vurdere å se på det andre alternativet for aktiv forvaltning, altså tracking_error
. Her kan man diskutere seg frem til ulike løsninger.
For eksempel:
<- lm(active_share ~ post_2014*initial_closet + fund_size + fund_fee, data = funds)
reg1 <- lm(active_share ~ post_2014*initial_closet + fund_size + fund_fee + fund_return, data = funds)
reg2 ::stargazer(reg1, reg2, type = "text") stargazer
====================================================================================
Dependent variable:
-------------------------------------------------------
active_share
(1) (2)
------------------------------------------------------------------------------------
post_2014 3.293*** 3.337***
(0.349) (0.350)
initial_closet -27.971*** -27.954***
(0.509) (0.510)
fund_size 0.00002 0.00002
(0.0002) (0.0002)
fund_fee 30.026*** 29.853***
(3.853) (3.854)
fund_return 0.069*
(0.042)
post_2014TRUE:initial_closet 4.760*** 4.751***
(0.640) (0.640)
Constant 57.225*** 57.112***
(0.553) (0.557)
------------------------------------------------------------------------------------
Observations 8,572 8,572
R2 0.459 0.459
Adjusted R2 0.459 0.459
Residual Std. Error 13.251 (df = 8566) 13.249 (df = 8565)
F Statistic 1,452.885*** (df = 5; 8566) 1,211.437*** (df = 6; 8565)
====================================================================================
Note: *p<0.1; **p<0.05; ***p<0.01
Interessante og logiske resultater. Det er i alle fall en positiv sammenheng mellom pris og aktivitet, også når vi kontrollerer for avkastning (som i den andre modellen har en svak positiv forklaring på aktiviteten). Videre har fondene som startet observasjonsperioden som “closet”-fond en klart sterkere økning i aktivitet enn resten i overgangen fra pre- til post 2014.
Her kan man diskutere mye frem og tilbake.
Oppgave 4
Vi lager et nytt datasett basert på funds
, der vi henter ut data kun for DnB, samt regner ut avkastningen på benchmarken og legger inn en pris på 0.2% per år.
<-
dnb %>%
funds filter(fund_id == "F00MZC165UVM") %>%
mutate(benchmark_return = fund_return - alpha) %>%
select(date, fund_id, fund_return, active_share, fund_fee, benchmark_return) %>%
mutate(benchmark_fee = 0.2/12)
Du investerer det samme beløpet både i det aktive fondet og den passive benchmarken ved starten av observasjonsperioden. Hva er verdien av de to investeringene ved slutten av observasjonsperioden, etter at kostnadene er trukket fra? Kommenter svaret
Hint 1: nettoavkastningen i det aktive fondet er gitt ved fund_return
- fund_fee
. Nettoavkastningen i det passive fondet er gitt ved benchmark_return
- benchmark_fee
.
Hint 2: Funksjonen prod(x)
regner ut produktet av alle elementene i vektoren x
.
La oss si at vi initielt investerer \(A\) kroner i enten det aktive fondet eller den passive benchmarken. Dersom fondet (eller benchmarken) hadde avkastning på 1% den første måneden, så vil det si at verdien av investeringen ved slutten av måneden er \(A\cdot(1 + 1/100) = A\cdot1.01\) kroner. Dersom avkastningen den andre måneden var -2%, så vil verdien av investeringen etter måned nummer to være lik \(A\cdot(1 + 1/100)\cdot(1 + (-2)/100) = A\cdot 1.01\cdot0.98 = A\cdot0.9898\); det vil si at verdien av investerinen sank med 1.02% i løpet av de to månedene.
Vi må dermed regne ut produktet av alle faktorene \((1 + \textrm{Netto avkastning/100)}\) for det aktive fondet og den passive benchmarken:
prod(1 + (dnb$fund_return - dnb$fund_fee)/100)
[1] 1.765756
prod(1 + (dnb$benchmark_return - dnb$benchmark_fee)/100)
[1] 1.809563
Altså økte investeringens verdi med 76.6% i det aktiv forvaltede fondet, og med 81% dersiom vi bare hadde fulgt indeksen.