Profile log-likelihood function of selm-class objects


One- or two-dimensional profile (penalized) log-likelihood function of a selm fit and corresponding confidence interval or regions


  ## S3 method for class 'selm'
profile(fitted, param.type,, param.values, npt, 
   opt.control = list(), = TRUE, log = TRUE, level, 
   trace = FALSE, ...)



an object of class selm as produced by a call to function selm with univariate response.


a character string with the required parameterization; it must be either "CP" or "DP", or possibly their equivalent lowercase.

either a single character string or a vector of two such terms with the name(s) of the parameter(s) for which the profile log-likelihood is required; these names must match those appearing in summary.selm(object, param.type).


in the one-parameter case, a numeric vector with the values where the log-likelihood must be evaluated; in the two-parameter case, a list of two such vectors used to build a grid of coordinates of points. Their range must identify an interval or a rectangle which includes the MLE or MPLE obtained by selm. See ‘Details’ for more information.


in case the vector or any of the vectors of argument param.values has length 2, an equally spaced grid of values is build with length equal to the corresponding component of npt. If the above condition is met but this argument is missing, a default choice is made, namely 51 or (26,26) in the one- or two-parameter case, respectively.


an optional list passed as argument control to optim to optimize the log-likelihood; see ‘Details’ for more information.

a logical value; if TRUE (default value), a plot is produced representing the deviance, which is described in ‘Details’ below. In the one-parameter case, a confidence interval of prescribed level is marked on the plot; in the two-parameter case, the contour curves are labelled with approximate confidence levels. See however for more information.


a logical value (default: TRUE) indicating whether the scale and tail-weight parameter (the latter only for the ST family) must be log-transformed, if case any of them occurs in This applies to omega and nu in the DP parameter set and to s.d. and gamma2 in the CP parameter set.


a single probability value (in the one-parameter case) or a vector of such values (in the two-parameter case) for which the confidence interval or region is requited; see ‘Details’ for more information.


a logical value (default: FALSE) to activate printing of intermediate outcome of the log-likelihood optimization process


optional graphical parameters passed to the plotting functions.


For each chosen point of the parameter(s) to be profiled, the log-likelihood is maximized with respect to the remaining parameters. The optimization process is accomplished using the optim optimization function, with method="BFGS". This step can be regulated by the user via opt.control which is passed to optim as control argument, apart from element fnscale whose use is reserved.

If the original fitted object included a fixed parameter value, this is kept fixed here. If the estimation method was "MPLE", that choice carries on here; in case the penalty function was user-defined, it must still be accessible.

For plotting purposes and also in the numerical output, the deviance function D is used, namely

D = 2*[max(log L)- log L]

where L denotes the likelihood.

The range of param.values must enclose the maximum (penalized) likelihood estimates (MLE or MPLE) by an adequate extent such that suitable confidence intervals or regions can be established from standard asymptotic theory. For the SN family and DP parameterization, the asymptotic theory is actually non-standard near the important point α=0, but the correspondence with the regular case of the CP parameterization, still allows to derive confidence regions using standard procedures; for more information on this point, see Section 3.1.6 of Azzalini and Capitanio (2014). When the MLE occurs on the frontier of the parameter space, a message is issued and no confidence interval is produced, while in the two-parameter case the plot is not labelled with probability values, but only with deviance levels.


An invisible list whose components, described below, are partly different in the one- and the two-parameter cases.


the calling statement


values of the first parameter


values of the second parameter (in a two-parameter case)


numeric vector or matrix of the profile log-likelihood values


in the one-parameter case, the confidence interval


in the one-parameter case, the confidence level


in the two-parameter case, a list of lists whose elements identify each curve of the contour plot


  • This function is experimental and changes in future versions of the package may occur. Users should not rely on the persistence of the same user interface or the same name.

  • It is a known fact that, in some critical situations, peculiar outcomes are produced.


Adelchi Azzalini


Azzalini, A. with the collaboration of Capitanio, A. (2014). The Skew-Normal and Related Families. Cambridge University Press, IMS Monographs series.

See Also

selm, summary.selm,

makeSECdistr for the CP/DP parameterizations,

optim for its control argument


m1 <-  selm(log(Fe) ~ BMI + LBM, family = "sn", data = ais)

pll <- profile(m1, "dp","alpha", param.val=c(-3,2))

profile(m1, "cp","gamma1", param.val=seq(-0.7, 0.4, by=0.1))

# in the next example, we reduce grid points to save execution time
pll <- profile(m1, "cp","(Intercept.CP)", "gamma1"), 
         param.val=list(c(1.5, 4), c(-0.8, 0.5)), npt=c(11,16) )                 

Want to suggest features or report bugs for Use the GitHub issue tracker. Vote for new features on Trello.

comments powered by Disqus