Infinite
Mixtures of Infinite Factor Analysers
IMIFA
v2.2.0 - (18th release [minor update]:
2023-12-12)
New Features
- get_IMIFA_resultsgains the arg.- adapt,
allowing automatic, post-hoc truncation of
 redundant factors in cases where- mcmc_IMIFAwas called with- adapt=FALSEonly
 (provided relevant parameters were stored) for the- "IFA",- "MIFA",- "OMIFA", &- "IMIFA"methods.
- mgpControlgains the- active.critarg. 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_IMIFAwith- adapt=TRUEdirectly
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.
Improvements, Bug
Fixes, & Miscellaneous Edits
- Models with range.Q=0now work again for the"FA","MFA","OMFA", &"IMFA"methods.
 (with thanks to @abcoxyzide for flagging the
issue)
- The mgpControlarg.delta0gnow also
governsbeta.d1,beta.d2,
 &sigma.hyper, in addition toalpha.d1&alpha.d2.
- Improved documentation & checks related to the
Ledermannbound + added various references to,
 & warnings for, the stricterQ <= floor((P - 1)/2)restriction throughout the package.
- Minor fixes for "MFA"/"MIFA"models whenmu0g,psi0g, &/ordelta0g
 isTRUE, particularly whenlength(range.G) > 1.
- Minor speed-up to G_priorDensitywhendiscountis non-zero.
- Extensive edits to avoid overheads introduced in
matrixStats (>= 1.0.0)+ related minor speed-ups.
- Now using newer CITATIONcommands & updatedLicense: GPL (>= 3).
IMIFA
v2.1.10 - (17th release [patch update]:
2022-12-19)
Improvements, Bug
Fixes, & Miscellaneous Edits
- Minor fix to adaptive Gibbs sampler for clusters with zero
factors.
- Minor speed-ups to Procrusteswhentranslate&/ordilateareTRUE.
- Minor speed-ups to internal Cholesky decompositions in rare failure
cases.
- Cosmetic changes to param="alpha"¶m="discount"plots.
- Minor speed-ups, documentation clarifications, & examples
edits.
IMIFA
v2.1.9 - (16th release [patch update]:
2022-08-12)
Improvements, Bug
Fixes, & Miscellaneous Edits
- storeControlgains the- update.muarg. to
optionally circumvent updates of the
 mean parameters to speed-up special case of (I)FA models with centered
data.
- Minor fix to param="means"plots for uncentered (I)FA
results.
- Minor fixes to account for (rare) uncentered data problems in means
updates also.
- Minor fix to rare cases where Cholesky decompositions fail.
- Minor tidy-ups related to exchange=TRUEfrom previous
update.
- Minor documentation edits for CRAN compliance.
IMIFA
v2.1.8 - (15th release [patch update]:
2021-12-19)
Improvements, Bug
Fixes, & Miscellaneous Edits
- Slight modifications to adaptive Gibbs sampling for all infinite
factor methods:
- Adaptation now occurs before related parameter updates: cleaner,
slightly faster code.
- Fixes rare bug re: storing factor scores when there
are empty components.
- Associated new default behaviour(s) for mgpControlarg.start.AGS.
 
- bnpControlgains the args.- thresh&- exchange, implementing the exchangeable/thresholded
 slice sampler of Fall & Barat (2014): these are experimental
features (both args. default to- FALSE).
- Fixed posterior predictive checking bug in
get_IMIFA_resultsfor
 models for univariate data where some components have zero
factors.
- Minor IM(I)FA speed-ups to updates of DP concentration parameter
alpha.
- sapplyreplaced with- vapply, with other
negligible speed-ups.
IMIFA
v2.1.7 - (14th release [patch update]:
2021-10-07)
Improvements, Bug
Fixes, & Miscellaneous Edits
- mgpControlgains the arg.- truncated(defaults to- FALSE):- 
- Allows version of MGP prior with gamma distributions left-truncated
at 1
 to be used for the column shrinkage parameters beyond the first
