MoEClust:
Gaussian Parsimonious Clustering Models
with Gating
and Expert Network Covariates
and a Noise
Component
MoEClust
v1.6.0 - (18th release [minor update]:
2025-03-05)
New Features & Improvements
- Various improvements to MoE_gpairs(also see additional
Bug Fixes below):
- Significant fixes when there are expert covariates and
diag.pars$show.dens=TRUE&/or
 response.type="density"by properly using log average
density instead of average log density.
- Marginal densities when diag.pars$show.dens=TRUEare
now always evaluated over evenly-spaced
 grids, the size of which can now be modified viadiag.pars$diag.grid(equal to 100, by default):
 previously, the grids were formed using the observed values, which led
to strange behaviour.
- Added density.pars$dens.points=FALSEfor overlaying
points whenresponse.type="density".
- Various improvements in relation to subsetargs.:
- data.ind&- cov.indcan now be
character strings / variable names (previously numeric indices
only).
- Added submatfor showing only"upper"/"lower"triangular &"diagonal"plot panels.
- When submat="all", the slowness ofresponse.type="density"plots is now offset
 by using densities pre-calculated from upper-triangular panels for
lower-triangular panels.
 
 
- MoE_Uncertaintygains two new arguments:- 
- col: default of- "cluster"colours
according to cluster-membership, but
 old behaviour of highlighting uncertain observations can be recovered
via- col="uncertain".
- rug1d(- TRUE, by default) for use with
univariate models, which puts
 the actual observed values along the x axis when- type="barplot".
 
- MoE_controlgains new- init.zoption- "soft.random": the- "random"option has
been
 renamed to- "random.hard", but- init.z="random"will work as before due to partial matching.
- tau0can now always be supplied as a vector (previously
allowed only with gating covariates &- noise.gate=TRUE).
- Speed improvements by replacing
matrixStats::rowLogSumExpswith newlogsumexp&softmax
 functions frommclust(w/mclust (>= 6.1)now ensured inImports:) where appropriate throughout.
- stats::lm.wfit-related speed-ups from previous update
now extend to- MoE_gpairswith- scatter.type="lm".
- Further related minor speed-ups for models with G == 0andG == 1.
Bug Fixes & Miscellaneous
Edits
- Additional minor fixes to MoE_gpairs:
- Subsetting is now allowed to result in only one single panel.
- Additional edits in relation to diag.pars$show.dens:
- show.dens=TRUEnow works properly when- subset$data.indis used.
- The expert.covararg. is no longer invoked whenshow.dens=TRUE.
- Fixed (i.e. increased) height of diagonal panels when
show.dens=TRUE&/orshow.hist=TRUE.
 
- Additional edits in relation to barcode panels:
- Partially fixed dimensions of vertical panels when
conditional="barcode"
 (caution still advised when using RStudio’s “Plots” pane if
non-square).
- Barcode panels now have colour throughout (previously only
MAP-related panels),
 with related minor fixes whenbarcode.pars$use.points=TRUE.
 
- Minor label-related adjustments:
- Outer labels of mosaic panels are now correct when
diagonal=FALSE.
- Cosmetic adjustments to default orientation of labels matching
categorical variable levels.
- density.pars$show.labels="mixed"now works
properly.
 
- Many documentation improvements & clarifications.
 
- Minor fixes in relation to MoECriterionobjects andMoE_plotCrit:
- Bug fix in relation to non-finite values for direct plots of
MoECriterionobjects, e.g.plot(x$BIC).
- crit="loglik"formerly erroneously produced the same
plot as- crit="aic".
- New critoptions"df"&"iters"added.
 
- Fixed bugs when a ‘soft’ z.listis supplied whenalgo != "EM".
- MoE_estep&- MoE_cstepnow work when
there is only one observation, with a related
 fix to- predict.MoEClust(..., use.y=TRUE)when predicting
