3
$\begingroup$

I am trying to construct a dataset to apply MLP in forecasting financial returns. The main idea is that I want to predict future equity returns (1 month ahead, but the horizon can vary, just to give an idea) using fundamental data.

My dataset is made of n features for N companies. The main issue is that the features are not recorded at the same point in time, so that some of them would be a monthly time series and some other a daily time series. I am trying to understand the general way to approach this problem because it's my first ML application.

What should I do if my features are time series of data that differs in this sense? I have red a lot of publications, but no one gets in deeper about how the dataset is composed (before train/test splitting). Can someone recommend some useful source?

EDIT

Suppose I have a variable amount of companies over 10 years of monthly data, mainly because some of them doesn't exist anymore, but it is important for the problem of survivorship bias.

For each of these N companies I have n features that represents fundamentals of these companies. I would be able to regress the monthly return, so I am trying to solve a supervised learning problem.

What I cannot understand is the feasibility of the problem using a simple Multilayer perceptron instead a more complex structure like RNN or even LSTM. I wouldn't want to switch to one of these more complex architectures for some specific reason related to the project I am building.

Probably I am missing the reasoning behind the training of the network. How should I provide input data to the architectures in order to perform backpropagation and GD? The only thing I am sure is that I should shift the monthly return series of a time period to recast the problem as supervised.

$\endgroup$
  • $\begingroup$ You're looking for time series interpolation to resample your data (you can resample up or down). However, without more information about your features, what you've already tried and how that worked out you might not get many answers. $\endgroup$ – redhqs Dec 11 '18 at 9:19
  • 1
    $\begingroup$ I try to reformulate the problem editing the main post. $\endgroup$ – Alexbrini Dec 12 '18 at 10:15
  • $\begingroup$ Are you trying to develop a model per company? i.e. a model that is tuned specifically to time series data related to that company or are you trying to develop one model which will produce forecasts for all of the companies in one go? $\endgroup$ – Aesir Dec 13 '18 at 6:48
  • $\begingroup$ The model should be useful for forecasting returns of companies in a specific sector. Specifically, my dataset will include only tech companies. $\endgroup$ – Alexbrini Dec 13 '18 at 13:02
1
$\begingroup$

You are going to have to consider three different factors:

1 - What data are you going to have available when you run your predictions? Are you going to have to pre-process that data? Are you going to have the time to do it? You should be setting your focus on this and work backwards from what runtime predictions look like

2 - When it comes to time series, you have to think of it in terms of (1) lookback windows, or how many periods prior are you considering and (2) time shifts, or how many periods forward are you predicting? This can result in an amazing number of combinations for you to model. You should end up with data sets where you have n features for X time periods and your target variable (your labeled data) is the result Y time periods from X where you are creating a prediction.

3 - The cardinal sin of time series is that you should never model on data that was not available at the specific runtime date. It's a common beginner mistake where you mix up your time periods and end up taking in data that was not actually available when it was released; in other words, it will not be available to you (or at least not correct) when you go to make a prediction. This can be common in financial data where entities can come back and "re-state" numbers at a future date. You have to make sure you are modeling on data as it stood on the target date you are modeling.

With these thoughts in mind, you should be on your way to prepping your data in a way that makes sense.

|improve this answer|||||
$\endgroup$
  • $\begingroup$ Thanks for replying, your answer is very useful. I can say that the financial data I have available don't need much work for preprocessing. I just need to drop Na values or substitute them with the previous value (just a matter of choice). MY question is more related to the structure of time series I should include. For instance, since I want to predict values 1 month ahead, should I use only monthly time series? Does the NN accept as inputs time series of the same lenght or it is possible to do something different? $\endgroup$ – Alexbrini Dec 7 '18 at 8:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.