precise icon indicating copy to clipboard operation
precise copied to clipboard

Understanding m6 examples

Open smodlich opened this issue 2 years ago • 1 comments

Hi,

I'm trying to figure out how the m6 examples work internally. As I understand from reading the code the following steps are performed in the simplest examples:

  1. Download data and preprocess, generate difference log returns
  2. Estimate covariance matrix with the chosen skater
  3. Generate n draws from a 100-d-normal distribution with mean all zero and the estimated covariance matrix.
  4. Calculate the 5 quantiles, convert all draws into their respective quantile values (1-5)
  5. Average for every rank the draws for every asset to generate probabilities

As I'm not from a finance background, I have some questions. I would also appreciate links for deeper understanding:

  1. Why is the mean estimation coming from the estimator not used? Shouldn't there be some kind of "trend" in some cases so that mean is not zero?
  2. Why assume the multivariate normal distribution for returns? Couldn't it be any other distribution? Or is this just the simple way to do it without more knowledge?
  3. Looking through the code I'm missing somehow traditional forecasting models? Before reading this package my approach would have been to pick a forecasting model with uncertainty e.g. some bayesian regression/gaussian process/prophet etc. Then generate a forecast from that, define class boundaries based on the uncertainty estimate (Although I struggle to define how to set the boundaries). Any comments on that?

Thanks for any insights :)

smodlich avatar Jun 01 '22 12:06 smodlich

Hi.

  1. Probably not. Obvious trend would be taken advantage of long ago, which is not to completely discount momentum.
  2. Yeah that's lazy, agreed.
  3. Prophet, ARIMA etc are all in timemachines, should you wish to do univariate prediction of anything.

microprediction avatar Jun 06 '22 17:06 microprediction