only one observation.
- Fixed extremely rare bug in MoE_clust& associatedpredict,fitted, &residualsmethods
 whenalgo="CEM"and a model has only one
observation/prediction assigned to its noise component.
- Fixed minor bug when as.Mclustis used withexpert.covar=TRUEfor multivariate models
 with expert network covariates and subsequently used to produce
density-related plots.
- Additional minor documentation improvements.
MoEClust
v1.5.2 - (17th release [patch update]:
2023-12-10)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- Massive speed-ups for models w/ expert covariates by replacing
stats::lmw/stats::lm.wfit:
 returned output inx$expertis still formatted as perstats::lm.
- Semi-related fixes to expert & gating network output for models
w/ no covariates in those parts:
 coefficients now accurately reflect corresponding estimates of means
& mixing proportions
 (especially for models with a noise component &/orequalPro=TRUE).
- MoE_entropyand- MoE_AvePPboth gain the
arg.- groupfor computing the average entropies
 and posterior probabilities of each component, respectively: defaults to- FALSE, i.e. old behaviour.
- Added FARIfor computing the Frobenius (adjusted) Rand
index between two soft &/or hard partitions.
- Fixed bug in as.Mclustfor models w/ gating &
expert covariates whenexpert.covar=TRUE.
- Extensive edits to avoid overheads introduced in
matrixStats (>= 1.0.0)+ related minor speed-ups.
- Now using newer CITATIONcommands & updatedLicense: GPL (>= 3).
MoEClust
v1.5.1 - (16th release [patch update]:
2022-12-19)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- New MoE_gpairsarg.diag.pars$show.dens=FALSEadded to toggle whether
 parametric density estimates are drawn over diagonal panels for each
response
 variable (with or without the underlying histograms; see
documentation).
- New function MoE_Similarityadded and integrated intoplot.MoEClust.
- New function MoE_AvePPadded.
- Minor speed-ups to MoE_mahalafor univariate data with
(default)identity=FALSE.
MoEClust
v1.5.0 - (15th release [minor update]:
2022-03-28)
Significant User-Visible
Changes
- Checks/fixes for empty components extended to components w/
<=1observations (or equivalent):
 important — some rare cases which previously would not
converge will now converge!
- Fixed significant bugs related to
exp.init$malanabis=TRUE(the default) introduced in
v1.4.1,
 important — restored correct behaviour, especially when
multiplemodelNamesare being fitted!
New Features &
Improvements
- New function MoE_entropyadded.
- Added summary(and relatedprint) methods
forMoECriterionobjects.
- Minor speed-up to E-step for "EEE"&"VVV"models.
Bug Fixes & Miscellaneous
Edits
- Allowed G=0:XinMoE_clustwithout adding
noise forG>0, unless
 specifying models w/ noise, undoing another bug introduced in
v1.4.1.
- Fixed minor bug when supplying modelNameswhenG=1only.
- Fixed check on validity of hc.metharg. inMoE_control.
- Minor documentation clarifications re: z.listinMoE_control.
MoEClust
v1.4.2 - (14th release [patch update]:
2021-12-19)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- MoE_mahalaarg.- identity(& related- MoE_control- exp.init$identityoption) is now
also
 relevant for univariate data: old behaviour is retained via respective
defaults of- FALSE&- TRUEfor
 multivariate & univariate data (i.e. only ability to set- identity=FALSEfor univariate data is new).
- Fixed MoE_clustbug whentau0is specified
butGis not (introduced in last update).
- Minor speed-up to MoE_gpairs(response.type="density")w/ expert covariates & noise component.
- MoE_gpairsarg.- density.pars$grid.sizenow
recycled as vector of length 2 if supplied as scalar.
- aitkennow returns- ldiff, the difference
in log-likelihood estimates used for the stopping criterion.
- sapplyreplaced with- vapply, with other
negligible speed-ups.
MoEClust
v1.4.1 - (13th release [patch update]:
2021-10-12)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- Various further fixes to MoE_stepwise:
- Added the arg. fullMoE(defaulting toFALSE) which allows restricting the search to “full”
 MoE models where the same set of covariates appears in both the gating
