## ----prelim, echo = FALSE, results = "hide"----------------------------------- library("knitr") opts_chunk$set(fig.lp = "fig:", size = "small", out.width = ".7\\linewidth", fig.align = "center", fig.show = "hold") ## ----load-library------------------------------------------------------------- library("coenocliner") ## ----show-matrix-grad-locs---------------------------------------------------- xy <- cbind(x = seq(from = 4, to = 7, length.out = 100), y = seq(from = 1, to = 100, length.out = 100)) ## ----show-list-grad-locs------------------------------------------------------ xy <- list(x = seq(from = 4, to = 6, length.out = 100), y = seq(from = 1, to = 100, length.out = 100)) ## ----show-gaussian-params----------------------------------------------------- showParams("gaussian") ## ----param-example------------------------------------------------------------ opt <- c(4,5,6) tol <- rep(0.25, 3) h <- c(10,20,30) parm <- cbind(opt = opt, tol = tol, h = h) # matrix form parl <- list(opt = opt, tol = tol, h = h) # list form ## ----param-example-2---------------------------------------------------------- opty <- c(25, 50, 75) tol <- c(5, 10, 20) pars <- list(px = parm, py = cbind(opt = opty, tol = tol)) ## ----count-models, echo = FALSE----------------------------------------------- c("poisson", "negbin", "bernoulli", "binary", "binomial", "betabinomial", "ZIP", "ZINB", "ZIB", "ZIBB") ## ----example1-params---------------------------------------------------------- set.seed(2) M <- 20 # number of species ming <- 3.5 # gradient minimum... maxg <- 7 # ...and maximum locs <- seq(ming, maxg, length = 100) # gradient locations opt <- runif(M, min = ming, max = maxg) # species optima tol <- rep(0.25, M) # species tolerances h <- ceiling(rlnorm(M, meanlog = 3)) # max abundances pars <- cbind(opt = opt, tol = tol, h = h) # put in a matrix ## ----example1-expectations---------------------------------------------------- mu <- coenocline(locs, responseModel = "gaussian", params = pars, expectation = TRUE) ## ----example1-head-expectations----------------------------------------------- class(mu) dim(mu) mu ## ----example1-plot-expectations, fig.cap = "Gaussian species response curves along a hypothetical pH gradient", fig.height = 5---- plot(mu, lty = "solid", type = "l", xlab = "pH", ylab = "Abundance") ## ----example1-sim------------------------------------------------------------- simp <- coenocline(locs, responseModel = "gaussian", params = pars, countModel = "poisson") ## ----example1-plot-simulations, fig.cap = "Simulated species abundances with Poisson errors from Gaussian response curves along a hypothetical pH gradient", fig.height = 5---- plot(simp, lty = "solid", type = "p", pch = 1:10, cex = 0.8, xlab = "pH", ylab = "Abundance") ## ----example1-nb-sim---------------------------------------------------------- simnb <- coenocline(locs, responseModel = "gaussian", params = pars, countModel = "negbin", countParams = list(alpha = 0.5)) ## ----example1-plot-nb-simulations, fig.cap = "Simulated species abundance with negative binomial errors from Gaussian response curves along a hypothetical pH gradient", fig.height = 5---- plot(simnb, lty = "solid", type = "p", pch = 1:10, cex = 0.8, xlab = "pH", ylab = "Abundance") ## ----example2-beta-pars------------------------------------------------------- A0 <- c(5,4,7,5,9,8) * 10 # max abundance m <- c(25,85,10,60,45,60) # location on gradient of modal abundance r <- c(3,3,4,4,6,5) * 10 # species range of occurence on gradient alpha <- c(0.1,1,2,4,1.5,1) # shape parameter gamma <- c(0.1,1,2,4,0.5,4) # shape parameter locs <- 1:100 # gradient locations pars <- list(m = m, r = r, alpha = alpha, gamma = gamma, A0 = A0) # species parameters, in list form ## ----example2-beta-expectations----------------------------------------------- mu <- coenocline(locs, responseModel = "beta", params = pars, expectation = TRUE) ## ----example2-head------------------------------------------------------------ mu ## ----example2-beta-plot-expectations, fig.cap = "Generalised beta function species response curves along a hypothetical environmental gradient recreating Figure 2 in Minchin (1987).", fig.height = 5---- plot(mu, lty = "solid", type = "l", xlab = "Gradient", ylab = "Abundance") ## ----example3-params---------------------------------------------------------- set.seed(10) N <- 30 # number of samples M <- 20 # number of species ## First gradient ming1 <- 3.5 # 1st gradient minimum... maxg1 <- 7 # ...and maximum loc1 <- seq(ming1, maxg1, length = N) # 1st gradient locations opt1 <- runif(M, min = ming1, max = maxg1) # species optima tol1 <- rep(0.5, M) # species tolerances h <- ceiling(rlnorm(M, meanlog = 3)) # max abundances par1 <- cbind(opt = opt1, tol = tol1, h = h) # put in a matrix ## Second gradient ming2 <- 1 # 2nd gradient minimum... maxg2 <- 100 # ...and maximum loc2 <- seq(ming2, maxg2, length = N) # 2nd gradient locations opt2 <- runif(M, min = ming2, max = maxg2) # species optima tol2 <- ceiling(runif(M, min = 5, max = 50)) # species tolerances par2 <- cbind(opt = opt2, tol = tol2) # put in a matrix ## Last steps... pars <- list(px = par1, py = par2) # put parameters into a list locs <- expand.grid(x = loc1, y = loc2) # put gradient locations together ## ----example3-expectations---------------------------------------------------- mu2d <- coenocline(locs, responseModel = "gaussian", params = pars, extraParams = list(corr = 0.5), expectation = TRUE) ## ----example3-head-locs------------------------------------------------------- head(locs) ## ----example3-persp-plots, fig.cap = "Bivariate Gaussian species responses for four selected species."---- layout(matrix(1:4, ncol = 2)) op <- par(mar = rep(1, 4)) persp(mu2d, species = c(2, 8, 13, 19), ticktype = "detailed", zlab = "Abundance") par(op) layout(1) ## ----example3-nb-sim---------------------------------------------------------- sim2d <- coenocline(locs, responseModel = "gaussian", params = pars, extraParams = list(corr = 0.5), countModel = "negbin", countParams = list(alpha = 1)) ## ----example3-persp-plots2, fig.cap = "Simulated counts using negative binomial errors from bivariate Gaussian species responses for four selected species."---- layout(matrix(1:4, ncol = 2)) op <- par(mar = rep(1, 4)) persp(sim2d, species = c(2, 8, 13, 19), ticktype = "detailed", zlab = "Abundance") par(op) layout(1) ## ----sessionInfo, results = "asis", echo = FALSE------------------------------ toLatex(sessionInfo())