asc_null() has been rewritten. The triad of null models
of 0.1.x (A0: Curveball, B0: SAD reshuffle, C0: trait shuffle; they were
called A, B and C in 0.1.x) is replaced by two null models, chosen after
a simulation study of their error rates and power:
stratum_size
species, default 5). Asks whether the change depends on which traits the
species have. Reported with both tails for position: the lower tail
flags compensation.asc_null(): null_models has
columns Contrast, Test, Layer,
Observed, Null_mean, Null_sd,
SES, P_upper, P_lower and
P_two (p-values are no longer rounded; they are
(b + 1) / (n + 1)). summary() reads each test
in words.asc_pairwise() objects, asc_null() now
runs one global test per layer over all communities
(instead of one p-value per pair): mean distance of the centroids to the
common centroid, and standard deviation of FDis and FRic among
communities. It also returns site_contribution.asc_transitions(): the default reference point is now
the midpoint between the two centroids (ref = "midpoint"),
which makes the result independent of which state is called the
reference. Use ref = "reference" for the 0.1.x values.
Species absent from both states are no longer listed.asc_null(entities = ): null model A on abundances
summed by functional entity, to tell replacement among similar species
from change in the functional groups themselves.asc_transitions() returns the partition of the shift
among shared, gained and lost species (with its range across reference
points) and, with entities, the exact split of the shift
between and within entities.asc_entities() chooses k by the mean
silhouette width when neither k nor h is
given, and reports the suggestions of the silhouette, Mojena’s rule and
the gap statistic.correction = "sqrt" (Gower 1971) in all functions that
build the functional space: makes the Gower distance Euclidean (quality
= 1). Use it when assess_functional_space() reports quality
below 0.8.type and weights are passed to
cluster::daisy() for ordinal, asymmetric binary or weighted
traits.seed in asc_null() and
asc_entities() no longer changes the user’s random number
stream.DESCRIPTION to ‘ASC-CFD’
(Assemblage Shift Characterization - Community Functional
Dynamics).\value tag in
plot.ascfcd_entities.Rd.asc_null()
to strictly comply with CRAN policies regarding .GlobalEnv
and .Random.seed manipulation.asc_paired(): Temporal/paired functional restructuring
(Layer 1-3).asc_pairwise(): Bidirectional spatial functional
divergence across all community pairs.asc_baseline(): Absolute functional topology (CWM,
FDis, FRic) for isolated communities.asc_null(): Hierarchical triad of null models A0, B0
and C0 (Structural/Curveball, Quantitative/SAD, Identity/Trait
Shuffle).asc_transitions(): Species-level Functional Leverage
decomposition.asc_entities(): Species clustering into discrete
functional entities.assess_functional_space(): Diagnostic tool for
evaluating PCoA quality before analysis..build_functional_space(),
.calc_core_topology()) shared across all modules.print(), summary(),
and plot() methods for all output types.(Labelled A, B and C in 0.1.x; written A0, B0 and C0 since 0.5.0, where A and B name the new null models.) * Model A0 (Structural): Curveball algorithm preserving richness and prevalence. * Model B0 (Quantitative): SAD reshuffle with fixed incidence. FRic reported as NA (hull invariant). * Model C0 (Identity): Trait shuffle breaking species-trait association.
testthat unit tests covering class structure, edge
cases, orthogonal scenarios, null model isolation, and leverage
additivity.