column:
 this has some more desirable shrinkage properties, at the expense of
longer run times.
- Related function rltrgammato draw from left-truncated
gamma distributions provided.
- exp_ltrgammafor computing expectations of such
distributions also provided, and used
 internally by- MGP_checkwhen its own new- truncatedarg. is- TRUE(default:- FALSE).
- See ?ltrgammafor further details onrltrgammaandexp_ltrgamma.
 
- Minor speed-ups to simulation of component mean parameters.
- Major speed-up to simulation of factor loadings parameters
(especially when Q=1).
- Major speed-up to simulation of factor scores when Q=1.
- Minor speed-ups to simulation of means and loadings from priors for
empty components.
- Minor fixes to adaptive Gibbs sampler for MIFA models when
delta0g=TRUE.
- Improved checks on range.G&range.Qinmcmc_IMIFA.
- Minor fixes to returned attributes from MGP_checkwhen
invoked in vectorised fashion.
- Minor vignette styling edits and documentation clarifications.
IMIFA
v2.1.6 - (13th release [patch update]:
2021-05-24)
Bug Fixes & Miscellaneous
Edits
- Fixed breaking bugs associated with IM(I)FA slice samplers
introduced in previous update.
- G_calibratefunction exported to augment existing- G_expected&- G_variancefunctions.
- G_variancenow computed more accurately and efficiently
for the- alpha=0case.
- Major speed-up to G_expectedfor thealpha=0case.
- Minor speed-ups to simulation of local/column/cluster shrinkage
parameters + scores & loadings.
- Minor speed-up to G_priorDensityfor non-zerodiscount.
- Minor speed-up to psi_hyper.
IMIFA
v2.1.5 - (12th release [patch update]:
2020-12-29)
Bug Fixes & Miscellaneous
Edits
- Fixed mcmc_IMIFAinitialisation issues for univariate
data sets.
- error.metrics=TRUEnow works for univariate data sets
in- get_IMIFA_results.
- Slight speed-ups to slice samplers for IM(I)FA methods.
- Prettier axis labels for first two plots produced by
plot.meth="zlabels".
- Added ORCID iDs to DESCRIPTION.
- Minor CRAN compliance edits to the vignette.
IMIFA
v2.1.4 - (11th release [patch update]:
2020-11-18)
Bug Fixes & Miscellaneous
Edits
- Stricter checking of permissible alphavalues in the
special case of negativediscount.
- Fixes when plot.meth="density"andparam="alpha"for fixed positivediscount.
- Cosmetic changes to G_priorDensityplots.
- Ensured matrixStats (>= 0.53.1)andmclust (>= 5.4)inImports:.
- Ensured gmp (>= 0.5-4)inSuggests:.
- Package startup message now checks if newer version of package is
available from CRAN.
- Minor documentation & examples edits
(esp. mat2cols).
- Replaced dependency on viridiswithviridisLite.
- Updated citation info after publication in Bayesian
Analysis.
- Updated maintainer e-mail address.
IMIFA
v2.1.3 - (10th release [patch update]:
2020-05-12)
Bug Fixes & Miscellaneous
Edits
- Maintenance release for compatibility with R 4.0.0 - minor
edits.
- Improved handling of suggested packages Rmpfr&gmpinG_expected,G_variance,
&G_priorDensity.
- summary.Results_IMIFAgains the printing-related
argument- MAP=TRUE.
- Edited printed details when plot.meth="zlabels"with
unsuppliedzlabels.
- Minor fixes for fixed negative discount(an
experimental feature).
- Minor speed-up to Procrusteswhendilate=TRUE(never used internally).
- Minor efficiency gains in slice samplers for IM(I)FA methods.
- Documentation, vignette, examples, and references improvements.
IMIFA v2.1.2
- (9th release [patch update]: 2020-03-30)
Bug Fixes
- Fixes and speed-ups to MGP updates and adaptive Gibbs sampler for
IMIFA/OMIFA/MIFA models:
- Fixes and speed-ups to MGP parameter updates when some
clusters have zero factors.
- Additional speed-ups to simulation of column-shrinkage parameters
when some clusters are empty.
- Properly accounted for the cluster-shrinkage parameters when the
number of factors increases.
- Minor bug fixes for padding scores when the maximum number of
factors increases.
 