& expert networks.
- When initialModel/initialGis given, the"all"option fornoise.gate&equalPro
 now reverts to"both"whenever"all"would
unnecessarily duplicate candidate models.
- Small speed-up if gating&/orexperthave covariates that are already ininitialModel.
- Small speed-up by searching G=1equalPromodels w/ expert covariates only once.
- Two fixes to handle how initialModelandmodelNamesinteract:
- It’s now assumed (else warned) that initialModelshould
be optimal w.r.t. model type.
- The supplied modelNamesare augmented withinitialModel$modelNameif needs be.
 
 
- MoE_controlgains the arg.- exp.init$estartso the paper’s Algorithm 1 can work as intended:
 - exp.init$estarttoggles the behaviour of- init.z="random"in the presence of expert covariates
 when- exp.init$mahalanobis=TRUE&- nstarts > 1: when- FALSE(the default/old
behaviour), all
 random starts are put through the initial reallocation routine and then
subjected to full runs of the EM;
 when- TRUE, only the single best random start obtained from
this routine is subjected to the full EM.
- Handled name mismatches for optional args. w/ list(...)defaults inMoE_control/MoE_gpairs.
- Fixed printing of noise.gateinMoE_compareforG=1models w/ noise &
gating covariates.
- Improved checks on GinMoE_clust.
MoEClust
v1.4.0 - (12th release [minor update]:
2021-06-21)
New Features &
Improvements
- Various edits to MoE_stepwise()(thanks, in part, to
requests from Dr. Konstantinos Perrakis):
- Added initialModelarg. for specifying an initial model
from which to begin the search,
 which may already be a mixture and may already include covariates,
etc.
- Added initialGarg. as a simpler alternative when the
only available
 prior information is on the number of components.
- Added stepGarg. (defaults toTRUE) for
fixing the number of components
 & searching only over different covariate configurations (i.e. whenFALSE).
- Speedups by preventing superfluous searches for equal
 mixing proportion models when there are gating covariates.
- noise.gatearg. now also invoked when adding components
to models with gating covariates
 & a noise component (previously only when adding gating covariates
to models with noise).
- equalPro&- noise.gateargs. gain new
default- "all"(see documentation for details).
- Stronger checks on network.dataargument.
 
- New methods and edits related to prediction:
- Added fittedmethod for"MoEClust"objects
(a wrapper topredict.MoEClust).
- Added predict,fitted, &residualsmethods for"MoE_gating"objects,
i.e.x$gating.
- Added predict,fitted, &residualsmethods for"MoE_expert"objects,
i.e.x$expert.
- Minor edits to predict.MoEClustfor models without
expert network covariates.
- Minor fixes to returned x$gatingobject forequalPro=TRUEmodels with a noise component.
 
- Various edits & documentation improvements to
MoE_gpairs:
- Fixes to ellipses for models with expert covariates due to fix to
expert_covar(see below).
- mosaic.parsgains logical arg.- mfill=TRUE,
to toggle between filling select tiles with colour
 (new default behaviour), or outlining select tiles with colour (old
behaviour).
- boxplot.parsarg. added to allow customising boxplot
and violin plot panels,
 with related fixes to colourisation in upper-triangular panels.
- Fixes re: scatter.pars$eci.col: now governs colours of
ellipses and regression lines.
- scatter.pars$uncert.pchadded; now plotting symbols in
covariate-related scatterplots
 are only modified in- response.type="uncertainty"plots when- uncert.covis- TRUE.
- Fixes to axis labels for diagonal panels involving factors.
- Various colour-related args. now inherit sensible defaults if
scatterplot colours are specified.
 
- expert_covargains the arg.- weightedto
ensure cluster membership probabilities are properly
 accounted for in estimating the extra variability due to the component
