MET4 - HEKS - V23

load("heks_v23.Rdata")

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)

active_both <- full_join(active_2013, active_2015)
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:

  1. 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.
  2. 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:

reg1 <- lm(active_share ~ post_2014*initial_closet + fund_size + fund_fee, data = funds)
reg2 <- lm(active_share ~ post_2014*initial_closet + fund_size + fund_fee + fund_return, data = funds)
stargazer::stargazer(reg1, reg2, type = "text")

====================================================================================
                                               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.