student() defines a one-response Student-t distribution with formulas for
location mu, residual scale sigma, and degrees of freedom nu.
Details
Here sigma is the Student-t scale, not the response standard deviation.
The density is the location-scale t evaluated at z = (y - mu) / sigma, so the
standard deviation of y is SD[y] = sigma * sqrt(nu / (nu - 2)) for nu > 2
and is strictly larger than sigma (about 73% larger at nu = 3, shrinking to
sigma as nu -> Inf). The Student-t family uses this scale because the
location-scale t has no closed-form standard-deviation parameterization, and
both drmTMB and its DRM.jl twin fit sigma as the scale.
The nu parameter uses a log link with a lower bound of 2:
nu = 2 + exp(eta_nu). This keeps the fitted distribution in the
finite-variance region (nu > 2) while still allowing heavy tails. The lower
bound is a deliberate design choice, not a standard-deviation requirement: it
guarantees a finite variance and a well-defined SD[y]. The model therefore
cannot represent the very heavy tails of nu <= 2 (for example a
Cauchy-like nu = 1); data that genuinely need nu <= 2 would require lifting
the floor, which is not implemented. check_drm() warns when the fitted nu
approaches the boundary at 2, where the slant of the likelihood in nu is
weakly identified.
Ordinary mu random intercepts and independent numeric slopes such as
(1 | id) and (0 + x | id) are supported. Correlated slopes,
sigma random effects, and nu random effects are not supported.