How could I use a distribution (pdf) or function of this distribution (fda) from TMB (TMB Documentation: R style probability distributions) in code in stan? For example, how would I call the function:

Type dbinom_robust (Type k,

type size,

Type logit_p,

int give_log = 0

)

inside the Stan code?

There’s no easy way to call external code from within a Stan program. But let’s look at the function and see if we can reimplement. The doc for `dbinom_robust(k, size, logit_p)`

says:

Density of binomial distribution parameterized via logit(prob)

This version should be preferred when working on the logit scale as it is numerically stable for probabilities close to 0 or 1.

We’re in luck. This is already impelemented as `binomial_logit_lpmf(k | size, logit_p)`

, which returns the log of the probability mass function with the probability on the log odds (logit) scale. You can call it like this in a Stan program:

```
k ~ binomial_logit(size, logit_p)
```

For the full doc, see: 16.2 Binomial distribution, logit parameterization | Stan Functions Reference

In general, we suffix distributions with the scale of the parameter when it’s non-standard.

I found the name in TMB to be confusing because it is meant to indicate arithmetic stability, not statistical robustness.

1 Like