- Variable-specific communalities (x$Error$Var.Exps) now
returned byget_IMIFA_resultsin addition
 to proportion of explained variance per cluster
(x$Error$Clust.Exps; previouslyx$Error$Var.Exps).
- G_expected&- G_variancegain the arg.- MPFRto control use of suggested packages.
- Minor speed-up to rDirichletfor the symmetric uniform
case.
- Ensured compatibility with latest version of Rfastpackage (w/ minor speed-ups).
- Removed methodspackage fromSuggests:.
- Spell-checking of documentation and fixes to donttestexamples.
IMIFA v2.1.1
- (8th release [patch update]: 2019-12-11)
Improvements
- discountcan now be fixed at a negative value when- learn.d=FALSE,
 provided- alphais supplied as a positive integer multiple
of- abs(discount)and- learn.alpha=TRUE.
- Other types of norm(beyond Frobenius) can now be
specified, by passing the arg.type,
 via the...construct, for calculating the PPRE withinget_IMIFA_results.
- The breaks used to construct the bins for the PPRE calculation can
now also be specified,
 by passing thedbreaksarg. through the...construct. This is an experimental feature; caution is advised.
- The settings discount<0&alpha=0now accommodated byG_expected,G_variance,
&G_priorDensity:
 G_expectedno longer requires theRmpfrorgmplibraries for non-zerodiscountunlessalpha=0.
- mgpControlgains the arg.- forceQg(defaults to- FALSE, i.e. retains old behaviour - see
documentation for details).
- G_priorDensitygains- typearg. and now
works again in non-vectorised form.
- Minor speed-up to Procrustesfunction and hence the
identifiability corrections withinget_IMIFA_results.
- Minor speed-ups to post_conf_matfunction and"parallel.coords"plots.
- Updated citation info after online publication in Bayesian
Analysis.
Bug fixes
- Fixes to sim_IMIFA_datato allow empty clusters and
related fix fornonemptyarg. toget_IMIFA_results.
- Fixed bug when initial alphavalue is0whenlearn.alpha=TRUE.
- Minor fix for handling optional args. to mixfaControlandplot.Results_IMIFAfunctions.
- Admissible rhovalues inbnpControlcorrected to [0,1) from (0,1].
- Fixed bug related to Procrustes rotation of the factor scores for
(I)/FA models in get_IMIFA_results.
- Fixed handling of colour palettes in plot.Results_IMIFA&G_priorDensity.
- Documentation and warning message fixes.
- Anti-aliasing of vignette images.
IMIFA v2.1.0
- (7th release [minor update]: 2019-02-04)
New Features
- mgpControlgains the arguments- cluster.shrinkand- sigma.hyper:- 
- cluster.shrinkgoverns invocation of cluster shrinkage
MGP hyperparameter for MIFA/OMIFA/IMIFA methods.
- sigma.hypercontrols the gamma hyperprior on this
parameter. The posterior mean is reported, where applicable.
- Full conditionals for loadings and local/column shrinkage MGP
hyperparameters edited accordingly.
 
- Allowed the Dirichlet concentration parameter alphato
be learned via MH steps for the OM(I)FA models.
- Also allowed diminishing adaptation to tune the log-normal proposal
to achieve a target acceptance rate.
- Thus bnpControlargs.learn.alpha,alpha.hyper,zeta, &tune.zetabecome relevant for OM(I)FA models.
 
- New posterior predictive model checking approach added to
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.
- Added new function scores_MAPto decompose factor
scores summaries
 fromget_IMIFA_resulsinto submatrices corresponding to the
