mutualinfoF() for variates
with finite domains.exputility() for the
calculation of expected utilities and their revisability, together with
plot() and print() methods.Y =,
X =, K =.learnt =, common to many functions, has
been changed to K = for brevity. Previous “learnt” objects
can still be used with the K = argument.flexiplot() and
plotquantiles() are replaced by the single function
pplot(); argument type = 'qx' reproduces the
usage of plotquantiles().hist() methods.mutualinfo() now outputs also quantile
accuracy.print() now prints correctly “probability” objects
generated by qPr().meta_penguins for the R dataset
datasets::penguins is now included in the package.class of mutual information objects to
“mi”.TRUE value of argument
parallel =: now it queries the value of the user’s option
“cl.cores”, via getOption(), or uses 2 if that value is
NULL (this is the same behaviour as in R’s documentation
for the clusterApply functions).mutualinfo() now only outputs the mutual
information (and not conditional entropies or entropies), but it also
outputs the “revisability” of the values in view of a much larger
dataset.plot.MI() and print.MI() for
plotting and printing mutual information and its revisability.verbose = in several function, so
as to show information to console only if the user so desires. This
argument is FALSE for all functions except
learn().print() method for probability
objects.Pr() and related
functions.learn() with datasets
consisting of only one nominal variate.qPr() for the computation of quantiles
and their variability.util_learntvar2sd(file),
where file is the path of the learnt object to be converted.flexiplot().rPr(), which generates datapoints
for any desired set of joint variates, according to the posterior
probability calculated with the learn() function. See
documentation.flexiplot(),
useful for scatterplots of discrete variates.mutualinfo() function, which should also be
a little faster.NB: this release makes all relevant functions incompatible
with objects obtained with previous releases. Please submit an
issue if you’d like to convert your previous results in a format
compatible with the new release. A conversion utility will be made
available soon if there are enough requests. * The Pr()
function has a new argument tails =, and now accepts
arbitrary combinations with point-value arguments (Y = y)
and left- or right-open interval arguments (Y <= y and
Y >= y), the latter for ordinal and continuous variates
only. Thus it covers and extends the use of the now-obsolete function
tailPr(). See documentation, especially about the new
argument tails. * The Pr() function now outputs two new
elements: values.MCerror and quantiles.MCerror, quantifying the accuracy
of the Monte Carlo calculation of the values and quantiles elements. See
documentation. * New handling of ordinal and nominal variates, which
should be faster and use slightly less memory. * More precise
calculation of probabilities for rounded and discrete variates. *
Improved (hopefully) stopping rule of the Markov-chain Monte Carlo
computation. Now partly based on the “bulk ESS” function from Vehtari
& al. * Mainly for debugging purposes, learn() now
continuously updates the Monte Carlo trace plot during calculations. * A
couple more internal functions used for debugging and Monte Carlo
monitoring. * Updates to GitHub: Added GitHub Actions workflow for
automatic testing of the software. * New logical argument “verbose”
(def. TRUE) in buildmetadata(). When TRUE, messages are
given for each variate, explaining the internal heuristics and guessing
to determine the various metadata values. * Modified handling of rounded
continuous variates, now more consistent according to discussion in
issue #50. * Elimination of type-“L” variates in Monte Carlo sampling.
The type “D” handles both rounded continuous variates and ordinal
variates having domain with more than 10 values.
samplesFdistribution() and other functions have been
updated accordingly. * Rewritten plotFsamples(). Now it
goes through every variate type in turn, and should be easier to
understand. * Modified the information contained in the internal
“auxmetadata” object, and accordingly modified all functions that use
this object. * Performed a battery of tests against many datasets
available in base-R. This lead to the unveiling and fixing of several
small bugs. The tests were performed to check the working of
buildmetadata(), buildauxmetadata(),
samplesFdistribution(), plotFsamples(). * With
the mentioned datasets, samplesFdistribution() has been
checked against a clearer (but much slower), for-loop-based script –
written from scratch – to calculate the various probabilities. This
script also uses mathematical formulae that are theoretically identical
but numerically different when it comes to finite-precision arithmetic.
Some bugs have been fixed * The latter test also shows that errors
coming from finite-precision arithmetic are all below 10^-15.
inferpopulation(): the user
can here give a much larger dataset (of which ‘data’ argument is
presumably a subset), which is used to calculate some general statistics
to improve the inference. The idea is that ‘auxdata’ cannot be used for
the Monte Carlo proper, owing to memory or time limitations, but at
least we can squeeze some other useful information out of it.inferpopulation(): an
(approximate) upper bound to the desired numerical error. It’s the
numerical error relative to the width of the probability
distribution.inferpopulation():
number of datapoints to be used to check Monte Carlo convergence. NULL
value (default) is equal to the number of variates + 1.mutualinfo() has been added. This function calculates
mutual information between groups of joint variates.