stackedsdm {ecoCopula} | R Documentation |
Stacked species regression models, possibly fitted in parallel
Description
Stacked species regression models, possibly fitted in parallel
Usage
stackedsdm(
y,
formula_X = ~1,
data = NULL,
family = "negative.binomial",
trial_size = 1,
do_parallel = FALSE,
ncores = NULL,
trace = FALSE
)
Arguments
y |
A matrix of species responses |
formula_X |
An object of class |
data |
Data frame of the covariates |
family |
Either a single character vector, in which case all responses are assumed to be from this family, or a vector of character strings of the same length as the number of columns of y. Families as strings and not actual |
trial_size |
The trial size if any of the responses are binomial. Is either a single number or a matrix with the same dimension as y. If the latter, then all columns that do not correspond to binomial responses are ignored. |
do_parallel |
Do the separate species model fits in parallel? Defaults to |
ncores |
The number of cores to use if separate the species model fits are done in parallel. If |
trace |
Print information. This is not actually used currently |
Value
A object of class stackedsdm
with the following components:
call
The function call;
fits
A list where the j-th element corresponds to the to the fitted model for species j i.e., the j-th column in y
;
linear_predictor
A matrix of the fitted linear predictors
fitted
A matrix of the fitted values
Details
stackedsdm
behaves somewhat like the manyglm
or manyany
function in the package mvabund
, in the sense that it fits a separate regression to each species response i.e., column of y
. The main difference is that different families can be permitted for each species, which thus allows for mixed responses types.
Author(s)
Francis K.C. Hui <francis.hui@anu.edu.au>.
Examples
data(spider)
X <- spider$x
abund <- spider$abund
# Example 1: Simple example
myfamily <- "negative.binomial"
# Example 1: Funkier example where Species are assumed to have different distributions
# Fit models including all covariates are linear terms, but exclude for bare sand
fit0 <- stackedsdm(abund, formula_X = ~. -bare.sand, data = X, family = myfamily, ncores = 2)
# Example 2: Funkier example where Species are assumed to have different distributions
abund[,1:3] <- (abund[,1:3]>0)*1 # First three columns for presence absence
myfamily <- c(rep(c("binomial"), 3),
rep(c("negative.binomial"), (ncol(abund)-3)))
fit0 <- stackedsdm(abund, formula_X = ~ bare.sand, data = X, family = myfamily, ncores = 2)