R: Profile log-likelihood function of selm-class objects

profile.selm {sn} | R Documentation

## Profile log-likelihood function of selm-class objects

### Description

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

### Usage

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

### Arguments

`fitted` | an object of class `selm` as produced by a call to function `selm` with univariate response.
`param.type` | a character string with the required parameterization; it must be either `"CP"` or `"DP"`, or possibly their equivalent lowercase.
`param.name` | 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)`.
`param.values` | 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.
`npt` | 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.
`opt.control` | an optional list passed as argument `control` to `optim` to optimize the log-likelihood; see ‘Details’ for more information.
`plot.it` | 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.
`log` | 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 `param.name`. This applies to `omega` and `nu` in the `DP` parameter set and to `s.d.` and `gamma2` in the `CP` parameter set.
`level` | 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.
`trace` | 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.

### Details

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. If this condition does not hold, the function still proceeds, but no confidence interval or region is delivered. 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.

### Value

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

`call` | the calling statement
`<param1>` | values of the first parameter
`<param2>` | values of the second parameter (in the two-parameter case)
`logLik` | numeric vector or matrix of the profile log-likelihood values
`confint` | in the one-parameter case, the confidence interval
`level` | in the one-parameter case, the confidence level
`deviance.contour` | in the two-parameter case, a list of lists whose elements identify each curve of the contour plot

### Warnings

- 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(s).

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

### Author(s)

Adelchi Azzalini

### References

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

### Examples

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

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

    profile(m1, "cp", param.name="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", param.name=c("(Intercept.CP)", "gamma1"),
             param.val=list(c(1.5, 4), c(-0.8, 0.5)), npt=c(11,16) )

[Package sn version 1.5-3 Index]