cellIndices() is now an internal helper and is no
longer exported.-Wabsolute-value warning in the spherical
distance kernel by using std::fabs for floating-point
absolute values.traceplots() as an S3 generic so the method is
listed as traceplots(<AddiVortes>) with the other S3
methods. The generic is documented as an internal topic and does not
appear in the package index.AddiVortes() help page that caused LaTeX errors when CRAN
built the PDF manual.AddiVortes() chooses regression or classification from the
response: factor, character and logical vectors are classification (two
levels: binary probit; three or more: multinomial probit), numeric 0/1
responses are binary classification, and any other numeric response
remains Gaussian regression.predict() gains type = "class" and
type = "link". For classification,
type = "response" returns class probabilities and
type = "quantile" returns credible intervals on those
probabilities. Prediction intervals are not used for classification
models.cat.onehot = FALSE), give guidance on choosing
one-hot versus Eskin, and compare the two approaches on a synthetic
example. Andy Iskauskas added as a vignette author. The
cat.onehot help text and fit-time covariate summary now
mention Eskin distance as well.cat.onehot = FALSE
under the default Euclidean metric: auto-detected
categorical columns no longer keep a shared Euclidean membership id, so
Eskin distance and categorical centre proposals receive the correct
per-column level counts.addivortes engine while preserving the sampled chain
bit-for-bit on the fixed-seed Friedman and existing golden tests:
predict();which_elem allocations).traceplots documentation
topics by documenting trace plot creation only as the
traceplots.AddiVortes class method, matching the other
AddiVortes S3 methods. The S3 generic remains for dispatch so
traceplots(fit) continues to work.predict() now evaluates the full posterior ensemble in
a single C++ call rather than looping in R over each retained draw and
tessellation. The previous path crossed the R/C++ boundary once per
tessellation (typically hundreds of thousands of times per
predict()), which dominated runtime; the compiled traversal
removes that overhead with no change to the prediction algorithm.parallel and cores arguments
from predict(), along with the parallel and
pbapply package dependencies that only served the old
R-side prediction loop.showProgress = TRUE, instead of
sparse multi-line status prints.propose_internal() when
proposing a Swap Dimension move on spherical covariates. The
period-shift check indexed the tessellation’s active-dimension vector by
the newly drawn covariate index rather than testing that covariate
against members, reading past the end of the vector
whenever the tessellation used fewer dimensions than covariates. This
caused AddressSanitizer aborts when rebuilding the spherical vignette
under CRAN’s SAN checks.log_acceptance_components() that triggered a significant
compiler warning (-Wunused-variable) and caused CRAN’s
“checking whether package can be installed” WARNING.log_acceptance_components():
1/(b+1) penalty
that cancelled against set multiplicity and thinned the cell-count
prior;x2 partners had been missing).LambdaRate = 25
matches the stated Poisson prior (~26 cells per tessellation).
Previously the thinned ratio produced about 5 cells at that
default.AddiVortes can now calculate distances between
categorical covariates without needing to apply one-hot encoding, by
specifying cat.onehot = FALSE in the main
AddiVortes() function. The distance calculated when one-hot
encoding is not used is Eskin distance (Eskin et al., 2002); other
measures may be added to the framework in the future.
A bug in the C code, where indices were not referenced correctly
in distance calculations, has been fixed in
add_vortes_mcmc_cpp(): distance calculations across
multiple different covariate types and dimensions now agrees with the
expected values.
Due to the development of the package, the
propose_tessellation_cpp() helper function is no longer
used; to avoid code duplication, it has been removed from this
version.
cellIndices() now always maps tessellation
centre columns to their global covariate positions (previously the
remapping was skipped when a tessellation used every covariate, silently
mismatching coordinates whenever the active dimensions were in a
permuted order). predict() now derives its spherical column
mask from the reordered/augmented metric so spherical coordinates are
left on their original radian scale even when
covariateStructure_internal() reorders covariates.
Predictions on the training data now reproduce the in-sample fitted
values, including for spherical and mixed-metric models.traceplots() so
it now shows the retained-state log-likelihood component at the end of
each MCMC iteration, rather than the average proposal
log-likelihood-ratio component evaluated during the sweep.traceplots() now includes the burn-in period in its
MCMC traces and colours burn-in sections black.traceplots() with the log-likelihood component used in
tessellation acceptance ratios.traceplots() for AddiVortes objects,
showing trace plots for average tessellation centres, the standard
deviation of tessellation centres, average active dimensions, and the
error standard deviation.AddiVortes now takes a
members argument as well as the metric
argument to identify different covariate subspaces.covariateStructure and associated changes
in C++ code.addi_vortes_mcmc_cpp). The complete MCMC loop — sigma
sampling, tessellation proposals, cell-index assignment, residual
aggregation, acceptance-probability evaluation, and mu sampling — now
runs entirely in C++, eliminating the per-iteration R↔︎C++ overhead that
was present in previous versions.AddiVortes class and all associated S3 methods are
unchanged.metric = "S", the coordinate convention
(latitude/longitude in radians), and a comparison with the Euclidean
metric on synthetic globe data.catScaling parameter, the
catEncoding metadata field, and handling of unseen category
levels at prediction time.catScaling parameter.predict.AddiVortes() now accepts
data.frame inputs when the model was trained with
categorical covariates, applying the stored encoding automatically.catEncoding field of
the fitted model object.AddiVortesFit to AddiVortes
to maintain consistency with the package name.new_AddiVortesFit to
new_AddiVortes.<cstring> header for
memcpy() function in C++ codeTestSuite.R, CodeProfiler.R, and
TestHelper.R from tests directory.TestSuite.R into
testthat framework.testthat.R remains in tests folder alongside the
testthat directory per CRAN requirements.predict.AddiVortesFit() function with new
interval parameter.posteriorSigma was not stored in model
objects.lm predict function.AddiVortes() function