| jSDM-package | R Documentation |
jSDM is an R package for fitting joint species distribution models (JSDM) in a hierarchical Bayesian framework.
The Gibbs sampler is written in 'C++'. It uses 'Rcpp', 'Armadillo' and 'GSL' to maximize computation efficiency.
| Package: | jSDM |
| Type: | Package |
| Version: | 0.2.1 |
| Date: | 2019-01-11 |
| License: | GPL-3 |
| LazyLoad: | yes |
The package includes the following functions to fit various species distribution models :
| function | data-type |
jSDM_binomial_logit | presence-absence |
jSDM_binomial_probit | presence-absence |
jSDM_binomial_probit_sp_constrained | presence-absence |
jSDM_binomial_probit_long_format | presence-absence |
jSDM_poisson_log | abundance |
jSDM_binomial_probit :
Ecological process:
y_{ij} \sim \mathcal{B}ernoulli(\theta_{ij})
where
if n_latent=0 and site_effect="none" | probit(\theta_{ij}) = X_i \beta_j |
if n_latent>0 and site_effect="none" | probit(\theta_{ij}) = X_i \beta_j + W_i \lambda_j |
if n_latent=0 and site_effect="fixed" | probit(\theta_{ij}) = X_i \beta_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
if n_latent>0 and site_effect="fixed" | probit(\theta_{ij}) = X_i \beta_j + W_i \lambda_j + \alpha_i |
if n_latent=0 and site_effect="random" | probit(\theta_{ij}) = X_i \beta_j + \alpha_i |
if n_latent>0 and site_effect="random" | probit(\theta_{ij}) = X_i \beta_j + W_i \lambda_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
jSDM_binomial_probit_sp_constrained :
This function allows to fit the same models than the function jSDM_binomial_probit except for models not including latent variables, indeed n_latent must be greater than zero in this function.
At first, the function fit a JSDM with the constrained species arbitrarily chosen as the first ones in the presence-absence data-set.
Then, the function evaluates the convergence of MCMC \lambda chains using the Gelman-Rubin convergence diagnostic (\hat{R}).
It identifies the species (\hat{j}_l) having the higher \hat{R} for \lambda_{\hat{j}_l}.
These species drive the structure of the latent axis l.
The \lambda corresponding to this species are constrained to be positive and placed on the diagonal of the \Lambda matrix for fitting a second model.
This usually improves the convergence of the latent variables and factor loadings. The function returns the parameter posterior distributions for this second model.
jSDM_binomial_logit :
Ecological process :
y_{ij} \sim \mathcal{B}inomial(\theta_{ij},t_i)
where
if n_latent=0 and site_effect="none" | logit(\theta_{ij}) = X_i \beta_j |
if n_latent>0 and site_effect="none" | logit(\theta_{ij}) = X_i \beta_j + W_i \lambda_j |
if n_latent=0 and site_effect="fixed" | logit(\theta_{ij}) = X_i \beta_j + \alpha_i |
if n_latent>0 and site_effect="fixed" | logit(\theta_{ij}) = X_i \beta_j + W_i \lambda_j + \alpha_i |
if n_latent=0 and site_effect="random" | logit(\theta_{ij}) = X_i \beta_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
if n_latent>0 and site_effect="random" | logit(\theta_{ij}) = X_i \beta_j + W_i \lambda_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
jSDM_poisson_log :
Ecological process :
y_{ij} \sim \mathcal{P}oisson(\theta_{ij})
where
if n_latent=0 and site_effect="none" | log(\theta_{ij}) = X_i \beta_j |
if n_latent>0 and site_effect="none" | log(\theta_{ij}) = X_i \beta_j + W_i \lambda_j |
if n_latent=0 and site_effect="fixed" | log(\theta_{ij}) = X_i \beta_j + \alpha_i |
if n_latent>0 and site_effect="fixed" | log(\theta_{ij}) = X_i \beta_j + W_i \lambda_j + \alpha_i |
if n_latent=0 and site_effect="random" | log(\theta_{ij}) = X_i \beta_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
if n_latent>0 and site_effect="random" | log(\theta_{ij}) = X_i \beta_j + W_i \lambda_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
jSDM_binomial_probit_long_format :
Ecological process:
y_n \sim \mathcal{B}ernoulli(\theta_n)
such as species_n=j and site_n=i,
where
if n_latent=0 and site_effect="none" | probit(\theta_n) = D_n \gamma + X_n \beta_j |
if n_latent>0 and site_effect="none" | probit(\theta_n) = D_n \gamma + X_n \beta_j + W_i \lambda_j |
if n_latent=0 and site_effect="fixed" | probit(\theta_n) = D_n \gamma + X_n \beta_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
if n_latent>0 and site_effect="fixed" | probit(\theta_n) = D_n \gamma + X_n \beta_j + W_i \lambda_j + \alpha_i |
if n_latent=0 and site_effect="random" | probit(\theta_n) = D_n \gamma + X_n \beta_j + \alpha_i |
if n_latent>0 and site_effect="random" | probit(\theta_n) = D_n \gamma + X_n \beta_j + W_i \lambda_j + \alpha_i and \alpha_i \sim \mathcal{N}(0,V_\alpha) |
Ghislain Vieilledent <ghislain.vieilledent@cirad.fr>
Jeanne Clément <jeanne.clement16@laposte.net>
Frédéric Gosselin <frederic.gosselin@inrae.fr>
Chib, S. and Greenberg, E. (1998) Analysis of multivariate probit models. Biometrika, 85, 347-361.
Warton, D. I.; Blanchet, F. G.; O'Hara, R. B.; O'Hara, R. B.; Ovaskainen, O.; Taskinen, S.; Walker, S. C. and Hui, F. K. C. (2015) So Many Variables: Joint Modeling in Community Ecology. Trends in Ecology & Evolution, 30, 766-779.
Ovaskainen, O., Tikhonov, G., Norberg, A., Blanchet, F. G., Duan, L., Dunson, D., Roslin, T. and Abrego, N. (2017) How to make more out of community data? A conceptual framework and its implementation as models and software. Ecology Letters, 20, 561-576.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.