MAP partition.
- Added new wrapper function sim_IMIFA_modelto callsim_IMIFA_datausing
 the estimated parameters from fittedResults_IMIFAobjects.
- New get_IMIFA_resultsarg.vari.rotallows
loadings templates to be varimax rotated,
 prior to Procrustes rotation, for more interpretable solutions (defaults
toFALSE).
- New plot.Results_IMIFAargumentcommongoverningplot.meth="means"plots (details in
documentation).
Improvements
- New hyperparameter/argument defaults:
- sigma.mudefaults to- 1s.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.mudefaults to- 0.01s.t. the prior on
the cluster means is flat by default.
- learn.ddefaults to- TRUEs.t. a PYP prior
is assumed for IM(I)FA models by default.
- alpha.hypernow has a larger hyper-rate by default, to
better encourage clustering.
- alpha.d1&- alpha.d2now set to- 2.1/- 3.1rather than- 2/- 6to discourage exponentially fast
shrinkage.
- z.initnow defaults to- "hc": model-based
agglomerative hierarchical clustering.
 
- Overhauled psi_hyper(details in documentation) for:
- N <= Pdata where the sample covariance matrix is
not invertible.
- type="isotropic"uniquenesses.
 
- Args. scores&loadingscan now be
supplied tosim_IMIFA_datadirectly;
 new arg.non.zerocontrols the # effective factors (per
column & cluster) whenloadingsare instead
simulated.
- Sped-up 2nd label-switching move for IM(I)FA models
(accounting for empty clusters).
- Args. for hccan now be passed wheninit.z="mclust"also
 (previously only"hc"), thus controlling howMclustis itself initialised.
- Allowed criterionto be passed via...inmixfaControlto choose between
 mclustBIC/mclustICLto determine optimum model
to initialise with when
 z.init="mclust"& also sped-upmclustinitialisation in the process.
- Added stop.AGSarg. tomgpControl: renamedadapt.attostart.AGSfor consistency.
- Added start.zeta&stop.zetaoptions
totune.zetaargument inbnpControl.
- Allowed user-supplied breaksin the plotting functionsmat2cols&heat_legend.
- Initial cluster sizes are now shown in order to alert users to
potentially bad starting values.
- Added utility function pareto_scale().
Bug Fixes
- Fixed factor scores & error metrics issues in
get_IMIFA_resultsfor clustering methods:
- Fixed storage of scores for infinite factor methods - now
corresponds to samples where the
 largest cluster-specific number of factors is>=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.
 
- Other Procrustes rotation fixes to account for
label-switching.
 
- Other Procrustes rotation fixes specific to the IMFA/OMFA
methods.
 
- range.Gand- trunc.Gdefaults fixed,
especially for small sample size settings.
- Slight label-switching fixes when zlabelsare supplied
toget_IMIFA_results;
 posterior confusion matrix, cluster sizes vector, and the sampled labels
themselves effected.
- Prevented unnecessary Procrustes rotation for single-factor
components, thus fixing some bugs.
- Fixed initialisation of uniquenesses to account for all four
settings of uni.type.
- Allowed conditioning on iterations with all components populated for
M(I)FA models in get_IMIFA_results.
- Accounted for 1-component IM(I)FA/OM(I)FA models in
get_IMIFA_results.
- Fixed handling of empty components when simulating cluster labels
from priors in mcmc_IMIFA&sim_IMIFA_data.
- Ensured no. of factors Qcannot exceed no. of
observations in the corresponding cluster insim_IMIFA_data.
- Slight speed-up to updating MGP hyperparameters in the presence of
empty MIFA/OMIFA/IMIFA components.
- Slight speed-up to sampling cluster labels with slice indicators for
IM(I)FA models.
- Explicitly allowed Pitman-Yor special case where
alpha=0for IM(I)FA models;
 added related controls on spike-and-slab prior fordiscountwhen fixingalpha<=0.
