Foreword six years after this blog post originally appeared (November 2021). I agree to what I wrote below, mostly. I came to like this attempt (by Claude Lévi-Strauss, Structural Anthropology, p. 181.) at a short answer (although any short answer is bound to be incomplete, and it might not apply to all fields):
The simplest model which, while being derived exclusively from the facts of the situation, also makes it possible to account for all of them.
I came to like requirements about prediction less, at least forecasts about the future, since then we have to wait for the future to deem if a model is good or not. Maybe this is the central dilemma of mathematical and computational modeling—if we don’t care about prediction, then what is the point anyway; if we care about it, then the true test (the future) is not there when we need it.
What is a good model? A tweet by my colleague Hiroki Sayama a while ago prompted me to see if I could formulate my own description.
Today’s quote from free open-access #IMACS: What is a good model? http://t.co/Sa5zUccfc6 pic.twitter.com/5rYmupkJ19
— Hiroki Sayama (@HirokiSayama) August 21, 2015
Another reason this is worth contemplating for me is that I’m teaching a class in complex systems & agent-based models, partly using Sayama’s excellent book. Of course, there is an entire field of philosophy dealing with this, but I think a practical-minded scientist can allow her/himself to be a bit more succinct. So here’s my take:
There are both objective and relative aspects to this question, and in any kind of explanation, you need to mention both.
It has to be able to predict something about the real system. This also implies it should be falsifiable.
If the model’s purpose is an explanation, not only a prediction, it has to either reduce the hypotheses of the original system or identify mechanisms. This implies it has to be as simple as possible.
It should be possible to simulate, analyze, and describe it relatively easy and fast. This also means in- and output should be easy to match with empirical data.
A new model has to be able to do the above, at least some aspects of it, better than existing models.
For an understudied or complicated problem, you can demand less (in terms of the above criteria) of a good model.