Hacker News new | ask | show | jobs
by smallnamespace 2731 days ago
Are you able to apply global correlations to all the variates?

One of the triggers for the financial crisis in '08 was that the Monte Carlo pricers assumed the various risks were much less correlated than they actually were.

For example, they largely assumed that it was unlikely for many mortgages or underlying MBS securities to simultaneously default (low correlation). This is how many AAA rated CDO securities ended up trading at 50%+ discounts.

IMHO, any multivariate Monte Carlo analysis that doesn't show your sensitivity to correlation is essentially useless, since your answers may change completely.

In the second example model (https://www.getguesstimate.com/models/316), Fermi estimation for startups, you would expect many of the inputs (deals at Series A, B, C, amount raised per deal) in real life to be highly correlated with each other since they all depend on 'how well is VC in general doing right now?'

The final estimate of 'Capital Lost in Failed Cos from VC' has a range of 22B to 39B, this seems way too low. The amount of VC money lost during a crisis (like in '01) can easily be an order of magnitude more.

3 comments

I'd definitely agree that correlations can be a really big deal, especially in very large models like that one.

Guesstimate doesn't currently allow for correlations as you're probably thinking of them. However, if two nodes are both functions of a third base node, then they will both be correlated with each other. You can use this to make somewhat hacky correlations in cases where there isn't a straightforward causal relationship.

Implementing non-causal correlations in an interface like this is definitely a significant challenge. It could introduce essentially another layer to the currently 2-dimensional grid. It's probably the feature I'd most like to add, but the cost was too high so far.

I think Guesstimate is really ideal for smaller models, or for the prototyping of larger models. However, if you are making multi-million dollar decisions with hundreds of variables and correlations, I suggest more heavyweight tools (either enterprise Excel plugins or probabilistic programming).

Thanks for explaining your thought process, I read your other replies and it's agree that many decisions are being made without any formal probabilistic model at all. There's a lot of value in sitting down and working out how things might be related to each other.

> where there isn't a straightforward causal relationship

One way to interpret a global pairwise correlation is simply that the person building the model is being systematically biased in one direction—either being too pessimistic or optimistic. This is a 'non-causal' relationship but often the biggest contributor to variance between the model and the real world.

Philosophically, this is a bit like the difference between 538's modeling approach and Princeton Election Consortium's for the 2016 election—the former gave Hillary a 2/3 chance of winning, while the latter ascribed a ~99% chance.

The risk of leaving modeling error out is that you'll end up with much more confidence than is called for—it feels very different to come up with a point estimate (I'll save $10k this year) vs. a tight range (I'll save 9k-11k this year), if the true range is much wider.

In the former case you know your point estimate may be very far off, but in the latter you may be tempted to rely on an estimate for variance that too low.

> It could introduce essentially another layer to the currently 2-dimensional grid

You could probably get away with doing almost all of this automatically for the user as long as the decide on what the 'primary' output is:

- For every input, calculate whether it's positively or negatively correlated with the output

- Apply a global rank correlation to all the inputs with all the standard techniques, flipping the signs found above as appropriate

- Report what the output range looks with a significant positive correlation (usually the negative correlation case isn't as interesting)

You can arbitrarily (rank-)correlate any variables of any distribution using copulas as an intermediary.

So basically, draw a multivariate correlated standard normal with the intended correlation. Transform the standard normal draws into quantiles of the standard normal (this works the marginal distributions are also normal). Now you have X and Y quantiles for your target distributions and you can draw from them.

The distributional transformations will slightly attenuate the correlation, and the choppier the distributions the more attenuation you'll get. Additionally, while you can do this for 3+ variables at once, there are constraints on the possible sigma matrix describing n-dimensional correlations.

If the variables have no fixed distribution you can use the eCDF of the actual data, so it's even possible to import e.g. population and income data and produce a permutation that gives you the correlation desired.

I agree that it is fairly difficult to do this if you have arbitrary DGPs with complex interdependencies in them--if you correlate on variables A and B, then it is difficult to guarantee the observed correlation between f(A) and g(B) and vice versa--but still you can provide a lot of utility with the copula method.

>any multivariate Monte Carlo analysis that doesn't show your sensitivity to correlation is essentially useless

This rational is why this tool shouldn't be used for anything consequential -- like business decisions that can sink you company.

In my experience, many consequential business decisions aren't even made with probability distributions, let alone probabilistic models with realistic correlations. I would generally encourage people who are comfortable with more advanced probabilistic systems to use them.
I would really like to know the answer to the correlations question. It's essential for doing some of the things we do at our company.

Also, are we able to adjust the distribution of each variable?

EDIT: I think you can actually manually create correlations on sheet so it should be fine

You can choose from a few distributions (normal, lognormal, uniform) in the main editor, or you can type many others using the function editor. The sidebar describes all of them.