means: defaults to- TRUE,
 but- weighted=FALSEis provided as an option for recovering
the old (not recommended) behaviour.
- Minor speed-up to initialisation for univariate response data with
expert network covariates.
- Minor speed-ups to some other utility functions.
Bug Fixes & Miscellaneous
Edits
- A warning message is now printed if the MLR in the gating network
ever fails to converge,
 prompting the user to modify theitmaxarg. toMoE_control: the 3rd element of this arg.
governs
 the maximum number of MLR iterations — consequently, its default has
been modified from100to
 1000(thanks to a prompt from Dr. Georgios Karagiannis),
which has the effect of slowing down
 internal calls tonnet::multinombut generally reduces the
required number of EM iterations.
- Minor fix to MoE_comparewhenever the optimal model
needs to be refitted.
- Fixed conflict between mclust::as.Mclust&MoEClust::as.Mclust:
 as.Mclust.MoEClustnow works regardless of order in whichmclust&MoEClustare loaded.
- Stronger checks for variables in gating&expertformulas which are not found innetwork.data.
- Minor documentation, vignette, and vignette styling edits.
MoEClust
v1.3.3 - (11th release [patch update]:
2020-12-29)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- Minor MoE_stepwisespeed-ups by avoiding duplication of
initialisation for certain steps.
- Minor fix to MoE_stepwisefor univariate data sets
without covariates.
- Prettier axis labels for MoE_uncertaintyplots.
- Minor CRAN compliance edits to the vignette.
MoEClust
v1.3.2 - (10th release [patch update]:
2020-11-17)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- New MoE_controlarg.posidens=TRUEensures
code no longer crashes when observations
 have positive log-density: previous behaviour is recoverable by settingposidens=FALSE.
- MoE_controlgains the arg.- asMclust(- FALSE, by default) which modifies the
 - stoppingand- hcUsearguments such that- MoEClustand- mclustbehave similarly
 for models with no covariates in either network (thanks to a
request from Prof. Kamel Gana).
- Fixes to plotting colours & symbols in MoE_gpairs(thanks to Dr. Natasha De Manincor):
- Corrected mosaic panels (colours).
- Accounted for empty clusters in all panels (colours &
symbols).
 
- Fixed bug in predict.MoEClustwhen nonewdatais supplied to models with no gating
covariates.
- MoE_clust&- MoE_stepwisenow coerce- "character"covariates to- "factor"(for later
plotting).
- Further improvements to summarymethod forMoE_expertobjects.
- Fixes to print&summarymethods forMoE_gatingobjects ifG=1orequalPro=TRUE.
- Additional minor edits to MoE_plotGate.
- print.MoEComparegains the args.- maxi,- posidens=TRUE, &- rerank=FALSE.
- Ensured lattice (>= 0.12),matrixStats (>= 0.53.1), &mclust (>= 5.4)inImports:.
- Ensured clustMD (>= 1.2.1)andgeometry (>= 0.4.0)inSuggests:.
- Use of NCOL/NROWwhere appropriate.
- Package startup message now checks if newer version of package is
available from CRAN.
- Updated citation info after publication in Advances in Data
Analysis and Classification.
- Updated maintainer e-mail address.
- Minor documentation, examples, and CRAN compliance +
mclustcompatibility edits.
MoEClust
v1.3.1 - (9th release [patch update]:
2020-05-12)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- Maintenance release for compatibility with R 4.0.0 - minor
edits.
- summary.MoEClustgains the printing-related arguments- classification=TRUE,
 - parameters=FALSE, and- networks=FALSE(thanks
to a request from Prof. Kamel Gana).
- Related improvements to print/summarymethods forMoE_gating&MoE_expertobjects.
- Minor speed-up for G=1models with expert network
covariates.
- Improvements to MoE_plotGate, with newtype,pch, andxlabdefaults.
- Added informative dimnamesto returnedparametersfromMoE_clust().
- Documentation, vignette, examples, and references improvements.
MoEClust
v1.3.0 - (8th release [minor update]:
2020-03-30)
New Features &
Improvements
- Various fixes and improvements to initialisation when there are
expert network covariates:
- MoE_mahalanow correctly uses the covariance of- residsrather than the response.
- New MoE_mahalaarg.identityallows use of
Euclidean distance instead:
 this argument can also be passed viaexp.init$identitytoMoE_control.
