intModel {PointedSDMs}R Documentation

intModel: Function used to initialize the integrated species distribution model.

Description

This function is used to create an object containing all the data, metadata and relevant components required for the integrated species distribution model and INLA to work. As a result, the arguments associated with this function are predominantly related to describing variable names within the datasets that are relevant, and arguments related to what terms should be included in the formula for the integrated model. The output of this function is an R6 object, and so there are a variety of public methods within the output of this function which can be used to further specify the model (see ?dataSDM for a comprehensive description of these public methods).

Usage

intModel(
  ...,
  spatialCovariates = NULL,
  Coordinates,
  Projection,
  Mesh,
  IPS = NULL,
  Boundary = NULL,
  speciesSpatial = "copy",
  speciesIndependent = FALSE,
  markNames = NULL,
  markFamily = NULL,
  pointCovariates = NULL,
  pointsIntercept = TRUE,
  marksIntercept = TRUE,
  speciesEffects = list(randomIntercept = FALSE, Environmental = TRUE),
  Offset = NULL,
  pointsSpatial = "shared",
  marksSpatial = TRUE,
  responseCounts = "counts",
  responsePA = "present",
  trialsPA = NULL,
  trialsMarks = NULL,
  speciesName = NULL,
  temporalName = NULL,
  temporalModel = list(model = "ar1"),
  copyModel = list(beta = list(fixed = FALSE))
)

Arguments

...

The datasets to be used in the model. May come as either sf, data.frame or SpatialPoints* objects, or as a list of objects with these classes. The classes of the datasets do not necessarily need to be standardized, however the variable names within them often have to be.

spatialCovariates

The spatial covariates used in the model. These covariates must be measured at every location (pixel) in the study area, and must be a Raster*, SpatialPixelsDataFrame or SpatialRaster object. Can be either numeric, factor or character data.

Coordinates

A vector of length 2 containing the names (class character) of the coordinate variables used in the model.

Projection

The coordinate reference system used by both the spatial points and spatial covariates. Must be of class character.

Mesh

An inla.mesh object required for the spatial random fields and the integration points in the model (see inla.mesh.2d from the INLA package for more details).

IPS

The integration points to be used in the model (that is, the points on the map where the intensity of the model is calculated). See ipoints from the inlabru package for more details regarding these points; however defaults to NULL which will create integration points from the Mesh object.

Boundary

A sf object of the study area. If not missing, this object is used to help create the integration points.

speciesSpatial

Argument to specify if each species should have their own spatial effect with different hyperparameters to be estimated, of if a the field's should be estimated using INLA's "copy" feature. Possible values include: 'individual', 'copy', 'shared' or NULL if no species-specific spatial effects should be estimated.

speciesIndependent

Logical argument: Should species effects be made independent of one another. Defaults to FALSE which creates effects for each species independently.

markNames

A vector with the mark names (class character) to be included in the integrated model. Marks are variables which are used to describe the individual points in the model (for example, in the field of ecology the size of the species or its feeding type could be considered). Defaults to NULL, however if this argument is non-NULL, the model run will become a marked point process. The marks must be included in the same data object as the points.

markFamily

A vector with the statistical families (class character) assumed for the marks. Must be the same length as markNames, and the position of the mark in the vector markName is associated with the position of the family in markFamily. Defaults to NULL which assigns each mark as "Gaussian".

pointCovariates

The non-spatial covariates to be included in the integrated model (for example, in the field of ecology the distance to the nearest road or time spent sampling could be considered). These covariates must be included in the same data object as the points.

pointsIntercept

Logical argument: should the points be modeled with intercepts. Defaults to TRUE.

marksIntercept

Logical argument: should the marks be modeled with intercepts. Defaults to TRUE.

speciesEffects

List specifying if intercept terms and environments effects should be made for the species. Defaults to list(randomIntercept = FALSE, Environmental = TRUE). randomIntercept may take on three values: TRUE which creates a random intercept for each species, FALSE which creates fixed intercepts for each species, of NULL which removes all species level intercepts. Note that if randomIntercept = NULL and pointsIntercept = TRUE, dataset specific intercept terms will be created.

Offset

Name of the offset variable (class character) in the datasets. Defaults to NULL; if the argument is non-NULL, the variable name needs to be standardized across datasets (but does not need to be included in all datasets). The offset variable will be transformed onto the log-scale in the integrated model.

pointsSpatial

Argument to determine whether the spatial field is shared between the datasets, or if each dataset has its own unique spatial field. The datasets may share a spatial field with INLA's "copy" feature if the argument is set to copy. May take on the values: "shared", "individual", "copy" or NULL if no spatial field is required for the model. Defaults to "shared".

marksSpatial

Logical argument: should the marks have their own spatial field. Defaults to TRUE.

responseCounts

Name of the response variable in the counts/abundance datasets. This variable name needs to be standardized across all counts datasets used in the integrated model. Defaults to 'counts'.

responsePA

Name of the response variable (class character) in the presence absence/detection non-detection datasets. This variable name needs to be standardized across all present absence datasets. Defaults to 'present'.

trialsPA

Name of the trials response variable (class character) for the presence absence datasets. Defaults to NULL.

trialsMarks

Name of the trials response variable (class character) for the binomial marks (if included). Defaults to NULL.

speciesName

Name of the species variable name (class character). Specifying this argument turns the model into a stacked species distribution model, and calculates covariate values for the individual species, as well as a species group model in the shared spatial field. Defaults to NULL

temporalName

Name of the temporal variable (class character) in the model. This variable is required to be in all the datasets. Defaults to NULL.

temporalModel

List of model specifications given to the control.group argument in the time effect component. Defaults to list(model = 'ar1'); see control.group from the INLA package for more details.

copyModel

List of model specifications given to the hyper parameters for the "copy" model. Defaults to list(beta = list(fixed = FALSE)).

Value

A dataSDM object (class R6). Use ?dataSDM to get a comprehensive description of the slot functions associated with this object.

Note

The idea with this function is to describe the full model: that is, all the covariates and spatial effects will appear in all the formulas for the datasets and species. If some of these terms should not be included in certain observation models in the integrated model, they can be thinned out using the .$updateFormula function. Note: the point covariate and mark terms will only be included in the formulas for where they are present in a given dataset, and so these terms do not need to be thinned out if they are not required by certain observation models.

Examples


 if (requireNamespace('INLA')) {
   
 #Get Data
 data("SolitaryTinamou")
 proj <- "+proj=longlat +ellps=WGS84"
 data <- SolitaryTinamou$datasets
 mesh <- SolitaryTinamou$mesh
 mesh$crs <- proj
 
 #Set base model up
 baseModel <- intModel(data, Mesh = mesh, Coordinates = c('X', 'Y'),
                             Projection = proj, responsePA = 'Present')
 
 #Print summary
 baseModel
 
 #Set up model with dataset specific spatial fields
 
 indSpat <- intModel(data, Mesh = mesh, Coordinates = c('X', 'Y'),
                     Projection = proj, pointsSpatial = 'individual', responsePA = 'Present')
                     
 #Model with offset variable
 offSet <- intModel(data, Mesh = mesh, Coordinates = c('X', 'Y'),
                     Projection = proj, Offset = 'area', responsePA = 'Present')
                     
 #Assume area as a mark
 markModel <- intModel(data, Mesh = mesh, Coordinates = c('X', 'Y'),
                     Projection = proj, markNames = 'area', markFamily = 'gamma',
                     responsePA = 'Present')
                      
 }


[Package PointedSDMs version 1.3.2 Index]