Website Logo
/ blog
/ anylogic-truncated-gamma-distribution-is-incorrect

The AnyLogic Truncated Gamma Distribution is incorrect

As my last post illustrated, AnyLogic's distributions are occasionally incorrect. This keeps you limber as an engineer, because it's always a fun surprise when expensive enterprise software is worse than what free Python libraries provide.

Anyhow, today I am going to illustrate that the AnyLogic Gamma Distribution doesn't do what the documentation says that it should.

There are a couple different call signatures for the Gamma distribution. You can read about them here and here, but essentially you can call it like:

Alpha and Beta are the parameters, shift and stretch move and scale the distribution, and min and max are truncation bounds.

The documentation assures us that the 5 paramater signature is equivalent to calling the 3 parameter version like so: gamma(alpha, 1, 0) and then multiplying it by the stretch, and moving it by the shift. This means that:

should be equivalent. Take a moment to convince yourself of that.

Now let's use the choose probability distribution wizard to visualise both distributions:

Two plots of the gamma distribution from the truncated and untruncated versions in the distribution wizard. They are obviously not the same.

As you can see, they're obviously different. Yikes.

The mean of a gamma distribution with alpha and beta parameters is defined as alpha/beta, so the mean for this distribution should be 0.5. As you can see, the 3 parameter invocation is correct, while the 5 parameter version is incorrect. Perhaps it's just wrong. Perhaps the documentation is out of date. You decide.

AnyLogic is the worst.