- Convergence of the initialisation procedure now explicitly monitored
& sped-up.
- Values of the criterion being minimised are now returned as an
attribute.
- The number of iterations of the initialisation algorithm are also
returned as an attribute.
- MoE_controlarg.- exp.init$max.initnow
defaults to- .Machine$integer.max.
- Improved checks on the residsarg. toMoE_mahala.
- Greatly expanded the MoE_mahalaexamples.
 
- Improvements to predict.MoEClust:
- Now returns the predicted values of the gating and expert
networks.
- Now returns the predictions from the expert network of the most
probable component
 (MAPy), in addition to the (aggregated) predicted responses
(y).
- New arg. MAPresidsgoverns whether residuals are
computed againstMAPyory.
- New arg. use.y(see documentation for details).
- Now properly allows empty newdatafor models with no
covariates of any kind.
- Fixed prediction for equal mixing proportion models when
discard.noise=FALSE.
 
- Odds ratios now returned (and printed) when calling
summaryonx$gating.
Bug Fixes & Miscellaneous
Edits
- Fixed small MoE_stepwisebugs when
- only one of gatingorexpertare
supplied.
- univariate response dataare supplied.
- moving from G=1 to G=2 with equal mixing proportions and no
covariates.
- discarding covariates present in the response data.
 
- noise_volnow returns correct location for univariate
data when- reciprocal=TRUE.
- Spell-checking of documentation and fixes to donttestexamples.
MoEClust
v1.2.4 - (7th release [patch update]:
2019-12-11)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- Fixed small bugs in MoE_stepwise:
- Improved checks on network.dataanddata.
- Prevented z.listfrom being suppliable.
 
- Fixes whenequalPro="yes"&noise=TRUE.
- Fixes for supplying optional MoE_controlarguments
(also forMoE_clust).
- Prevented termination if adding a component fails,
 provided at least one other step doesn’t fail.
 
- Fixed discard.noise=TRUEbehaviour forMoE_clust,predict.MoEClust, &
 residuals.MoEClustfor models with a noise component fitted
via"CEM".
- Minor fixes to noise_volfunction and handling ofnoise.metharg. toMoE_control.
- Slight speed-up to E-step/C-step for models with a noise
component.
- Initial allocation matrices now stored as attributes to
MoE_clustoutput (see?MoE_control).
- Anti-aliasing of vignette images.
- Updated citation info after online publication in Advances in
Data Analysis and Classification.
MoEClust
v1.2.3 - (6th release [patch update]:
2019-07-29)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- Exported function MoE_stepwisefor conducting a greedy
forward stepwise
 search to find the optimal model in terms of the number of components,
GPCM
 covariance parameterisation, and the subsets of gating/expert network
covariates.
- MoE_control&- predict.MoEClustgain
the arg.- discard.noise:
 Default of- FALSEretains old behaviour (see documentation
for details).
- MoE_controlgains the arg.- z.listand the- init.zarg. gets the option- "list":
 this allows manually supplying (soft or hard) initial cluster allocation
matrices.
- New args. and small fixes added to MoE_gpairs:
- uncert.covarg. added to control uncertainty point-size
in panels with covariates.
- density.parsgains arg.- label.style.
- scatter.pars&- stripplot.parsgain
args.- noise.size&- size.noise.
- barcode.pars$bar.colslightly fixed from previous
update.
- Colours for "violin"type plots now accurate for MAP
panels.
 
