sparseIndexTracking
sparseIndexTracking copied to clipboard
To do list for next release
List of things to implement: (@dppalomar, @mirca)
-
Compare our method with the nonlinear solver optim() in the vignette.
-
Try using the QP solver solve.QP() after the first majorization and compare with the currently implemented method that performs a second majorization to get the "closed-form" solution.
-
Implement a function that returns the path of solutions over a grid of lambdas (e.g., see glasso package with the function glassopath).
-
Implement additional constraints/penalizations that can be found in the monograph:
K. Benidis, Y. Feng, and D. P. Palomar, Optimization methods for financial index tracking: From theory to practice. Foundations and Trends in Optimization, Now Publishers, 2018.
For example, the turnover constraint. See page 35 and Section 4.6 on pages 63-65.
- Consider including a function that helps in selecting the sparsity level by using AIC or similar methods for order selection.
as mentioned by @dppalomar, we should carefully handle the outputs types such that they remain consistent with input data types, a practice called ducktyping.
As mentioned in class by @dppalomar, any tracking error that can be majorized by the ETE could be added to the function. One trivial extension would be to add support for an L1-type tracking error (trivially majorized by the L2-norm error), which could possibly handle outliers better.