Thanks for writing such a thorough article! I’d be interested in seeing how LVPMs work in practice, but I must admit I’m coming from a position of extreme skepticism: Given how complicated real-world situations like the Russia/Ukraine war are, I’m skeptical a latent variable model can provide any marginal price efficiency over a simple set of conditional and unconditional markets.
My suspicion is that if a LVPM were created for a question like “Will China invade Taiwan by 2030?” that most of the predictive power would come from people betting directly on the latent variable rather than from any model-provided updates as a result of people betting on indicator variables. The number, type, and conditional dependency graph of indicator variables is too complicated to capture in a simple model and would function worse than human intuition, imho.
Other thoughts:
Unconditional: "Will China invade Taiwan by 2030?"; Conditional: "If China experiences a recession any time before 2030, will China invade Taiwan by 2030?"
Isn't estimating P(Y) from P(Xi) most of the value of LVPMs?!
Yes, that's correct; if the market creator is willing to issue these payouts, then they are playing the role of AMM.
The question is how to add third-party liquidity provision to this system, i.e. where users can inject and remove liquidity from the market to increase payouts for traders (ideally while being compensated for their efforts).
That's the idea. You can see some example code for our Uniswap-style AMM here, but honestly, any well-designed api would be fine. What I'd like is: 1. A typescript interface that defines the current state of a LVPM at any given point, 2. Betting function: Given a bet on some variable and the current market state, return the new market state and user position, 3. Resolution function: given the current market state, the final outcome of the market, and a list of user positions, return a list of all the user payouts.