- Slight speed-up to noise_volwhenmethod="ellipsoidhull".
- Small fix to predict.MoEClustwhenresid=TRUEfor models with expert covariates.
- Small fix related to ...construct forresiduals.MoEClust.
- All printing related to noise-only models no longer shows the model
name (there is none!).
- Other small fixes to print.MoEClust,print.summary_MoEClust, &print.MoECompare.
- Cosmetic fix to returned gatingobjects forequalPro=TRUEmodels.
- Removed parallelpackage fromSuggests:.
MoEClust
v1.2.2 - (5th release [patch update]:
2019-05-15)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- noise_volnow also returns the location of the centre
of mass of the region
 used to estimate the hypervolume, regardless of the method employed.
This fixes:- 
- predict.MoEClustfor any models with a noise component
(see below).
- The summary of means for models with expert covariates and a noise
component.
- The location of the MVN ellipses for such models in
MoE_gpairs(see below).
 
- Furthermore, calculation of the hypervolume in
noise_volfor data with >2 dimensions
 is now correct whenmethod="ellipsoidhull", owing to a bug
in theclusterpackage.
- Other fixes and speed-ups for the MoE_gpairsplotting
function:
- Added arg. expert.covar(& also toas.Mclustfunction).
- Fixed location of MVN ellipses for models with noise & expert
covariates (see above).
- Fixes when response.type="density"for all models with
a noise component.
- Speed-up when response.type="density"for models with
covariates of any kind.
- Fixes to labelling for models with a noise component.
- Fixed handling of subset$data.ind&subset$cov.indarguments.
- Barcode type plots now have colour for panels involving the MAP
classification.
- Barcode type plots now respect the arg. buffer.
- Use of colour in MoE_plotGateis now consistent withMoE_gpairs.
 
- Fixes to how gating&expertformulas
are handled:
- Allowed specification of formulas with dropped variables of the form
~.-a-b.
- Allowed formulas with no intercept of the form
~c-1.
- Allowed interaction effects, transformations and higher-order terms
using I().
- Small related fixes to drop_levels&drop_constantsfunctions.
 
 
- MoE_comparegains arg.- noise.volfor
overriding the- noise.metharg.:
 this allows specifying an improper uniform density directly via the
(hyper)volume,
 & hence adding noise to models for high-dimensional data for which- noise_vol()fails.
- Fixed bug for equalPromodels with noise component, and
also addedequalNoisearg.
 toMoE_control, further controllingequalProin the presence of a noise component.
- Fixes to predict.MoEClustfor the following special
cases:
- Fixes for any models with a noise component (see
noise_volcomment above).
- Accounted for predictions of single observations for models with a
noise component.
- Accounted for models with equal mixing proportions.
 
- Accounted for categorical covariates in the x.axisarg.
toMoE_plotGate.
- tau0can now also be supplied as a vector when gating
covariates are used &- noise.gate=TRUE.
- Fix to expert_covarfor univariate models.
- Slight MoE_estepspeed-up due to removal of unnecessarysweep().
- Small fixes for when clustMDis invoked, and addedsnowpackage toSuggests:.
- The nnetarg.MaxNWtsnow passable to
gating networkmultinomcall viaMoE_control.
- Improved printing of output and handling of ties, especially for
MoE_compare.
- Many documentation and vignette improvements.
MoEClust
v1.2.1 - (4th release [patch update]:
2018-12-11)
New
Features, Improvements, Bug Fixes, & Miscellaneous Edits
- New MoE_controlarg.algoallows model
fitting using the"EM"or"CEM"algorithm:
- Related new function MoE_cstepadded.
- Extra algooption"cemEM"allows running
EM starting from convergence of CEM.
 
- Added LOGLIKtoMoE_clustoutput, giving
maximal log-likelihood values for all fitted models.
- Behaves exactly as per DF/ITERS, etc., with associated
printing/plotting functions.
- Edited MoE_compare,summary.MoEClust,
&MoE_plotCritaccordingly.
 
