Mv Student T scale matrix

Hi
Im looking for some advice please.

I need to define a bivariate Student T with the correlation between the 2 variables constrained to be <0. So IIUC I cant use the LKJ prior (not enough control).

But Im not clear how to use the scale parameter in pm.MvStudentT() - is this defined using the correlation matrix, or covariance matrix, or a scaled version of one of these, e.g. corr * (ν / ν - 2), where ν is the degrees of freedom?

Thanks

The scale is related to the covariance matrix. But you also have the option of parameterizing with the analogous to the MVN precision (tau) or cholesky factorization.

A MVT is MVN scaled by a common gamma based on the degrees of freedom, which is why the parametrizations are not exactly the covariance/precision/cholesky.

So would the following be correct, or is there a better way?
Would it be better to use MvN & Gamma?
(ndims = 2)

p0 = np.zeros(ndim)
one = pt.as_tensor_variable(1.0, dtype='float64')
with pm.Model() as mdl:

    ρ = pm.HalfNormal('corr', sigma=0.25)
    corrm = pt.stack([one, -ρ, -ρ, one]).reshape((ndim, ndim))

    sigs = pm.Gamma('sigs', mu=1.0, sigma=0.025, dims=('ndims'))  
    varm = pt.diag(sigs)
    cov = varm.dot(corrm).dot(varm)
    
    nu = pm.Exponential('nu0', lam=0.5) 
    scale = pm.Deterministic('scale', cov * (nu / (nu - 2)))

    T = pm.MvStudentT('T', mu=p0, scale=scale, nu=nu, dims=('trials', 'ndims')) 

Thanks!