Confidence intervals and profile likelihoods for parameters in cumulative link models

Computes confidence intervals from the profiled likelihood for one or more parameters in a cumulative link model, or plots the profile likelihood.

# S3 method for clm
confint(object, parm, level = 0.95,
        type = c("profile", "Wald"), trace = FALSE, ...)

# S3 method for profile.clm confint(object, parm = seq_len(nprofiles), level = 0.95, ...)

# S3 method for clm profile(fitted, which.beta = seq_len(nbeta), which.zeta = seq_len(nzeta), alpha = 0.001, max.steps = 50, nsteps = 8, trace = FALSE, step.warn = 5, control = list(), ...)

# S3 method for profile.clm plot(x, which.par = seq_len(nprofiles), level = c(0.95, 0.99), Log = FALSE, relative = TRUE, root = FALSE, fig = TRUE, approx = root, n = 1e3, ask = prod(par("mfcol")) < length(which.par) && dev.interactive(), ..., ylim = NULL)

object, fitted, x

a fitted clm object or a profile.clm object.

parm, which.par, which.beta, which.zeta

a numeric or character vector indicating which regression coefficients should be profiled. By default all coefficients are profiled. Ignored for confint.clm where all parameters are considered.


the confidence level. For the plot method a vector of levels for which horizontal lines should be drawn.


the type of confidence interval.


if trace is TRUE or positive, information about progress is printed.


should the profile likelihood be plotted on the log-scale?


should the relative or the absolute likelihood be plotted?


should the (approximately linear) likelihood root statistic be plotted?


should the Gaussian or quadratic approximation to the (log) likelihood be included?


should the profile likelihood be plotted?


logical; if TRUE, the user is asked before each plot, see par(ask=.).


the no. points used in the spline interpolation of the profile likelihood.


overrules default y-limits on the plot of the profile likelihood.


the likelihood is profiled in the 100*(1-alpha)% confidence region as determined by the profile likelihood.


a list of control parameters for clm. Possibly use clm.control to set these.


the maximum number of profiling steps in each direction for each parameter.


the (approximate) number of steps to take in each direction of the profile for each parameter. The step length is determined accordingly assuming a quadratic approximation to the log-likelihood function. The actual number of steps will often be close to nsteps, but will deviate when the log-likelihood functions is irregular.


a warning is issued if the number of steps in each direction (up or down) for a parameter is less than step.warn. If few steps are taken, the profile will be unreliable and derived confidence intervals will be inaccurate.

additional arguments to be parsed on to methods.


These confint methods call the appropriate profile method, then finds the confidence intervals by interpolation of the profile traces. If the profile object is already available, this should be used as the main argument rather than the fitted model object itself.


confint: A matrix with columns giving lower and upper confidence limits for each parameter. These will be labelled as (1-level)/2 and 1 - (1-level)/2 in % (by default 2.5% and 97.5%).

plot.profile.clm invisibly returns the profile object, i.e., a list of data.frames with an lroot component for the likelihood root statistic and a matrix par.vals with values of the parameters.

See Also

profile and confint

  • confint.clm
  • confint.profile.clm
  • profile.clm
  • plot.profile.clm
## Accurate profile likelihood confidence intervals compared to the
## conventional Wald intervals:
fm1 <- clm(rating ~ temp * contact, data = wine)
confint(fm1) ## type = "profile"
confint(fm1, type = "Wald")
pr1 <- profile(fm1)

## plotting the profiles:
par(mfrow = c(2, 2))
plot(pr1, root = TRUE) ## check for linearity
par(mfrow = c(2, 2))
par(mfrow = c(2, 2))
plot(pr1, approx = TRUE)
par(mfrow = c(2, 2))
plot(pr1, Log = TRUE)
par(mfrow = c(2, 2))
plot(pr1, Log = TRUE, relative = FALSE)
## Not likely to be useful but allowed for completeness:
par(mfrow = c(2, 2))
plot(pr1, Log = FALSE, relative = FALSE)

## Example from polr in package MASS:
## Fit model from polr example:
if(require(MASS)) {
    fm1 <- clm(Sat ~ Infl + Type + Cont, weights = Freq,
               data = housing)
    pr1 <- profile(fm1)

# }
Documentation reproduced from package ordinal, version 2019.12-10, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.