- New MoE_controlarg.nstartsallows for
multiple random starts wheninit.z="random".
- New MoE_controlarg.tau0provides another
means of initialising the noise component.
- If clustMDis invoked for initialisation, models are
now run more quickly in parallel.
- MoE_plotGatenow allows a user-specified x-axis against
which mixing proportions are plotted.
- Fixed bug in checking for strictly increasing log-likelihood
estimates.
MoEClust
v1.2.0 - (3rd release [minor update]:
2018-08-24)
New Features &
Improvements
- New predict.MoEClustfunction added: predicts cluster
membership probability,
 MAP classification, and fitted response, using only new covariates or
new covariates &
 new response data, with noise components (and thenoise.gateoption) accounted for.
- New plotting function MoE_Uncertaintyadded (callable
withinplot.MoEClust):
 visualises clustering uncertainty in the form of a barplot or an ordered
profile plot,
 allowing reference to be made to the true labels, or not, in both
cases.
- Specifying response.type="density"toMoE_gpairsnow works properly for models with
 gating &/or expert network covariates. Previous approach which
evaluated the density using
 averaged gates &/or averaged means replaced by more computationally
expensive but correct
 approach, which evaluates MVN density for every observation individually
and then averages.
- Added clustMDpackage toSuggests:. NewMoE_controlargumentexp.init$clustMD
 governs whether categorical/ordinal covariates are also incorporated
into the initialisation
 whenisTRUE(exp.init$joint)&clustMDis
loaded (defaults toFALSE, works with noise).
- Added drop.breakarg. toMoE_controlfor
further control over the extra initialisation
 step invoked in the presence of expert covariates (see Documentation for
details).
- Sped-up MoE_densfor theEEE&VVVmodels by using already available Cholesky
factors.
- Other new MoE_controlarguments:
- km.argsspecifies- kstarts&- kiterswhen- init.z="kmeans".
- Consolidated args. related to init.z="hc"& noise
intohc.args&noise.args.
- hc.argsnow also passed to call to- mclustwhen- init.z="mclust".
- init.crit(- "bic"/- "icl")
controls selection of optimal- mclust/- clustMD
 model type to initialise with (if- init.z="mclust"or- isTRUE(exp.init$clustMD));
 relatedly, initialisation now sped-up when- init.z="mclust".
 
Bug Fixes & Miscellaneous
Edits
- ITERSreplaces- itersas the matrix of the
number of EM iterations in- MoE_clustoutput:- 
- itersnow gives this number for the optimal model.- 
- ITERSnow behaves like- BIC/- ICLetc. in inheriting the- "MoECriterion"class.
 
- itersnow filters down to- summary.MoEClustand the associated printing function.
 
- ITERSnow filters down to- MoE_compareand
the associated printing function.
 
 
- Fixed point-size, transparency, & plotting symbols when
response.type="uncertainty"
 withinMoE_gpairsto better conform tomclust:
previously no transparency.
- subsetarg. to- MoE_gpairsnow allows- data.ind=0or- cov.ind=0, allowing plotting
of
 response variables or plotting of the covariates to be suppressed
entirely.
- Clarified MVN ellipses in MoE_gpairsplots.
- sigsarg. to- MoE_dens&- MoE_estepmust now be a variance object, as per- variance
 in the parameters list from- MoE_clust&- mclustoutput, the number of clusters- G,
 variables- d&- modelNameis inferred from
this object: the arg.- modelNamewas removed.
- MoE_clustno longer returns an error if- init.z="mclust"when no gating/expert network
 covariates are supplied; instead,- init.z="hc"is used to
