QF4199 Honours Year Project: Construct Individualized Portfolios for Robo-advisors with Goal-based Portfolio Optimization and Conditional Quantile Estimation on Target Returns
This repository contains the implementations and tests for my thesis.
There are several ways to use this repository:
- View results that have been previously generated
- Run the algorithm again on a completely new dataset
-
Go to the bottom of
evaluation.pyand choose one of the following:-
Uncomment lines 191 to 219 for
evaluation_1()evaluation_1()was done with a specific value oftau = 0.05on a slightly larger sample to observe how the conditional quantile estimates vary with the covariates. -
Uncomment lines 224 to 236 for
evaluation_2():evaluation_2()was done with various values oftau = 0.01, 0.05, 0.1, 0.25, 0.5on a slightly smaller sample, to observe how portfolios vary withtau. -
Uncomment lines 241 to 257 to get a portfolio for a new investor.
-
-
Re-run on a completely new dataset:
- Use the
cross_validationmethod innonparametric_conditional_quantile_estimator.pyto optimize the bandwidth parameters. - Use the
estimate_quantilesmethod inevaluation.pyto estimate the conditional quantiles. - Use
plot_estimated_quantilesmethod inevaluation.pyif you wish to visualize how the conditional quantile estimates vary with the covariates.
Refer to examples in
evaluation_1()andevaluation_2()on how this can be done in a similar fashion. - Use the