| trainNs | R Documentation |
This function constructs a natural-spline model piece-by-piece by first calculating AICc for all models with univariate and bivariate (interaction) terms. It then creates a "full" model with the highest-ranked uni/bivariate terms then implements an all-subsets model selection routine.
trainNs( data, resp = names(data)[1], preds = names(data)[2:ncol(data)], family = "binomial", df = 1:4, construct = TRUE, select = TRUE, presPerTermInitial = 10, presPerTermFinal = 10, initialTerms = 8, w = TRUE, out = "model", verbose = FALSE, ... )
data |
Data frame. Must contain fields with same names as in |
resp |
Character or integer. Name or column index of response variable. Default is to use the first column in |
preds |
Character list or integer list. Names of columns or column indices of predictors. Default is to use the second and subsequent columns in |
family |
Name of family for data error structure (see |
df |
Integer > 0 or vector of integers > 0. Sets flexibility of model fit. See documentation for |
construct |
Logical. If TRUE then construct model by computing AICc for all univariate and bivariate models. Then add terms up to maximum set by |
select |
Logical. If TRUE then calculate AICc for all possible subsets of models and return the model with the lowest AICc of these. This step if performed after model construction (if any). |
presPerTermInitial |
Positive integer. Minimum number of presences needed per model term for a term to be included in the model construction stage. Used only is |
presPerTermFinal |
Positive integer. Minimum number of presence sites per term in initial starting model; used only if |
initialTerms |
Positive integer. Maximum number of terms to be used in an initial model. Used only if |
w |
Either logical in which case |
out |
Character or character vector. Indicates type of value returned. Values can be |
verbose |
Logical. If |
... |
Arguments to send to |
If out = 'model' this function returns an object of class gam. If out = 'tuning' this function returns a data frame with tuning parameters and AICc for each model tried. If out = c('model', 'tuning' then it returns a list object with the gam object and the data frame.
ns, gam, trainGam
## Not run:
library(brglm2)
### model red-bellied lemurs
data(mad0)
data(lemurs)
# climate data
bios <- c(1, 5, 12, 15)
clim <- raster::getData('worldclim', var='bio', res=10)
clim <- raster::subset(clim, bios)
clim <- raster::crop(clim, mad0)
# occurrence data
occs <- lemurs[lemurs$species == 'Eulemur rubriventer', ]
occsEnv <- raster::extract(clim, occs[ , c('longitude', 'latitude')])
# background sites
bg <- 2000 # too few cells to locate 10000 background points
bgSites <- dismo::randomPoints(clim, 2000)
bgEnv <- raster::extract(clim, bgSites)
# collate
presBg <- rep(c(1, 0), c(nrow(occs), nrow(bgSites)))
env <- rbind(occsEnv, bgEnv)
env <- cbind(presBg, env)
env <- as.data.frame(env)
preds <- paste0('bio', bios)
# GLM
gl <- trainGlm(
data = env,
resp = 'presBg',
preds = preds,
verbose = TRUE
)
# GAM
ga <- trainGam(
data = env,
resp = 'presBg',
preds = preds,
verbose = TRUE
)
# NS
ns <- trainNs(
data = env,
resp = 'presBg',
preds = preds,
verbose = TRUE
)
# prediction rasters
mapGlm <- predict(clim, gl, type='response')
mapGam <- predict(clim, ga, type='response')
mapNs <- predict(clim, ga, type='response')
par(mfrow=c(1, 3))
plot(mapGlm, main='GLM')
plot(mad0, add=TRUE)
points(occs[ , c('longitude', 'latitude')])
plot(mapGam, main='GAM')
plot(mad0, add=TRUE)
points(occs[ , c('longitude', 'latitude')])
plot(mapNs, main='NS')
plot(mad0, add=TRUE)
points(occs[ , c('longitude', 'latitude')])
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.