I have a dataset about hedge funds. Its include data from 2010 january to 2019 december. This data are monthly financial ratios of hedge funds such as sharpe,alpha,beta,sortino and monthly returns of hedge funds. I normalized the relative returns of each fund. And I want to estimate these monthly returns. Using these ratios. Now Im using machine learning regression models, I created this function "$$Y_{t+1} = X_{0,t}+...+ X_{12,t}$$" for the regression model. "$Y_{t+1}$" shows the normalized relative return of the hedge fund in the following month(t+1)(next/future), "$X_{0,t}$" variables show the financial ratios of that fund in the t month(now). I thought about this function to predict future month's returns before data came so I want to predict the next month with the current data.Because the data comes as of the end of the month. I have to guess the return for the next month. As an example, I would like to forecast the return on hegde funds at the end of January 2011 with data from January 2010 to December 2010. Without ever seeing the data for January 2011. Is this regression function written correctly.

Does using $Y_{t+1}$ break the model and is there a model or mathematical function that you can suggest? for "predict future month's returns before data came so I want to predict the next month with the current data."

Additonal Infos:

Some additional information there are 2889 months of data, I keep all 27 different funds in a database, and I train a single regression model, not for each fund separately.I used the regression function I showed above($Y_{t+1} = X_{0,t}+...+ X_{12,t}$).

But it didn't work well on any algorithm, so the R-square score was negative. why do you think it didn't work and how can I fix it ? I used both sliding window and expanding window as validation. I use dummy variables for fund names/tickers

Sample Data:

enter image description here


You could try to predict difference $dy = Y_{t+1} - Y_{t}$, not the $Y_{t+1}$ itself. Intuitively, the weather today is good starting prediction for the weather tomorrow.

Secondly, with time series, the seasoning is quite important. You usually would like to use models like ARIMA that takes this into account.

Lastly, it could be just don't enough data to make good predictions. I don't know what is these indexes exactly, but I'm not sure you can use data from one fund to predict another. This leaves you with about 100 points of training data (8 years monthly) and it's not a lot. I would recommend you to solve 1-d (predict one fund by only it's data) with $dY$ trick, then try ARIMA

| improve this answer | |
  • $\begingroup$ Hi @kirill-fedyanin, Actually, I'm trying to rating these funds. so i'm trying to predict their returns.I try to rank or sorting the funds for each next month, based on the potential of the highest return to the lowest return. Then I give them a letter grade. (A, B, C, D, F).Is it possible for me to do this with the "difference" method which is you proposed or is there any other technique you can suggest? How can I rating / evaluate the funds with regression. $\endgroup$ – Clankk May 1 at 17:17
  • $\begingroup$ The $dY$ is more of a training trick, you could get common values just by $Y_{t+1} = Y_{t} + dY$. You probably don't even need it for the arima. The key restrictions in this problem -- it's a time series and you have not so much data. I would build a arima model per each fund and then compare the predicted values. FYI, there is quite elaborated ranking problem with own algorithms and it's often used by search engines, but I can't say how well would it run with the size of the dataset. $\endgroup$ – Kirill Fedyanin May 1 at 17:42
  • $\begingroup$ Thanks again "learn to rank" algorithms are very complex for me. This is my academy project, and I want it to be simple, and They only allowed to use machine learning algorithms such as random forest,lasso reg. I think I'm gonna go your way($dY = Y_{t+1} - Y_{t}$) and try. I don't understand the last one you wrote ?($Y_{t+1} = Y_{t} + dY$). $\endgroup$ – Clankk May 1 at 18:58
  • $\begingroup$ I meant, if you know the current month value and the difference, you could easily get the next month absolute value and then rank them as you would do it now. The idea was that with small amount of data it's better to train few small models for each fund, then one complicated. It would be probably easier to train with $dy$, but to compare you need the absolute value. $\endgroup$ – Kirill Fedyanin May 1 at 19:08
  • $\begingroup$ okey understood. I used dY method. But the result is the same. It scored minus R square scores in all algorithms such lasso,random forest. :( $\endgroup$ – Clankk May 1 at 20:13

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.