get_IMIFA_results
gains the arg. adapt
, allowing automatic, post-hoc truncation of
redundant factors in cases where mcmc_IMIFA
was called with adapt=FALSE
only
(provided relevant parameters were stored) for the "IFA"
, "MIFA"
, "OMIFA"
, & "IMIFA"
methods.mgpControl
gains the active.crit
arg. to allow the criterion for determining the number of
active factors of Schiavon & Canale (2020) to be used (for "IFA"
models only); this is available
for both mcmc_IMIFA
with adapt=TRUE
directly and the aforementioned post-hoc adaptation using
get_IMIFA_results
, though the old criterion of Bhattacharya & Dunson (2011), active.crit="BD"
,
remains the default for all infinite factor models in each case. See documentation for details. range.Q=0
now work again for the "FA"
, "MFA"
, "OMFA"
, & "IMFA"
methods.
(with thanks to @abcoxyzide for flagging the issue)mgpControl
arg. delta0g
now also governs beta.d1
, beta.d2
,
& sigma.hyper
, in addition to alpha.d1
& alpha.d2
.Ledermann
bound + added various references to,
& warnings for, the stricter Q <= floor((P - 1)/2)
restriction throughout the package."MFA"
/"MIFA"
models when mu0g
, psi0g
, &/or delta0g
is TRUE
, particularly when length(range.G) > 1
.G_priorDensity
when discount
is non-zero.matrixStats (>= 1.0.0)
+ related minor speed-ups.CITATION
commands & updated License: GPL (>= 3)
. Procrustes
when translate
&/or dilate
are TRUE
.param="alpha"
& param="discount"
plots.storeControl
gains the update.mu
arg. to optionally circumvent updates of the
mean parameters to speed-up special case of (I)FA models with centered data.param="means"
plots for uncentered (I)FA results.exchange=TRUE
from previous update.mgpControl
arg. start.AGS
.bnpControl
gains the args. thresh
& exchange
, implementing the exchangeable/thresholded
slice sampler of Fall & Barat (2014): these are experimental features (both args. default to FALSE
).get_IMIFA_results
for
models for univariate data where some components have zero factors.sapply
replaced with vapply
, with other negligible speed-ups.mgpControl
gains the arg. truncated
(defaults to FALSE
): rltrgamma
to draw from left-truncated gamma distributions provided.exp_ltrgamma
for computing expectations of such distributions also provided, and used
internally by MGP_check
when its own new truncated
arg. is TRUE
(default: FALSE
).?ltrgamma
for further details on rltrgamma
and exp_ltrgamma
.delta0g=TRUE
.range.G
& range.Q
in mcmc_IMIFA
.MGP_check
when invoked in vectorised fashion.G_calibrate
function exported to augment existing G_expected
& G_variance
functions.G_variance
now computed more accurately and efficiently for the alpha=0
case.G_expected
for the alpha=0
case.G_priorDensity
for non-zero discount
.psi_hyper
.mcmc_IMIFA
initialisation issues for univariate data sets.error.metrics=TRUE
now works for univariate data sets in get_IMIFA_results
.plot.meth="zlabels"
.alpha
values in the special case of negative discount
.plot.meth="density"
and param="alpha"
for fixed positive discount
.G_priorDensity
plots.matrixStats (>= 0.53.1)
and mclust (>= 5.4)
in Imports:
.gmp (>= 0.5-4)
in Suggests:
.mat2cols
).viridis
with viridisLite
.Rmpfr
& gmp
in G_expected
, G_variance
, & G_priorDensity
.summary.Results_IMIFA
gains the printing-related argument MAP=TRUE
.plot.meth="zlabels"
with unsupplied zlabels
.discount
(an experimental feature).Procrustes
when dilate=TRUE
(never used internally).x$Error$Var.Exps
) now returned by get_IMIFA_results
in addition
to proportion of explained variance per cluster (x$Error$Clust.Exps
; previously x$Error$Var.Exps
).G_expected
& G_variance
gain the arg. MPFR
to control use of suggested packages.rDirichlet
for the symmetric uniform case.Rfast
package (w/ minor speed-ups).methods
package from Suggests:
.donttest
examples.discount
can now be fixed at a negative value when learn.d=FALSE
,
provided alpha
is supplied as a positive integer multiple of abs(discount)
and learn.alpha=TRUE
.norm
(beyond Frobenius) can now be specified, by passing the arg. type
,
via the ...
construct, for calculating the PPRE within get_IMIFA_results
.dbreaks
arg. through the ...
construct. This is an experimental feature; caution is advised.discount<0
& alpha=0
now accommodated by G_expected
, G_variance
, & G_priorDensity
:
G_expected
no longer requires the Rmpfr
or gmp
libraries for non-zero discount
unless alpha=0
. mgpControl
gains the arg. forceQg
(defaults to FALSE
, i.e. retains old behaviour - see documentation for details).G_priorDensity
gains type
arg. and now works again in non-vectorised form.Procrustes
function and hence the identifiability corrections within get_IMIFA_results
.post_conf_mat
function and "parallel.coords"
plots.sim_IMIFA_data
to allow empty clusters and related fix for nonempty
arg. to get_IMIFA_results
.alpha
value is 0
when learn.alpha=TRUE
.mixfaControl
and plot.Results_IMIFA
functions.rho
values in bnpControl
corrected to [0,1) from (0,1].get_IMIFA_results
.plot.Results_IMIFA
& G_priorDensity
.mgpControl
gains the arguments cluster.shrink
and sigma.hyper
:cluster.shrink
governs invocation of cluster shrinkage MGP hyperparameter for MIFA/OMIFA/IMIFA methods.sigma.hyper
controls the gamma hyperprior on this parameter. The posterior mean is reported, where applicable.alpha
to be learned via MH steps for the OM(I)FA models. bnpControl
args. learn.alpha
, alpha.hyper
, zeta
, & tune.zeta
become relevant for OM(I)FA models.get_IMIFA_results
(with associated plots):
Posterior Predictive Reconstruction Error (PPRE) compares bin counts of the original data with corresponding
counts for replicate draws from the posterior predictive distribution using a standardised Frobenius norm.scores_MAP
to decompose factor scores summaries
from get_IMIFA_resuls
into submatrices corresponding to the MAP partition.sim_IMIFA_model
to call sim_IMIFA_data
using
the estimated parameters from fitted Results_IMIFA
objects.get_IMIFA_results
arg. vari.rot
allows loadings templates to be varimax rotated,
prior to Procrustes rotation, for more interpretable solutions (defaults to FALSE
).plot.Results_IMIFA
argument common
governing plot.meth="means"
plots (details in documentation).sigma.mu
defaults to 1
s.t. the hypercovariance is the identity for the prior on the means;
old behaviour (using the diagonal of the sample covariance matrix) recoverable by specifying sigma.mu=NULL
.prec.mu
defaults to 0.01
s.t. the prior on the cluster means is flat by default.learn.d
defaults to TRUE
s.t. a PYP prior is assumed for IM(I)FA models by default.alpha.hyper
now has a larger hyper-rate by default, to better encourage clustering.alpha.d1
& alpha.d2
now set to 2.1
/3.1
rather than 2
/6
to discourage exponentially fast shrinkage.z.init
now defaults to "hc"
: model-based agglomerative hierarchical clustering.psi_hyper
(details in documentation) for: N <= P
data where the sample covariance matrix is not invertible.type="isotropic"
uniquenesses.scores
& loadings
can now be supplied to sim_IMIFA_data
directly;
new arg. non.zero
controls the # effective factors (per column & cluster) when loadings
are instead simulated.hc
can now be passed when init.z="mclust"
also
(previously only "hc"
), thus controlling how Mclust
is itself initialised.criterion
to be passed via ...
in mixfaControl
to choose between
mclustBIC
/mclustICL
to determine optimum model to initialise with when
z.init="mclust"
& also sped-up mclust
initialisation in the process.stop.AGS
arg. to mgpControl
: renamed adapt.at
to start.AGS
for consistency.start.zeta
& stop.zeta
options to tune.zeta
argument in bnpControl
.breaks
in the plotting functions mat2cols
& heat_legend
.pareto_scale()
.get_IMIFA_results
for clustering methods: >=
the max of the modal estimates of the same
(previously samples where any cluster has >=
the corresponding modal estimate were used):
thus, valid samples for computing error metrics also fixed and Procrustes rotation also sped-up. range.G
and trunc.G
defaults fixed, especially for small sample size settings. zlabels
are supplied to get_IMIFA_results
;
posterior confusion matrix, cluster sizes vector, and the sampled labels themselves effected.uni.type
.get_IMIFA_results
.get_IMIFA_results
.mcmc_IMIFA
& sim_IMIFA_data
.Q
cannot exceed no. of observations in the corresponding cluster in sim_IMIFA_data
.alpha=0
for IM(I)FA models;
added related controls on spike-and-slab prior for discount
when fixing alpha<=0
.hc
model types for initialisation purposes via ...
in mixfaControl
.dimnames
of get_IMIFA_results
output in x$Loadings
& x$Scores
.burnin=0
.zlabels
supplied.show_IMIFA_digit
to better account for missing pixels &/or the data having been centered/scaled.psi
when not supplied to sim_IMIFA_data
to IG rather than GA.Q
to be supplied to get_IMIFA_results
for infinite factor methods.plot.meth="zlabels"
.show_digit
.get_IMIFA_results
.Procrustes
now works when X
has fewer columns than Xstar
.scores
& loadings
in trace
& density
plots.Ledermann
and related warnings to account for case of isotropic uniquenesses.cat
/message
/warning
calls for printing clarity.IMIFA-package
help file (formerly just IMIFA
).CITATION
file and authorship.mcmc_IMIFA
by consolidating arguments using new helper functions (with defaults): mixfaControl
.mgpControl
for infinite factor models. bnpControl
for infinite mixture models.storeControl
.error.metrics
argument to get_IMIFA_results
. plot.meth="errors"
to plot.Results_IMIFA
. mixfaControl
gains the arg. prec.mu
to control the degree of flatness of the prior for the means.get_IMIFA_results
) & visualisable (plot.Results_IMIFA
,
when plot.meth="zlabels"
), via new function post_conf_mat
, to further assess clustering uncertainty.plot.Results_IMIFA
when plot.meth="zlabels"
.get_IMIFA_results
now also returns the last valid samples for parameters of interest,
after conditioning on the modal G & Q values and accounting for label switching and Procrustes rotation.plot.Results_IMIFA
gains new arg. show.last
that replaces any instance of showing the posterior mean
with the last valid sample instead (i.e. when plot.meth="means"
or plot.meth="parallel.coords")
.equal.pro
argument for M(I)FA models:
Modified PGMM_dfree
accordingly and forced non-storage of mixing proportions when equal.pro
is TRUE
. sim_IMIFA_data
also extended to work for univariate data, as well as sped-up.nu
& nuplus1
to mgpControl
, replaced by ability to specify more general gamma prior,
via new phi.hyper
arg. specifying shape and rate - MGP_check
has also been modified accordingly.Zsimilarity
sped-up via the comp.psm
& cltoSim
functions s.t. when # observations < 1000.get_IMIFA_results
.psi.alpha
no longer needs to be strictly greater than 1, unless the default psi.beta
is invoked;
thus flatter inverse gamma priors can now be specified for the uniquenesses via mixfaControl
.hc
" option to z.init
to initialise allocations via hierarchical clustering (using mclust::hc
)....
in mixfaControl
.mu
argument to sim_IMIFA_data
to allow supplying true mean parameter values directly.aicm
/bicm
model selection criteria now computed and returned.Rfast
utility functions: colTabulate
& matrnorm
.matrixStats
, on which IMIFA
already depends.adapt=FALSE
for infinite factor models with fixed high truncation level.Plot.Results_IMIFA
,
when plot.meth="zlabels"
and the true zlabels
are supplied.mixfaControl
gains arg. drop0sd
to control removal of zero-variance features (defaults to TRUE
).heat_legend
gains cex.lab
argument to control magnification of legend text.mat2cols
gains the transparency
argument.PGMM_dfree
to include the 4 extra models from the EPGMM family.zlabels
to get_IMIFA_results
will now match the cluster labels and parameters to
the true labels even if there is a mismatch between the number of clusters in both.zlabels
to plot.Results_IMIFA
when plot.meth="zlabels"
no longer does
any matching when printing performance metrics to the screen - previously this caused confusion
as associated parameters were not also permuted as they are within get_IMIFA_results
: now
plot(get_IMIFA_results(sim), plot.meth="zlabels", zlabels=z)
gives different results from
plot(get_IMIFA_results(sim, zlabels=z), plot.meth="zlabels")
as only the latter will permute.sigma.mu
& psi.beta
values.get_IMIFA_results
.get_IMIFA_results
for IMFA/OMFA models when range.Q
is a range.aicm
, bicm
and dic
criteria: all results remain the same.alpha
when discount
is being learned.uni.prior="isotropic"
when uni.type
is (un)constrained
.mcmc_IMIFA
.get_IMIFA_results
when there are empty clusters.print
and summary
functions for objects of class IMIFA
and Results_IMIFA
.zeta
when adaptively targeting alpha
's optimal MH acceptance rate.alpha
be tiny for (O)M(I)FA models (provided z.init != "priors"
for overfitted models).get_IMIFA_results
when conditioning on G
for IM(I)FA/OM(I)FA models.MGP_check
that alpha.d2
be moderately large relative to alpha.d1
.sigma.mu
hyperparameter arg. is always coerced to diagonal entries of a covariance matrix.plot.Results_IMIFA
now depends on device's support of semi-transparency.is.list(x)
with inherits(x, "list")
for stricter checking.check.margin=FALSE
to calls to sweep
.Ledermann
, MGP_check
, & PGMM_dfree
are now properly vectorised.USPSdigits
data set (training and test),
with associated utility functions show_digit
and show_IMIFA_digit
.olive
, coffee
and vignette data and used LazyData: true
.call.=FALSE
to stop()
messages and immediate.=TRUE
to certain warning()
calls.adrop
, e1071
, graphics
, grDevices
, plotrix
, stats
& utils
libraries.Rfast
w/ own version of standardise
.IMIFA_news
for accessing this NEWS
file.CITATION
file.Collate:
field to DESCRIPTION
file.usage
sections of multi-argument functions.G_expected
& G_variance
.range.G
contains 1.get_IMIFA_results
from working properly when true labels are NOT supplied."constrained"
& "single"
to mcmc_IMIFA
's uni.type
argument:
as well as being either diagonal or isotropic (UUU / UUC), uniquenesses can now further be
constrained across clusters (UCU / UCC), with appropriate warnings, defaults, checks,
initialisations, computation of model choice penalties, and plotting behaviour in all 4 cases.mcmc_IMIFA
gains the tune.zeta
argument, a list of heat
, lambda
& target
parameters, to invoke
diminishing adaptation for tuning the uniform proposal to achieve a target acceptance rate when alpha
is learned via Metropolis-Hastings when the Pitman-Yor Process prior is employed for the IM(I)FA models."constrained"
or "single"
,
rather than previously "unconstrained"
or "isotropic"
, utilising pre-computation and empty assignment.is.cols
, Ledermann
, Procrustes
& shift_GA
.is.posi_def
gains make
argument, merging it with previously hidden function .make_posdef
:
Thus the 'nearest' positive-(semi)definite matrix and the usual check can be returned in a single call.log.like
arg. removed from gumbel_max
; function stands alone, now only stored log-likelihoods computed.psi
argument added to sim_IMIFA_data
to allow supplying true uniqueness parameter values directly.bw="SJ"
everywhere density
is invoked for plotting (bw="nrd0"
is invoked if this fails).isotropic
(I)FA models.isotropic
uniquenesses plots.learn.d
is TRUE
but learn.alpha
is FALSE
.discount
when mutation rate is too low (i.e. too many zeros).byrow=TRUE
:
Loop to simulate loadings matrices now generally faster also for all models.load.meth
argument replaced by logical heat.map
in plot.Results_IMIFA
.mat2cols
gains compare
argument to yield common palettes/breaks for heat maps of multiple matrices:
Associated plot_cols
function also fixed, and now unhidden.IMIFA
no longer depends on the corpcor
, gclus
, MASS
, matrixcalc
, or MCMCpack
libraries.par()$bg
(i.e. default "white"
) for plotting zero-valued entries of similarity matrix.heat_legend
calculated correctly.mcmc_IMIFA
's verbose
argument now governs printing of message
& cat
calls, but not stop
or warning
.NEWS.md
to build.discount
& alpha
parameters via Metropolis-Hastings now implemented. discount
: size of spike controlled by arg. kappa
.param
argument gains the option discount
for posterior inference.gumbel_max
replaces earlier function to sample cluster labels and is now unhidden/exported/documented.plot.meth=GQ
for OM(I)FA/IM(I)FA models depicting trace of #s of active/non-empty clusters.Zsimilarity
to summarise posterior clustering by the sampled labels with minimum
squared distance to a sparse similarity matrix constructed by averaging the adjacency matrices:
when optionally called inside get_IMIFA_results
, the similarity matrix can be plotted via plot.meth="zlabels"
.alpha
when discount
is non-zero, rather than usual Gibbs.
Mutation rate monitored rather than acceptance rate for Metropolis-Hastings updates of discount
parameter.aic.mcmc
& bic.mcmc
criteria when uniquenesses are isotropic:
PGMM_dfree
, which calculates # 'free' parameters for finite factor analytic mixture models is exported/documented.
This function is also used to add checks on the Dirichlet hyperparameter for OM(I)FA methods.G_priorDensity
now better reflects discrete nature of the density, and plots for non-zero PY discount values.heat_legend
.MCMCpack:rdirichlet
:
rDirichlet
replaces earlier function to sample mixing proportions and is now unhidden/exported/documented.dimnames
attributes in mcmc_IMIFA
to get_IMIFA_results
: lower memory burden/faster simulations.get_IMIFA_results
to reduce size/simplify access.trunc.G
, the max allowable # active clusters, and # active clusters now stored.active
G=1 by not simulating labels for IM(I)FA models.score.switch
defaults to FALSE
if # models ran is large.Rfast::sort_unique
and rotating properly. rnorm
columns to scores matrix during adaptation, esp. when widest loadings matrix grows/shrinks.N < P
.alpha
parameter now correctly depend on current # non-empty rather than active clusters.discount
.mcmc_IMIFA
output.stop(...)
for finite factor models to warning(...)
.get_IMIFA_results
)/printed (plot.Results_IMIFA
) even when zlabels
not supplied.verbose=FALSE
.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.