manifoldmarkets / manifold

Manifold Markets: A market for every question
https://manifold.markets
MIT License
413 stars 156 forks source link

Squiggle <> Manifold Markets #109

Open NunoSempere opened 2 years ago

NunoSempere commented 2 years ago

Some notes after the conversation today

Squiggle could be most useful for large-scale estimation tasks. But these would require more investment, so it might be interesting to see if Squiggle can be useful for small-scale tasks and improvements, like distribution support, before attempting to do larger scale tasks

Small scale

  1. Adding support for distributions

This would look like manifold being able to ask continuous questions, like "What will AMF's cost-effectiveness be in 2025?". One could do this using some number of bins (like Hypermind). But a better way to do this might be using distributions.

This would require a way to extrapolate from distributions into bets. But I think that this is possible. In particular, if a market resolves to x, we can look at what users predicted the cummulative probability of "at least x being reached would be". These quantities would be p1=cdf1(x), p2=cdf2(x), p3=cdf3(x), etc. Per Learning Performance of Prediction Markets with Kelly Bettors, we can calculate the bets corresponding to those probabilities, as well as the resulting market price. This allows us to infer the bets automatically.

I think this would still require some thought to specify that enough that it can be programmed. But I'm probably up for thinking about it, maybe in exchange for you taking your AMM code and packaging it up as an independent package, or out of the goodness of my heart.

  1. Adding support for prediction functions

This might look like: "If the market hasn't resolved yet at time t move the market probability to Laplace(t,0) at time t". This would just allow users to predict market price. It becomes more interesting when users are doing this for distribution questions, but it is still cute for binary or multiple choice questions.

  1. Adding support for combination markets

I'm not sure what term @quinn-dougherty used for this. But this would involve setting the market probability and/or the resolution of a market as a combination of the market probabilities/resolution of other markets, and maybe some external data APIs.

E.g., consider something like "will Ukraine sue for peace". Its probabilities might be informed by 10 other markets referring to the situation in Ukraine. One of the good literature pieces on this is Future Indices, which looks at how to decompose abstract questions into clusters of more specific questions.

Galaxy brain ideas

Eventually, we might want to estimate many, many things at once, and Squiggle would be great for that. This might look like: Creating a squiggle function to predict whether all heads of state are replaced, as a function of many different indicators. Or like predicting all Our World In Data charts. This is trickier, and its unclear whether Manifold might want to have large-scale tournaments, or whether the betting interface is an scalable way to think about eliciting distributions.

quinn-dougherty commented 2 years ago

Adding support for combination markets I'm not sure what term @quinndougherty used for this.

I like to think of them as compositional markets (also my github username has a hyphen!)

quinn-dougherty commented 10 months ago

Oh -- you could implement the equivalent bet test from how to measure anything

His first technique is the equivalent bet test. Suppose you’re asked to give a 90% CI for the year in which Newton published the universal laws of gravitation, and you can win $1,000 in one of two ways:

  1. You win $1,000 if the true year of publication falls within your 90% CI. Otherwise, you win nothing.
  2. You spin a dial divided into two “pie slices,” one covering 10% of the dial, and the other covering 90%. If the dial lands on the small slice, you win nothing. If it lands on the big slice, you win $1,000.

where you elicit a distribution on the squiggle side and you compare it to financial transactions on manifold to go and update either your squiggle code or your trading strategy, iteratively / in cycle.