Created by James Lim - 2016-04-14
Here we attempt to select unit trusts fund based on past 3 years performance.
What I am attempting to resolve here is to determine the variables or predictors that AFFECT returns. In another words, what information should we look for inside a fact sheets that helps us to make a better decision to select funds.
I based my source data from individual companies fund fact sheets which can be downloaded from this site
Data is collected from Year 2013 to Year 2015.
Calendar Returns, 3 years (Sharpe and Volatibility) ratio, Fund Name, Risk Rating were captured only. Closing Price of unit trust is irrelevant here
Fund refers to fund of names
returns refers to annualized compound returns. This is a derived value.
return_sd refers to compound returns / standard deviation. The return/risk ratio is a measure of risk-adjusted performance. It is calculated as the average return divided by the standard deviation of subperiod returns over a given period. A higher return/risk ratio means better fund performance relative to fund volatility on a risk-adjusted basis. This is a derived value.
sd refers to standard deviation or volatibility.
Risk refers to risk category of a unit trusts fund.
Risk adjusted returns This is a derived value.
## sharpe sd risk_adjusted_returns
## sharpe 1.0000000 -0.1733819 0.8756372
## sd -0.1733819 1.0000000 -0.2500832
## risk_adjusted_returns 0.8756372 -0.2500832 1.0000000
## sd risk_adjusted_returns
## 0.01613969 0.75281896
## Guessing formula = risk_adjusted_returns ~ sharpe
## Importance of components:
## Comp.1 Comp.2 Comp.3
## Standard deviation 1.4029893 0.9543638 0.3475782
## Proportion of Variance 0.6561264 0.3036034 0.0402702
## Cumulative Proportion 0.6561264 0.9597298 1.0000000
##
## Loadings:
## Comp.1 Comp.2 Comp.3
## sharpe 0.669 0.256 -0.698
## sd -0.296 0.953
## risk_adjusted_returns 0.682 0.163 0.713
For the purpose of this discussion, let’s classify the returns into good, bad, and average .This will classify all return into bad, average or good, depending on whether their returns are less than, equal to, or greater than 4.5% respectively. Let’s look at the distribution again.
## The following object is masked _by_ .GlobalEnv:
##
## subsetdata_results
##
## Overall
## n 551
## risk (%)
## 1 12 ( 2.2)
## 10 88 (16.0)
## 2 12 ( 2.2)
## 3 30 ( 5.4)
## 4 70 (12.7)
## 5 31 ( 5.6)
## 6 25 ( 4.5)
## 7 41 ( 7.4)
## 8 125 (22.7)
## 9 117 (21.2)
## subsetdata_results (%)
## average 151 (27.4)
## bad 144 (26.1)
## good 256 (46.5)
## risk_adjusted_returns (mean (sd)) 3.73 (7.83)
## Stratified by risk
## 1 10 2 3
## n 12 88 12 30
## risk_adjusted_returns (mean (sd)) 1.40 (0.79) 2.94 (12.52) 1.90 (3.72) 3.48 (2.25)
## sharpe (mean (sd)) -0.29 (0.52) -0.07 (0.76) -0.13 (0.86) 0.15 (0.47)
## sd (mean (sd)) 2.79 (1.24) 16.02 (5.94) 4.14 (1.86) 4.95 (1.25)
## subsetdata_results (%)
## average 12 (100.0) 10 (11.4) 6 (50.0) 17 (56.7)
## bad 0 ( 0.0) 29 (33.0) 3 (25.0) 1 ( 3.3)
## good 0 ( 0.0) 49 (55.7) 3 (25.0) 12 (40.0)
## Stratified by risk
## 4 5 6 7
## n 70 31 25 41
## risk_adjusted_returns (mean (sd)) 2.35 (3.22) 2.08 (3.86) 5.33 (2.56) 8.58 (4.31)
## sharpe (mean (sd)) -0.13 (0.61) -0.10 (0.50) 0.07 (0.34) 0.27 (0.41)
## sd (mean (sd)) 5.73 (1.68) 6.89 (1.95) 7.87 (1.61) 10.22 (1.84)
## subsetdata_results (%)
## average 33 (47.1) 12 (38.7) 9 (36.0) 8 (19.5)
## bad 17 (24.3) 10 (32.3) 1 ( 4.0) 2 ( 4.9)
## good 20 (28.6) 9 (29.0) 15 (60.0) 31 (75.6)
## Stratified by risk
## 8 9 p test
## n 125 117
## risk_adjusted_returns (mean (sd)) 7.20 (6.50) 0.34 (8.40) <0.001
## sharpe (mean (sd)) 0.13 (0.49) -0.25 (0.48) <0.001
## sd (mean (sd)) 13.24 (2.33) 17.55 (4.10) <0.001
## subsetdata_results (%) <0.001
## average 26 (20.8) 18 (15.4)
## bad 20 (16.0) 61 (52.1)
## good 79 (63.2) 38 (32.5)
.
Let’s put all variables together to determine which variables/predictors affect the Returns (response) most.
##
## Call:
## lm(formula = risk_adjusted_returns ~ sharpe + sd, data = corr_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.0868 -1.8327 0.5647 2.1033 15.4171
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.74936 0.36156 15.902 < 2e-16 ***
## sharpe 11.62031 0.27757 41.864 < 2e-16 ***
## sd -0.13527 0.02737 -4.943 1.03e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.705 on 548 degrees of freedom
## Multiple R-squared: 0.7767, Adjusted R-squared: 0.7759
## F-statistic: 953 on 2 and 548 DF, p-value: < 2.2e-16
lm(risk_adjusted_returns ~ sharpe + sd , data=corr_data) - Adjusted R-squared: 77.59%
## sharpe sd
## 0.95333013 0.04666987
lm(risk_adjusted_returns ~ sharpe , data=corr_data) - Adjusted R-squared: 76.63%
We will select a regression model that has highest Adjusted R-squared value. An R-squared value of 1 means that it is a perfect prediction model, and an R-squared value of 0 means that it is of no improvement over the baseline model.
## Confusion Matrix and Statistics
##
##
## pred average bad good
## average 35 3 4
## bad 8 33 0
## good 3 0 80
##
## Overall Statistics
##
## Accuracy : 0.8916
## 95% CI : (0.834, 0.9345)
## No Information Rate : 0.506
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.826
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: average Class: bad Class: good
## Sensitivity 0.7609 0.9167 0.9524
## Specificity 0.9417 0.9385 0.9634
## Pos Pred Value 0.8333 0.8049 0.9639
## Neg Pred Value 0.9113 0.9760 0.9518
## Prevalence 0.2771 0.2169 0.5060
## Detection Rate 0.2108 0.1988 0.4819
## Detection Prevalence 0.2530 0.2470 0.5000
## Balanced Accuracy 0.8513 0.9276 0.9579
We are interested in the classification accuracy as the metric we are optimizing.
## Loading required package: class
## ROC curve variable importance
##
## variables are sorted by maximum importance across the classes
## average bad good
## sharpe 0.9525 0.9998 0.9998
## sd 0.7990 0.7990 0.7089
## risk 0.6371 0.6371 0.5903
##
## Recursive feature selection
##
## Outer resampling method: Cross-Validated (10 fold)
##
## Resampling performance over subset size:
##
## Variables RMSE Rsquared RMSESD RsquaredSD Selected
## 1 4.025 0.7398 0.5475 0.08472
## 2 1.818 0.9478 0.3616 0.02271 *
## 3 2.175 0.9374 0.3877 0.02403
##
## The top 2 variables (out of 2):
## sharpe, sd
## [1] "sharpe" "sd"
Risk category from 1 to 10 (1 being lowest risk, 10 being riskiest)
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 Fullerton Short Term Int Rt C S$ 2.5748127 -0.13 1.09
## 2 Eastspring Inv UT SG Select Bd A 2.0820012 0.08 3.54
## 3 PineBridge Singapore Bond Fund 1.9675716 0.08 2.99
## 4 Nikko AM Shenton ShortTerm Bond(S$) 1.9267824 -0.91 0.68
## 5 United Singapore Bond Fund 1.7745470 0.03 3.03
## 6 Legg Mason WA Spore Bond Class A SGD 1.7523369 -0.07 3.42
## 7 Manulife Singapore Bond A SGD 1.6518206 -0.04 3.21
## 8 Deutsche Lion Bond Cl A 1.3281038 -1.70 0.62
## 9 LionGlobal Spore Fixed Inc-A 0.9644281 -0.22 3.58
## 10 Schroder SG Fixed Income Fd CL A 0.5119784 -0.14 4.07
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 PIMCO Glb Bond Cl E Acc USD 6.736274 0.71 5.37
## 2 Parvest Money Market Classic Cap USD 4.779042 0.35 4.64
## 3 Legg Mason WA US MM Cl A USD Acc 4.685757 0.38 4.80
## 4 PIMCO Glb Bond Cl E Inc GBP Hed 4.321703 0.32 6.47
## 5 United SGD Fund Cl A Acc 3.247270 0.57 0.94
## 6 LionGlobal Short Duration Bond Cl A SGD 3.197077 0.09 1.66
## 7 Fullerton SGD Income Fd Cl B SGD 3.095198 0.17 2.57
## 8 Legg Mason WA Global Bond Trst 2.735416 0.35 3.93
## 9 Legg Mason BW Global FI A Acc USD 1.151728 -0.14 4.66
## 10 Fidelity Glb Inflation-linked Bond A SGD Hedged -2.224324 -1.87 2.54
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 Fidelity Asian Bond AMDIST USD 7.492445 0.87 5.85
## 2 Blackrock Global Corp Bond A6 USD 6.648355 0.85 5.23
## 3 Schroder ISF Glb Co Bnd A Acc USD 6.184422 0.67 4.66
## 4 JPM Global Corporate Bond A (Mth) USD 6.085141 0.57 6.07
## 5 PIMCO Glb Inv Gr Credit Cl E Acc USD 6.068448 0.60 5.15
## 6 Fidelity US Dollar Bond A USD 5.805279 0.68 5.72
## 7 Eastspring Inv US High Inv Grade Bd AS 5.283514 0.57 5.38
## 8 Eastspring Inv US Inv Grade Bd SGD AS 5.255536 0.48 5.15
## 9 NATIXIS IF Loomis Sayles Multisector Inc R/D USD 5.107676 0.21 4.87
## 10 Eastspring Inv US High Inv Grade Bd USD A 5.107644 0.68 5.59
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 LionGlobal Asia Bond SGD 7.510537 0.95 4.52
## 2 NN (L) Asian Debt HC P USD 7.332240 1.02 4.77
## 3 Aviva Inv Glb HY Bd Am USD 7.252954 0.84 4.73
## 4 Aviva Inv Glb HY Bd A USD 7.250605 0.85 4.64
## 5 Blackrock Asian Tiger Bond A6 USD 7.021774 0.82 5.52
## 6 Threadneedle (Lux) US$ High Inc Bd AUP USD 6.565042 0.59 5.75
## 7 HGIF Glb High Income Bond AM USD 6.425026 0.52 5.98
## 8 Eastspring Inv Asian Bd SGD AS 6.409740 1.03 4.14
## 9 PIMCO US High Yield Bond Cl E Acc USD 6.147787 0.60 5.30
## 10 Wells Fargo US High Yield Bond Cl A USD 5.972566 0.34 6.65
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 JPM Global Income Fund A (mth) USD-H 9.050569 0.45 8.76
## 2 Fidelity Asian HY AMDIST USD 7.276689 0.88 4.13
## 3 Aviva Inv Glb Convert A USD 7.267389 0.44 5.28
## 4 Blackrock Global Multi-Asset Inc A6 USD 7.054722 0.59 5.01
## 5 Eastspring Inv Asian HY Bd SGD ASDM 6.899269 0.76 4.79
## 6 United Renminbi Bond Fund SGD 5.232152 0.24 5.50
## 7 United Renminbi Bond Fund USD 5.058727 0.21 5.45
## 8 Parvest Conv Bond Asia USD 4.945559 0.30 4.45
## 9 Schroder ISF Glb Multi-Asset Inc A Dis USD 4.761867 0.06 5.58
## 10 Parvest Conv Bond Europe EUR 4.392487 0.01 8.47
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 HSBC Portfolios WorldSel 5 ACUSD 9.006607 0.23 11.14
## 2 Blackrock Glb Allocation A2 USD 8.734949 0.62 6.40
## 3 Allianz Oriental Inc Cl AT SGD 8.450568 0.35 11.35
## 4 First State Glb Balanced Fund 8.079874 0.57 7.17
## 5 First State Glb Balanced US$ 7.912527 0.56 6.84
## 6 PineBridge Glb Dynamic Asset Allocation A USD 7.704751 0.20 9.67
## 7 AB FCP I Dynamic Diversified-AX SGD 7.451324 0.38 6.23
## 8 FTIF-Templeton Glb Bal Fd A(acc) SGD 7.058700 0.15 8.58
## 9 JPMorgan Asia Pacific Income USD A mth 6.909633 0.20 7.71
## 10 JPMorgan Asia Pacific Income Fund SGD A Mth 6.899493 0.21 7.49
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 Fidelity Gbl Dividend A-MINC(G) SGD 14.20576 0.86 10.14
## 2 Fidelity FPS Global Growth USD 13.70230 0.66 12.39
## 3 Nikko AM Shenton Glb Opportunities - SGD Class 13.40669 0.60 11.07
## 4 Infinity Global Stock Index 12.99435 0.69 9.50
## 5 Stewart Investors Glb Emg Mkts Leaders Fd 12.81905 0.73 9.93
## 6 AB SICAV I Thematic Research-A SGD 12.21450 0.63 11.40
## 7 Blackrock Glb Dynamic Eqty A2 USD 12.20180 0.59 10.82
## 8 AB FCP I Glb Eqty Blend-A SGD 12.17308 0.57 10.60
## 9 HGIF Economic Scale Index Glb Eq A SGD 12.10204 0.48 11.75
## 10 AB SICAV I Thematic Research-A USD 12.00905 0.59 11.87
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 Fidelity America A USD 20.51423 1.35 9.87
## 2 Fidelity America A SGD 20.33887 1.13 11.42
## 3 FTIF-Franklin US Opp Fd A(acc) SGD 18.62067 0.83 14.12
## 4 Wells Fargo US Large Cap Gth Fd Cl A USD 18.10720 0.72 13.86
## 5 Threadneedle (Lux) US Contrarian Core Eq AU USD 17.66593 0.97 10.91
## 6 Infinity US 500 Stock Index 17.35947 1.12 9.44
## 7 Neuberger Berman US Multicap Opp A USD1 Acc 16.86785 0.93 10.83
## 8 PineBridge US Large Cap Research Enh A USD 16.80522 0.96 11.25
## 9 Legg Mason Clearbridge Val Fd Cl A Acc-SGD 16.39757 0.69 12.94
## 10 Wells Fargo US Premier Gth Fd Cl A USD 16.23768 0.68 14.26
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 Blackrock World Healthscience A2 USD 24.95625 1.29 14.09
## 2 Legg Mason Opps Fund A Acc USD 20.56068 0.64 19.51
## 3 First State Regional India Fund 18.92323 0.77 20.17
## 4 Legg Mason Clearbridge US Agg Growth Cl A USD 16.93169 0.73 13.54
## 5 Fidelity Germany A EUR 13.11915 0.37 14.42
## 6 Amundi Glb Luxury and Lifestyle SGD Cl AS 11.67665 0.52 12.54
## 7 Aberdeen India Opportunities 11.53375 0.45 20.15
## 8 Aberdeen India Opportunities USD 11.51103 0.46 18.16
## 9 Fidelity Italy A EUR 11.49274 0.27 20.95
## 10 Blackrock India Fund A2 USD 11.21810 0.46 20.58
## Source: local data frame [10 x 4]
##
## fund risk_adjusted_returns sharpe sd
## (chr) (dbl) (dbl) (dbl)
## 1 Fidelity Global Health Care A EUR 22.14974 1.02 14.34
## 2 AB SICAV I Intl Health Care-A SGD 21.20640 1.15 10.82
## 3 Fidelity Global Technology A EUR 20.51078 0.87 14.92
## 4 Blackrock US Small and Midcap Opp A2 EUR 18.24294 0.85 13.12
## 5 Blackrock US Small and Midcap Opp A2 USD 18.04435 0.85 12.85
## 6 Henderson Hzn Pan Europn Prop Eq-A2 EUR 17.88280 1.14 13.78
## 7 Henderson Hzn Pan Europn Prop Eq-A2 EUR 17.61732 0.91 15.06
## 8 Parvest Eq Europe Small Cap Classic Cap EUR 17.20027 0.86 13.36
## 9 Henderson European Prop Sec 17.09206 1.08 13.76
## 10 Threadneedle (Lux) Pan Euro Sm Cap Opp ASH SGD 17.04323 0.78 13.80