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