Computes the joint probability of CWM traits in regions in the community-trait space specified by bounds and in sites specified in Xnew.
joint_trait_prob(
m,
indexTrait,
bounds,
Xnew = NULL,
FullPost = FALSE,
samples = NULL,
parallel = FALSE
)
a model fitted with jtdm_fit
A vector of the names (as specified in the column names of Y) of the two (or more!) traits we want to compute the joint probabilities of.
The parameter to specify a region in the community-trait space where the function computes the joint probabilities of traits. It is a list of the length of "indexTrait", each element of the list is a vector of length two. The vector represents the inferior and superior bounds of the region for the specified trait. For example, if we consider two traits, bounds=list(c(10,Inf),c(10,Inf)) corresponds to the region in the community-trait space where both traits both take values greater than 10.
Optionally, a data frame in which to look for variables with which to predict. If omitted, the fitted linear predictors are used.
If FullPost = TRUE, the function returns samples from the predictive distribution of joint probabilities, thus allowing the computation of credible intervals. If FullPost= FALSE, joint probabilities are computed only using the posterior mean of the parameters. FullPost cannot be equal to "mean" here.
Optional, default to NULL, only works when FullPost=FALSE. Defines the number of posterior samples to compute the posterior distribution of joint probabilities. Needs to be between 1 the total number of samples drawn from the posterior distribution.
Optional, only works when FullPost = TRUE
. When parallel = TRUE
, the function uses mclapply to parallelise the calculation of the posterior distribution joint probabilities.
A list containing:
Samples from the posterior distribution of the joint probability.NULL if FullPost=FALSE.
Posterior mean of the joint probability.
97.5% and 0.25% posterior quantiles of the joint probability. NULL if FullPost=FALSE.
This function is time consuming when FullPost = TRUE
. Consider setting parallel = TRUE
and/or to set samples
to a value smaller than the total number of posterior samples .
data(Y)
data(X)
#We sample only few samples from the posterior in order to reduce
# the computational time of the examples.
#Increase the number of samples to obtain robust results
m = jtdm_fit(Y = Y, X = X, formula = as.formula("~GDD+FDD+forest"), sample = 10)
# Compute probability of SLA and LNC to be joint-high at sites in the studies
joint = joint_trait_prob(m, indexTrait = c("SLA","LNC"),
bounds = list(c(mean(Y[,"SLA"]),Inf), c(mean(Y[,"SLA"]),Inf)),
FullPost = TRUE)