Fits a skew-t (ST) or multivariate skew-t (MST) distribution to data, or
fits a linear regression model with (multivariate) skew-t errors, using
maximum likelihood estimation. Functions copied from sn
CRAN library
v0.4.18 because they were later deprecated in that library.
Arguments
- X
a matrix of covariate values. If missing, a one-column matrix of 1's is created; otherwise, it must have the same number of rows of
y
. IfX
is supplied, then it must include a column of 1's.- y
a matrix (for
mst.mle
) or a vector (forst.mle
). Ify
is a matrix, rows refer to observations, and columns to components of the multivariate distribution.- freq
a vector of weights. If missing, a vector of 1's is created; otherwise it must have length equal to the number of rows of
y
.- start
for
mst.mle
, a list contaning the componentsbeta
,Omega
,alpha
,df
of the type described below; forst.mle
, a vector whose components contain analogous ingredients as before, with the exception that the scale parameter is the square root ofOmega
. In both cases, thedp
component of the returned list from a previous call has the required format and it can be used as a newstart
. If thestart
parameter is missing, initial values are selected by the function.- fixed.df
a scalar value containing the degrees of freedom (df), if these must be taked as fixed, or
NA
(default value) ifdf
is a parameter to be estimated.- trace
logical value which controls printing of the algorithm convergence. If
trace=TRUE
, details are printed. Default value isFALSE
.- algorithm
a character string which selects the numerical optimization procedure used to maximize the loglikelihood function. If this string is set equal to
"nlminb"
, then this function is called; in all other cases,optim
is called, withmethod
set equal to the given string. Default value is"nlminb"
.- control
this parameter is passed to the chose optimizer, either
nlminb
oroptim
; see the documentation of this function for its usage.
Value
A list containing the following components:
- call
a string containing the calling statement.
- dp
for
mst.mle
, this is a list containing the direct parametersbeta
,Omega
,alpha
. Here,beta
is a matrix of regression coefficients withdim(beta)=c(ncol(X),ncol(y))
,Omega
is a covariance matrix of orderncol(y)
,alpha
is a vector of shape parameters of lengthncol(y)
. Forst.mle
,dp
is a vector of lengthncol(X)+3
, containingc(beta, omega, alpha, df)
, whereomega
is the square root ofOmega
.- se
a list containing the components
beta
,alpha
,info
. Here,beta
andalpha
are the standard errors for the corresponding point estimates;info
is the observed information matrix for the working parameter, as explained below.- algorithm
the list returned by the chose optimizer, either
nlminb
oroptim
, plus an item with thename
of the selected algorithm; see the documentation of eithernlminb
oroptim
for explanation of the other components.
Details
If y
is a vector and it is supplied to mst.mle
, then it is
converted to a one-column matrix, and a scalar skew-t distribution is
fitted. This is also the mechanism used by st.mle
which is simply an
interface to mst.mle
.
The parameter freq
is intended for use with grouped data, setting the
values of y
equal to the central values of the cells; in this case
the resulting estimate is an approximation to the exact maximum likelihood
estimate. If freq
is not set, exact maximum likelihood estimation is
performed.
likelihood estimation, use st.mle.grouped
.
Numerical search of the maximum likelihood estimates is performed in a
suitable re-parameterization of the original parameters with aid of the
selected optimizer (nlminb
or optim
) which is supplied with
the derivatives of the log-likelihood function. Notice that, in case the
optimizer is optim
), the gradient may or may not be used, depending
on which specific method has been selected. On exit from the optimizer, an
inverse transformation of the parameters is performed. For a specific
description on the re-parametrization adopted, see Section 5.1 and Appendix
B of Azzalini \& Capitanio (2003).
Background
The family of multivariate skew-t distributions is an
extension of the multivariate Student's t family, via the introduction of a
shape
parameter which regulates skewness; when shape=0
, the
skew-t distribution reduces to the usual t distribution. When df=Inf
the distribution reduces to the multivariate skew-normal one; see
dmsn
. See the reference below for additional information.
References
Azzalini, A. and Capitanio, A. (2003). Distributions generated by perturbation of symmetry with emphasis on a multivariate skew t distribution. The full version of the paper published in abriged form in J.Roy. Statist. Soc. B 65, 367–389, is available at http://azzalini.stat.unipd.it/SN/se-ext.ps
Examples
dat <- rt(100, df=5, ncp=100)
fit <- st.mle(y=dat)
fit
#> $call
#> st.mle(y = dat)
#>
#> $dp
#> location scale shape df
#> 69.507859 57.744264 14.520298 5.980555
#>
#> $se
#> scale dat
#> 2.060842 8.046592 6.243089 3.892236
#>
#> $logL
#> [1] -500.9718
#>
#> $algorithm
#> $algorithm$par
#> location shape
#> 69.5078594 4.0560240 0.2514587 1.7885133
#>
#> $algorithm$objective
#> [1] 1001.944
#>
#> $algorithm$convergence
#> [1] 0
#>
#> $algorithm$iterations
#> [1] 14
#>
#> $algorithm$evaluations
#> function gradient
#> 24 15
#>
#> $algorithm$message
#> [1] "relative convergence (4)"
#>
#> $algorithm$value
#> [1] 1001.944
#>
#> $algorithm$name
#> [1] "nlminb"
#>
#>