Hi @andrjohns , I have the same problem as @Nelson_Lima_de_Souza_Filh , but for the construction of the skew t distribution lcdf and lpdf, could you help me?

This is a trickier one. According to Eq 1.1 here the PDF for the univariate Skew-T with location \mu, scale \sigma, df \nu and skewness \lambda is given by:

Where:

And T(;) and t(;) are the PDF and CDF, respectively, of the standard studentâ€™s T.

We could specify the log of this PDF in Stan as:

```
functions {
real skew_t_lpdf(real y, real mu, real sigma, real nu, real lambda) {
real z = (y - mu) / sigma;
real tau = sqrt((nu + 1) / (z^2 + nu));
real t_lcdf = student_t_lcdf(z, nu, 0, 1);
real t_lpdf = student_t_lpdf(lambda*z*tau, nu+1, 0, 1);
return log2() + -1*log(sigma) + t_lcdf + t_lpdf;
}
}
```

Note that this is completely untested, so I would recommend verifying against known-good values (or an implementation in another package, like R)

I couldnâ€™t find a definition of the CDF for the skew t, so I canâ€™t be much help there unfortunately

Skew t cdf

Looks fun

Hi @spinkney , I appreciate your contribution but as I have little experience in stan programming I wouldnâ€™t know how to write this code in stan.

Is there a way to create the cdf just like the integral of the pdf?

It would be useful to add skew-t to Stan if you can get it working well.

I moved all these posts to a new topic as itâ€™s unrelated to the slash and skew slash

I have the `generalized_skew_t`

lpdf and lcdf functions at helpful_stan_functions/skew_generalized_t.stanfunctions at main Â· spinkney/helpful_stan_functions Â· GitHub.

These reduce to skew T by setting p = 2. However, it appears that the parameterization is different from the `sn`

R package. Due to the use of `lambda`

which is between -1, 1. The Skew T that it reduces to is the skew T from https://www.ssc.wisc.edu/~bhansen/papers/ier_94.pdf equation 10 (p. 710, pdf p. 6).

I also have the quantile function in that repo for this distribution.