- Allowed full range of hcmodel types for initialisation
purposes via...inmixfaControl.
- Clarified dimnamesofget_IMIFA_resultsoutput inx$Loadings&x$Scores.
- Fixed storage switches & iteration indices to better account for
burnin=0.
- Fixed plotting of exact zeros in posterior confusion matrix.
- Fixed plotting posterior mean loadings heatmap when one or more
clusters have zero factors.
- Fixed plotting scores for (I)FA models due to bug in previous
update, esp. with zlabelssupplied.
- Fixed show_IMIFA_digitto better account for missing
pixels &/or the data having been centered/scaled.
- Fixed simulation of psiwhen not supplied tosim_IMIFA_datato IG rather than GA.
- Fixed bug preventing Qto be supplied toget_IMIFA_resultsfor infinite factor methods.
- Fixed y-axis labelling in uncertainty type plots when
plot.meth="zlabels".
- Small fixes to function show_digit.
- Better handling of tied model-selection criteria in
get_IMIFA_results.
- Procrustesnow works when- Xhas fewer
columns than- Xstar.
- Minor cosmetic change for overplotting scores&loadingsintrace&densityplots.
- Edited Ledermannand related warnings to account for
case of isotropic uniquenesses.
- Tidied indentation/line-breaks for
cat/message/warningcalls for
printing clarity.
- Corrected IMIFA-packagehelp file (formerly justIMIFA).
- Edited CITATIONfile and authorship.
IMIFA v2.0.0
- (6th release [major update]: 2018-05-01)
Major Changes
- Simplified mcmc_IMIFAby consolidating arguments using
new helper functions (with defaults):
- Args. common to all factor-analytic mixture methods & MCMC
settings supplied via mixfaControl.
- MGP & AGS args. supplied via mgpControlfor
infinite factor models.
 
- Pitman-Yor/Dirichlet Process args. supplied via
bnpControlfor infinite mixture models.
- Storage switch args. supplied via storeControl.
- New functions also inherit the old documentation for their
arguments.
 
New Features
- Posterior predictive checking overhauled: now MSE, RMSE etc. between
empirical & estimated covariance
 matrices are computed for every retained iteration so uncertainty in
these estimates can be quantified:
- Can be switched on/off via the error.metricsargument
toget_IMIFA_results.
 
- Can be visualised by supplying plot.meth="errors"toplot.Results_IMIFA.
 
- For methods which achieve clustering, the ‘overall’ covariance
matrix
 is now properly computed from the cluster-specific covariance
matrices.
 
- Same metrics also evaluated at posterior mean parameter estimates
& for final sample where possible.
 
- mixfaControlgains the arg.- prec.muto
control the degree of flatness of the prior for the means.
- Posterior confusion matrix now returned
(get_IMIFA_results) & visualisable
(plot.Results_IMIFA,
 whenplot.meth="zlabels"), via new functionpost_conf_mat, to further assess clustering
uncertainty.
- Added new type of clustering uncertainty profile plot in
plot.Results_IMIFAwhenplot.meth="zlabels".
- For convenience, get_IMIFA_resultsnow 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_IMIFAgains new arg.- show.lastthat 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").
- Added ability to constrain mixing proportions across clusters using
equal.proargument for M(I)FA models:
 ModifiedPGMM_dfreeaccordingly and forced non-storage of
mixing proportions whenequal.proisTRUE.
- All methods now work for univariate data also (with apt. edits to
plots & uniqueness defaults etc.).
 sim_IMIFA_dataalso extended to work for univariate data,
as well as sped-up.
Improvements
- Retired args. nu&nuplus1tomgpControl, replaced by ability to specify more general
gamma prior,
 via newphi.hyperarg. specifying shape and rate -MGP_checkhas also been modified accordingly.
- Zsimilaritysped-up via the- comp.psm&- cltoSimfunctions s.t. when # observations < 1000.
- Matrix of posterior cluster membership probabilities now returned by
get_IMIFA_results.
- Modified AGS to better account for when the number of group-specific
latent factors shrinks to zero.
- psi.alphano longer needs to be strictly greater than
1, unless the default- psi.betais invoked;
 thus flatter inverse gamma priors can now be specified for the
