View source: R/create.model.list.R
| create.model.list | R Documentation |
Creates a dataframe of all combinations of parameter specifications for each
parameter in a particular type of MARK model. It is used together
with mark.wrapper to run a series of models from sets of
parameter specifications.
create.model.list(model)
model |
character string identifying the type of model (e.g., "CJS") |
This function scans the frame of the calling enviroment and collects all
list objects that contain a formula and have names that match
parameter. where parameter is the name of a type of parameter in the
model type. For example, it looks for Phi. and p. for
model="CJS". Any number of characters can follow the period. Each of
the named objects should specify a list that matches the structure of a
parameter specification as described in make.mark.model. It
only collects list objects that contain an element named formula,
thus it will not collect one like Phi.fixed=list(fixed=1). If you
want to do something like that, specify it as
Phi.fixed=list(formula=~1,fixed=1). It is safest to use this inside a
function that defines all of the parameter specifications as shown in the
example below. The primary use for this function is to create a dataframe
which is passed to mark.wrapper to construct and run each of
the models. It was written as a separate function to provide flexibility to
add/delete/modify the list prior to passing to mark.wrapper.
For example, only certain combinations may make sense for some parameter
specifications. Thus you could define a set to create all the combinations
and then delete the ones from the dataframe that do not make sense. you
want, add others and re-run the function and merge the resulting dataframes.
If there are no specifications found for a particular model parameter, it is
not included in the list and when it is passed to
make.mark.model, the default specification will be used for
that parameter.
dataframe of all combinations of parameter specifications for a model. Each field (column) is the name of a type of parameter (e.g., p and Phi for CJS). The values are character strings identifying particular parameter specifications.
Jeff Laake
mark.wrapper
# This example is excluded from testing to reduce package check time
#
# Compare this to the run.dipper shown under ?dipper
# It is only necessary to create each parameter specification and
# create.model.list and mark.wrapper will create and run models for
# each combination. Notice that the naming of the parameter
# specifications has been changed to accommodate format for
# create.model.list. Only a subset of the parameter specifications
# are used here in comparison to other run.dipper
#
data(dipper)
run.dipper=function()
{
#
# Process data
#
dipper.processed=process.data(dipper,groups=("sex"))
#
# Create default design data
#
dipper.ddl=make.design.data(dipper.processed)
#
# Add Flood covariates for Phi and p that have different values
#
dipper.ddl$Phi$Flood=0
dipper.ddl$Phi$Flood[dipper.ddl$Phi$time==2 |
dipper.ddl$Phi$time==3]=1
dipper.ddl$p$Flood=0
dipper.ddl$p$Flood[dipper.ddl$p$time==3]=1
#
# Define range of models for Phi
#
Phi.dot=list(formula=~1)
Phi.time=list(formula=~time)
Phi.sex=list(formula=~sex)
Phi.Flood=list(formula=~Flood)
#
# Define range of models for p
#
p.dot=list(formula=~1)
p.time=list(formula=~time)
p.Flood=list(formula=~Flood)
#
# Run all pairings of models
#
dipper.model.list=create.model.list("CJS")
dipper.results=mark.wrapper(dipper.model.list,
data=dipper.processed,ddl=dipper.ddl,delete=TRUE)
#
# Return model table and list of models
#
return(dipper.results)
}
dipper.results=run.dipper()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.