model.average {secr} | R Documentation

## Model averaging for SECR Models

### Description

AICc-weighted average of estimated 'real' or 'beta' parameters from multiple fitted secr models.

### Usage

    model.average(..., realnames = NULL, betanames = NULL, newdata = NULL,
        alpha = 0.05, dmax = 10, covar = FALSE, average = 'link')

    collate (..., realnames = NULL, betanames = NULL, newdata = NULL,
        alpha = 0.05, perm = 1:4, fields = 1:4)

### Arguments

`...` | `secr` objects
`realnames` | character vector of real parameter names
`betanames` | character vector of beta parameter names
`newdata` | optional dataframe of values at which to evaluate models
`alpha` | alpha level for confidence intervals
`dmax` | numeric, the maximum AIC difference for inclusion in confidence set
`covar` | logical, if TRUE then return variance-covariance matrix
`average` | character string for scale on which to average real parameters
`perm` | permutation of dimensions in output from `collate`
`fields` | vector to restrict summary fields in output

### Details

Models to be compared must have been fitted to the same data and use the same likelihood method (full vs conditional). If `realnames` == NULL and `betanames` == NULL then all real parameters will be averaged; in this case all models must use the same real parameters. To average beta parameters, specify `betanames` (this is ignored if a value is provided for `realnames`). See `predict.secr` for an explanation of the optional argument `newdata`; `newdata` is ignored when averaging beta parameters.

Model-averaged estimates for parameter theta are given by

theta-hat = sum( w_k * theta-hat_k)

where the subscript k refers to a specific model and the w_k are AIC weights with small sample adjustment (see `AIC.secr` for details). Averaging of real parameters may be done on the link scale before back-transformation (`average='link'`) or after back-transformation (`average='real'`).

Models for which dAICc > `dmax` are given a weight of zero and effectively are excluded from averaging.

Also,

var(theta-hat) = sum(w_k (var(theta-hat_k) + beta_k^2))

where beta-hat_k = theta-hat_k – theta-hat and the variances are asymptotic estimates from fitting each model k. This follows Burnham and Anderson (2004) rather than Buckland et al. (1997).

`collate` extracts parameter estimates from a set of fitted secr model objects. `fields` may be used to select a subset of summary fields ('estimate','SE.estimate','lcl','ucl') by name or number.

### Value

For `model.average`, an array of model-averaged estimates, their standard errors, and a 100(1-alpha)% confidence interval. The interval for real parameters is backtransformed from the link scale. If there is only one row in `newdata` or beta parameters are averaged or averaging is requested for only one parameter then the array is collapsed to a matrix. If `covar = TRUE` then a list is returned with separate components for the estimates and the variance-covariance matrices.
For `collate`, a 4-dimensional array of model-specific parameter estimates. By default, the dimensions correspond respectively to rows in `newdata` (usually sessions), models, statistic fields (estimate, SE.estimate, lcl, ucl), and parameters ('D', 'g0' etc.). For particular comparisons it often helps to reorder the dimensions with the `perm` argument.

### Author(s)

Murray Efford murray.efford@otago.ac.nz

### References

Buckland S. T., Burnham K. P. and Augustin, N. H. (1997) Model selection: an integral part of inference. Biometrics 53, 603–618.

Burnham, K. P. and Anderson, D. R. (2002) Model Selection and Multimodel Inference: A Practical Information-Theoretic Approach. Second edition. New York: Springer-Verlag.

Burnham, K. P. and Anderson, D. R. (2004) Multimodel inference - understanding AIC and BIC in model selection. Sociological Methods & Research 33, 261–304.

### See Also

`AIC.secr`, `secr.fit`

### Examples

    ## Compare two models fitted previously
    ## secrdemo.0 is a null model
    ## secrdemo.b has a learned trap response

    data(secrdemo)
    model.average(secrdemo.0, secrdemo.b)
    model.average(secrdemo.0, secrdemo.b, betanames = c('D','g0','sigma'))

    ## In this case we find the difference was actually trivial...
    ## (subscripting of output is equivalent to setting fields = 1)

    collate (secrdemo.0, secrdemo.b, perm = c(4,2,3,1))[,,1,]

[Package secr version 1.3.0 Index]