uniquenesses via- mixfaControl.
- Added “hc” option toz.initto initialise
allocations via hierarchical clustering (usingmclust::hc).
- Allowed optional args. for functions used to initialise allocations
via ...inmixfaControl.
- Added muargument tosim_IMIFA_datato
allow supplying true mean parameter values directly.
- Standard deviation of aicm/bicmmodel
selection criteria now computed and returned.
- Speed-ups due to new Rfastutility functions:colTabulate&matrnorm.
- Speed-ups due to utility functions from matrixStats, on
whichIMIFAalready depends.
- Slight improvements when adapt=FALSEfor infinite
factor models with fixed high truncation level.
- Misclassified observations now highlighted in 1st type of
uncertainty plot in Plot.Results_IMIFA,
 whenplot.meth="zlabels"and the truezlabelsare supplied.
- mixfaControlgains arg.- drop0sdto control
removal of zero-variance features (defaults to- TRUE).
- heat_legendgains- cex.labargument to
control magnification of legend text.
- mat2colsgains the- transparencyargument.
- Edited PGMM_dfreeto include the 4 extra models from
the EPGMM family.
Bug Fixes
- Supplying zlabelstoget_IMIFA_resultswill now match the cluster labels and parameters to
 the true labels even if there is a mismatch between the number of
clusters in both.
- Similarly, supplying zlabelstoplot.Results_IMIFAwhenplot.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 withinget_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.
- Accounted for errors in covariance matrix when deriving default
sigma.mu&psi.betavalues.
- Accounted for missing empirical covariance entries within
get_IMIFA_results.
- Fixed model selection in get_IMIFA_resultsfor
IMFA/OMFA models whenrange.Qis a range.
- Fixed calculation of aicm,bicmanddiccriteria: all results remain the same.
- Fixed support of Ga(a, b) prior on alphawhendiscountis being learned.
- Fixed bug preventing uni.prior="isotropic"whenuni.typeis(un)constrained.
- Fixed treatment of exact zeros when plotting average clustering
similarity matrix.
- Fixed tiny bug when neither centering nor scaling (of any kind) are
applied to data within mcmc_IMIFA.
- Fixed plotting of posterior mean scores when one or more clusters
are empty.
- Fixed bug with default plotting palette for data sets with >1024
variables.
- Fixed bug with label switching permutations in
get_IMIFA_resultswhen there are empty clusters.
- Fixed printandsummaryfunctions for
objects of classIMIFAandResults_IMIFA.
- Fixed calculating posterior mean zetawhen adaptively
targetingalpha’s optimal MH acceptance rate.
- Allowed alphabe tiny for (O)M(I)FA models (providedz.init != "priors"for overfitted models).
- Normalised mixing proportions in get_IMIFA_resultswhen
conditioning onGfor IM(I)FA/OM(I)FA models.
- New controls/warnings for excessively small Gamma hyperparemeters
for uniqueness/local shrinkage priors.
- Clarified recommendation in MGP_checkthatalpha.d2be moderately large relative toalpha.d1.
- Ensured sigma.muhyperparameter arg. is always coerced
to diagonal entries of a covariance matrix.
- Transparency default in plot.Results_IMIFAnow depends
on device’s support of semi-transparency.
- Replaced certain instances of is.list(x)withinherits(x, "list")for stricter checking.
- Added check.margin=FALSEto calls tosweep.
- Ledermann,- MGP_check, &- PGMM_dfreeare now properly vectorised.
Miscellaneous Edits
- Added USPSdigitsdata set (training and test),
 with associated utility functionsshow_digitandshow_IMIFA_digit.
