slice: Calculate likelihood "slices"

sliceR Documentation

Calculate likelihood "slices"

Description

Computes cross-section(s) of a multi-dimensional likelihood surface

Usage

slice(x, dim=1, ...)
sliceOld(fitted, which = 1:p, maxsteps = 100,
                       alpha = 0.01, zmax = sqrt(qchisq(1 - alpha/2, p)),
                       del = zmax/5, trace = FALSE,
                       tol.newmin=0.001, ...)
slice1D(params,fun,nt=101,lower=-Inf,
                    upper=Inf,verbose=TRUE, tranges=NULL,
                    fun_args = NULL,
                    ...)
slice2D(params,fun,nt=31,lower=-Inf,
                    upper=Inf,
                    cutoff=10,verbose=TRUE,
                    tranges=NULL,
                    ...)
slicetrans(params, params2, fun, extend=0.1, nt=401,
                       lower=-Inf, upper=Inf)

Arguments

x

a fitted model object of some sort

dim

dimensionality of slices (1 or 2)

params

a named vector of baseline parameter values

params2

a vector of parameter values

fun

an objective function

fun_args

additional arguments to pass to fun

nt

(integer) number of slice-steps to take

lower

lower bound(s) (stub?)

upper

upper bound(s) (stub?)

cutoff

maximum increase in objective function to allow when computing ranges

extend

(numeric) fraction by which to extend range beyond specified points

verbose

print verbose output?

fitted

A fitted maximum likelihood model of class “mle2”

which

a numeric or character vector describing which parameters to profile (default is to profile all parameters)

maxsteps

maximum number of steps to take looking for an upper value of the negative log-likelihood

alpha

maximum (two-sided) likelihood ratio test confidence level to find

zmax

maximum value of signed square root of deviance difference to find (default value corresponds to a 2-tailed chi-squared test at level alpha)

del

step size for profiling

trace

(logical) produce tracing output?

tol.newmin

tolerance for diagnosing a new minimum below the minimum deviance estimated in initial fit is found

tranges

a two-column matrix giving lower and upper bounds for each parameter

...

additional arguments (not used)

Details

Slices provide a lighter-weight way to explore likelihood surfaces than profiles, since they vary a single parameter rather than optimizing over all but one or two parameters.

slice

is a generic method

slice1D

creates one-dimensional slices, by default of all parameters of a model

slice2D

creates two-dimensional slices, by default of all pairs of parameters in a model. In each panel the closed point represents the parameters given (typically the MLEs), while the open point represents the observed minimum value within the 2D slice. If everything has gone according to plan, these points should coincide (at least up to grid precision).

slicetrans

creates a slice along a transect between two specified points in parameter space (see calcslice in the emdbook package)

Value

An object of class slice with

slices

a list of individual parameter (or parameter-pair) slices, each of which is a data frame with elements

var1

name of the first variable

var2

(for 2D slices) name of the second variable

x

parameter values

y

(for 2D slices) parameter values

z

slice values

ranges

a list (?) of the ranges for each parameter

params

vector of baseline parameter values

dim

1 or 2

sliceOld returns instead a list with elements profile and summary (see profile.mle2)

Author(s)

Ben Bolker

See Also

profile

Examples

x <- 0:10
y <- c(26, 17, 13, 12, 20, 5, 9, 8, 5, 4, 8)
d <- data.frame(x,y)
fit1 <- mle2(y~dpois(lambda=exp(lymax)/(1+x/exp(lhalf))),
   start=list(lymax=0,lhalf=0),
   data=d)
s1 <- bbmle::slice(fit1,verbose=FALSE)
s2 <- bbmle::slice(fit1,dim=2,verbose=FALSE)
require(lattice)
plot(s1)
plot(s2)
## 'transect' slice, from best-fit values to another point
st <- bbmle::slice(fit1,params2=c(5,0.5))
plot(st)

bbmle documentation built on May 29, 2024, 11:02 a.m.