A New Generative AI Competition in Eleven Dimensions
There’s a new 11-dimensional game you can play by running this notebook. The task is distributional prediction of next week’s financial sector returns. You submit scenarios, not point estimates.
You can:
- Use econometric & statistical methods like copulas, conformal prediction and covariance estimation (e.g. this list).
- Use GANs (hardly new in this context: paper) or KANs.
- Use foundational time-series models (some ideas here)
- Use a water computer (though flow networks might be easier)
You can do whatever you like in your efforts to beat the Shrinkage Oracle of Omaha and other competitors, just so long as you have fun, optionally talk some trash in the slack (link at bottom the the leaderboard), and learn something about statistics in the process.
Why?
The pile of Monte Carlo scenarios collected from all competitors may, over time, come to constitute an estimate of the joint distribution of the financial sectors that is jolly hard to beat.
It is an open-source experiment in crowdsourcing, nothing more, although if you read about my M6 high jinx then you might be sympathetic to the notion that a market-like thing benefiting from cognitive diversity might one day put more normative modeling efforts to shame. That is, if there are enough serious contributions.
Like a market, the game is designed so that those who contribute the most to fixing up the market joint distribution “Q” will accumulate more wealth than others. Indeed you may choose to view this as a single mechanism that is a more direct way to solicit Q than, say, a vast collection of separate options CLOBs.
(There is some partial information about the previous week’s joint distribution available via the API, btw, feel free to critique the crowd covariance estimates).
What you have to do to participate
Pretty simple:
- Every weekend you run a script. Perhaps initially it resembles this notebook (but over time you branch out and make improvements). As presented the script looks at the history of weekly returns for sector ETFs and generates approximately one million Monte Carlo scenarios (but your script can use whatever data you can find). Each scenario comprises 11 numbers, so the collection is dataframe with 11 columns and just over a million rows.
- You send those scenarios to the game server (as shown in the notebook) where they will sit in quarantine until the returns for the following week are known. At that time, the collection of Monte Carlo paths are judged and based on how many scenarios are close to the actual returns, an increment or decrement will be made to your wealth.
The incentives of the game explained
Short version: the submitted Monte Carlo samples are interpreted as a joint distribution, allowing the determination of a posterior likelihood when the truth is revealed one week later. (The incentives of this game are also described in the aforementioned notebook).
To be formal, let’s imaging you are participant i and we’ll enumerate your submissions k=0,..,2²⁰-1. Each submission is an 11-vector representing the return’s in the coming week for different ETFs representing different sectors of the economy.
The system will assume that you mean to ascribe the following joint distibution to any return vector z:
Here a is a system parameter that is quite large. Now the system will also pretend that you are investing a fraction b of your total wealth W and thus putting at risk:
Every other participant does the same. Your change in wealth when the truth z is revealed will be:
where
is a kind of aggregate mass placed on the point z by all participants combined, each participant’s mass being proportional to the wealth put at risk and the density. For example your contribution is:
You can see that the reward system is a ‘splitting of the pot’ in proportion to the density that you ascribe to the truth z, but it also depends on the density that others ascribe to z. Perhaps it is also clear that Q(z) should tend towards the true density P(z) over time, as the game becomes played more competitively and upside is arranged.
Cron it up
It is a simple but long-running game, so don’t be shy about altering this script (or copying from the notebook) and — just to emphasize — scheduling it to run every weekend.
We wish to encourage consistency so if you fail to submit for a given week, you will lose the full amount b. This fraction is set at around 0.1 but see the website for the actual system parameter. Players who are consistent can also qualify for a likelihood prize, which is more of a traditional contest than a market.
But I use R not Python
There are other examples to be found in this repo including, yes, an R submission example.