I am trying to implement a multivariate logistic function into Stan and
figured I will need the following things in order to make the desired
likelihood function.
v Degrees of freedom
p Dimension of y
T_{p,v} ~ Multivariate T
g_v() Inverse CDF T
\phi^{-1} ~ \Gamma^{-1} (v/2,v/2)
z_{j} = log{\frac{F(\phi^{-1}e_j)}{(1-F(\phi^{-1}e_j))}}
e_1..e_p ~ Multivariate Normal N(0,R)
F(e_j) ~ Uniform distribution (0,1)
L() ~ Logit
R Covariance matrix of e_1..e_p
Some of these are easily accessible by using predefined functions
in Stan. However I’m wondering if it is possible to obtain the
Inverse CDF of a T distribution in an efficient way. Also I do not quite
understand how to sample from a distribution that is undefined. The model
I want to use is build up like this for the p-dimensional case:
Multivariate_logit = T_{p,v} ( g_v(z_1-\mu_1),...,g_v(z_p-\mu_p) ) | 0, R) \times \prod_{j=1}^p [{L(z_j|\mu_j)}/ {T_{1,v}(g_v(z_j-\mu_j)|0,1)}]
So the first part is a multivariate T distribution multiplied by scaling the
univariate logit model by a univariate T distribution. You can see that if
the number of dimensions is p=1, only L(z_1|\mu_1) remains, hence the univariate
logit distribution.
To summarize, does the inverse CDF of the T distribution exist in Stan?
Are there any alternative approaches to solve this. Would it be possible
to define a model in the way defined above and sample from this?
Is it likely that this would lead to efficient sampling?