starsimhub / starsim

Starsim disease modeling framework
http://starsim.org
MIT License
14 stars 8 forks source link

Consider absolute default #314

Closed cliffckerr closed 7 months ago

cliffckerr commented 7 months ago

I find myself wishing that ss.Sim().run().plot() would actually produce something, for super quick testing. I think diseases='sir', networks='random' would be a reasonable default setting, to be overwritten if the user supplied something.

RomeshA commented 7 months ago

I have mixed feelings about what sensible defaults would be, considering the vast space of usages. In Atomica we've gotten a lot of mileage out of at.demo() as a way to construct valid demo projects, that has the advantage of being able to very quickly produce different demos e.g., if you wanted a simple demo for super quick testing, but for HIV rather than SIR

cliffckerr commented 7 months ago

I don't mind ss.demo(), but I also don't see a downside of having 'sir' and 'random' as the defaults, since there are almost no use cases (that I can think of) where you'd actively want None instead, and of course if you supply something then the defaults will be overwritten

RomeshA commented 7 months ago

Can't say I feel super strongly about it, but in reducing surprise factor, I'd kind of expect that if I make a Sim and don't give it any diseases, then there won't be any diseases in the Sim. If there isn't an obvious choice for a default value, then it can be confusing for users to know when and what things are going to appear by default. That said - it's very context dependent, probably more qualitative than anything about whether a default is 'obvious' or not.

Regardless, ss.demo() would be great to have to provide shortcuts for other common models shipped with the code 👍

kaa2102 commented 7 months ago

I like the idea of a ss.demo() for simplicity of running a demo. Do we want to have a default disease (or shifting randomly selected disease) that can run with Sim.run() or does that go against the spirit and design goal of *sim/Starsim?