better reproduce- mclustoutput.
- resid.datanow returned by- MoE_clustas a
list, to better conform to- MoE_dens.
- Renamed functions MoE_aitken&MoE_qclasstoaitken&quant_clust, respectively.
- Rows of dataw/ missing values now dropped for
gating/expert covariates too (MoE_clust).
- Logical covariates in gating/expert networks now coerced to
factors.
- Fixed small bug calculating linfwithinaitken& the associated stopping criterion.
- Final linfestimate now returned for optimal model whenstopping="aitken"& G > 1.
- Removed redundant extra M-step after convergence for models without
expert covariates.
- Removed redundant & erroneous resid&residualsargs. toas.Mclust&MoE_gpairs.
- MoE_plotCrit,- MoE_plotGate&- MoE_plotLogLiknow invisibly return relevant
quantities.
- Corrected degrees of freedom calculation for G=0models
whennoise.initis not supplied.
- Fixed drop_levelsto handle alphanumeric variable names
and ordinal variables.
- Fixed MoE_comparewhen a mix of models with and without
a noise component are supplied.
- Fixed MoE_comparewhen optimal model has to be re-fit
due to mismatchedcriterion.
- Fixed y-axis labelling of MoE_Uncertaintyplots.
- print.MoEComparenow has a- digitsarg. to
control rounding of printed output.
- Better handling of tied model-selection criteria values in
MoE_clust&MoE_compare.
- Interactions and higher-order terms are now accounted for within
drop_constants.
- Replaced certain instances of is.list(x)withinherits(x, "list")for stricter checking.
- Added extra checks for invalid gating &/or expert covariates
within MoE_clust.
- Added mclust::clustCombi/clustCombiOptimexamples toas.Mclustdocumentation.
- Added extra precautions for empty clusters: during initialisation
& during EM.
- Added utility function MoE_newsfor accessing thisNEWSfile.
- Added message if optimum Gis at either end of the
range considered.
- Tidied indentation/line-breaks for
cat/message/warningcalls for
printing clarity.
- Added line-breaks to usagesections of multi-argument
functions.
- Corrected MoEClust-packagehelp file (formerly justMoEClust).
- Many documentation clarifications.
MoEClust
v1.1.0 - (2nd release [minor update]:
2018-02-06)
New Features &
Improvements
- MoE_controlgains the- noise.gateargument
(defaults to- TRUE): when- FALSE,
 the noise component’s mixing proportion isn’t influenced by gating
network covariates.
- x$parameters$meanis now reported as the posterior mean
of the fitted values when
 there are expert network covariates: when there are no expert
covariates, the posterior
 mean of the response is reported, as before. This effects the centres of
the MVN ellipses
 in response vs. response panels of- MoE_gpairsplots when
there are expert covariates.
- New function expert_covarused to account for
variability in the means, in the presence
 of expert covariates, in order to modify shape & size of MVN
ellipses in visualisations.
- MoE_controlgains the- hcUseargument
(defaults to- "VARS"as per old- mclustversions).
- MoE_mahalagains the- squaredargument +
speedup/matrix-inversion improvements.
- Speed-ups, incl. functions from matrixStats(on whichMoEClustalready depended).
- The MoE_gpairsargumentaddEllipsesgains
the option"both".
Bug Fixes & Miscellaneous
Edits
- Fixed bug when equalPro=TRUEin the presence of a noise
component when there are
 no gating covariates: now only the mixing proportions of the non-noise
components
 are constrained to be equal, after accounting for the noise
component.
- MoE_gpairsargument- scatter.typegains the
options- lm2&- ci2for further
control
 over gating covariates. Fixed related bug whereby- lm&- citype plots were being
 erroneously produced for panels involving pairs of continuous covariates
only.
- Fixed bugs in MoE_mahalaand in expert network
estimation with a noise component.
- G=0models w/ noise component only can now be fitted
without having to supply- noise.init.
- MoE_comparenow correctly prints noise information for
sub-optimal models.
- Slight edit to criterion used when stopping="relative":
now conforms tomclust.
- Added check.margin=FALSEto calls tosweep().
- Added call.=FALSEto allstop()messages.
- Removed dependency on the gridlibrary.
- Many documentation clarifications.
MoEClust v1.0.0 -
(1st release: 2017-11-28)