- Optimised compression of olive,coffeeand
vignette data and usedLazyData: true.
- Added call.=FALSEtostop()messages andimmediate.=TRUEto certainwarning()calls.
- Removed dependency onadrop,e1071,graphics,grDevices,plotrix,stats&utilslibraries.
- Reduced dependency on Rfastw/ own version ofstandardise.
- Added utility function IMIFA_newsfor accessing thisNEWSfile.
- Added CITATIONfile.
- Extensively improved package documentation:
- Added Collate:field toDESCRIPTIONfile.
- Added line-breaks to usagesections of multi-argument
functions.
- Consolidated help files for G_expected&G_variance.
 
IMIFA v1.3.1
- (5th release [patch update]: 2017-07-07)
Bug Fixes
- Fixed bug preventing M(I)FA models from being treated as (I)FA
models when range.Gcontains 1.
- Fixed bug preventing get_IMIFA_resultsfrom working
properly when true labels are NOT supplied.
IMIFA v1.3.0
- (4th release [minor update]: 2017-06-22)
New Features
- Added options "constrained"&"single"tomcmc_IMIFA’suni.typeargument:
 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_IMIFAgains the- tune.zetaargument, a
list of- heat,- lambda&- targetparameters, 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.
Improvements
- (I)FA models sped up by considering uniquenesses under 1-cluster
models as "constrained"or"single",
 rather than previously"unconstrained"or"isotropic", utilising pre-computation and empty
assignment.
- Previously hidden functions improved, exported and documented with
examples:
 is.cols,Ledermann,Procrustes&shift_GA.
- is.posi_defgains- makeargument, 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.
- Sped-up sampling IM(I)FA labels, esp. when ‘active’ G falls to 1, or
the dependent slice-sampler is used:
 log.likearg. removed fromgumbel_max;
function stands alone, now only stored log-likelihoods computed.
- psiargument added to- sim_IMIFA_datato
allow supplying true uniqueness parameter values directly.
Bug Fixes
- Used bw="SJ"everywheredensityis invoked
for plotting (bw="nrd0"is invoked if this fails).
- Fixed initialisation of uniquenesses for isotropic(I)FA models.
- Fixed parallel coordinates plot axes and labels for all
isotropicuniquenesses plots.
- Fixed adaptation for MIFA/OMIFA/IMIFA models when all clusters
simultaneously have zero factors.
- Fixed storage bug in IM(I)FA models when learn.disTRUEbutlearn.alphaisFALSE.
- Fixed density plot for discountwhen mutation rate is
too low (i.e. too many zeros).
- Fixed simulation of loadings matrices for empty MIFA/OMIFA/IMIFA
clusters using byrow=TRUE:
 Loop to simulate loadings matrices now generally faster also for all
models.
- Fixed silly error re: way in which (I)FA models are treated as
1-cluster models to ensure they run:
 Related bug fixed for OM(I)FA/IM(I)FA models when starting number of
clusters is actually supplied.
IMIFA v1.2.1
- (3rd release [patch update]: 2017-05-29)
Improvements
- Posterior mean scores can now also be plotted in the form of a heat
map (previously loadings only).
 load.methargument replaced by logicalheat.mapinplot.Results_IMIFA.
- mat2colsgains- compareargument to yield
common palettes/breaks for heat maps of multiple matrices:
 Associated- plot_colsfunction also fixed, and now
unhidden.
- Removed certain dependencies with faster personal code:
e.g. Procrustes rotation now quicker:
 IMIFAno longer depends on thecorpcor,gclus,MASS,matrixcalc, orMCMCpacklibraries.
Bug Fixes
- Used par()$bg(i.e. default"white") for
plotting zero-valued entries of similarity matrix.
- Range of data for labelling in heat_legendcalculated
correctly.
- mcmc_IMIFA’s- verboseargument now governs
printing of- message&- catcalls, but not- stopor- warning.
- Fixed storage and plotting of loadings, particularly when some but
not all clusters have zero factors.
- Added NEWS.mdto build.
IMIFA v1.2.0
- (2nd release [minor update]: 2017-05-09)
New Features
- Learning the Pitman-Yor discount&alphaparameters via Metropolis-Hastings now implemented.
- Spike-and-slab prior specified for discount: size of
spike controlled by arg.kappa.
- Plotting function’s paramargument gains the optiondiscountfor posterior inference.
 
- Sped up simulating cluster labels from unnormalised log
probabilities using the Gumbel-Max trick (Yellott, 1977):
 gumbel_maxreplaces earlier function to sample cluster
labels and is now unhidden/exported/documented.
- Added new plot when plot.meth=GQfor OM(I)FA/IM(I)FA
models depicting trace of #s of active/non-empty clusters.
- Added function Zsimilarityto 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 insideget_IMIFA_results, the
similarity matrix can be plotted viaplot.meth="zlabels".
Improvements
- Metropolis-Hastings updates implemented for alphawhendiscountis non-zero, rather than usual Gibbs.
 Mutation rate monitored rather than acceptance rate for
Metropolis-Hastings updates ofdiscountparameter.
- Fixed calculation of # ‘free’ parameters for
aic.mcmc&bic.mcmccriteria 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.
- DIC model selection criterion now also available for infinite factor
models (previously finite only).
- G_priorDensitynow better reflects discrete nature of
the density, and plots for non-zero PY discount values.
- Posterior mean loadings heatmaps now also display a colour key
legend via new function heat_legend.
- Avoided redundant simulation of stick-breaking/mixing proportions
under both types of IM(I)FA slice sampler.
- Simulated (finite) mixing proportions w/ Gamma(alpha, 1)
trick (Devroye 1986, p.594) instead of
MCMCpack:rdirichlet:
 rDirichletreplaces earlier function to sample mixing
proportions and is now unhidden/exported/documented.
- Deferred setting dimnamesattributes inmcmc_IMIFAtoget_IMIFA_results: lower memory
burden/faster simulations.
- Jettisoned superfluous duplicate material in object outputted from
get_IMIFA_resultsto reduce size/simplify access.
- Restored the IMFA/IMIFA arg. trunc.G, the max allowable
# active clusters, and # active clusters now stored.
- Code sped up when activeG=1 by not simulating labels
for IM(I)FA models.
- Reduced chance of crash by exceeding memory capacity;
score.switchdefaults toFALSEif # models ran
is large.
Bug Fixes
- 2nd IM(I)FA label switching move sped up/properly
weighted to ensure uniform sampling of neighbouring cluster pairs.
- Offline label switching square assignment correction now permutes
properly.
- Fixed factor score trace plots by extracting indices of stored
samples using Rfast::sort_uniqueand rotating
properly.
- Fixed adding of rnormcolumns to scores matrix during
adaptation, esp. when widest loadings matrix grows/shrinks.
- Fixed initialisation (and upper limit) of number of clusters for
OM(I)FA/IM(I)FA, esp. when N < P.
- Updates of DP/PY alphaparameter now correctly depend
on current # non-empty rather than active clusters.
- Fixed density plots for parameters with bounded support, accounting
for spike at zero for discount.
- Slightly rearranged order Gibbs updates take place, esp. to ensure
means enter simulation of uniquenesses properly.
- Edited/robustified subsetting of large objects when storing
mcmc_IMIFAoutput.
- Tightened controls for when certain parameters are not stored for
posterior inference.
- Edited Ledermann upper bound stop(...)for finite
factor models towarning(...).
- Geometric rather than arithmetic mean used to derive single rate
hyperparameter for PPCA’s isotropic uniquenesses.
- Uniquenesses now stored correctly for all clustering methods.
- Indices of uncertain obs. returned
(get_IMIFA_results)/printed
(plot.Results_IMIFA) even whenzlabelsnot
supplied.
- Fixed behaviour of progress bar when
verbose=FALSE.
- Fixed typos and expanded/clarified help documentation/vignette.
IMIFA v1.1.0 -
(1st release: 2017-02-02)