MEDseq:
Mixtures of Exponential-Distance Models with Covariates (original) (raw)
MEDseq v1.4.2 - (13th release [patch update]: 2025-03-10)
Improvements, Bug Fixes & Miscellaneous Edits
- Many adjustments to
plot.MEDseq:MEDseq_clustnamesgains theMAP=FALSEarg., for use whensize=TRUE: this is now used by
plot.MEDseq(wheresoft=FALSEcorresponds toMAP=TRUE) when bothSPS&sizeareTRUE.TraMineRtypey-axis labels now properly account for all combinations ofsoft&weighted,
particularly whensubsetis invoked &/ortype="ms", with additional minor fixes tosubsetarg.type="ms"can now show noise component’s modal sequence by settingsubsetappropriately,
but not by default as the model does not estimate modal sequences for noise components.- The
MEDseq_clustnamesarg.clustercan now also be passed via...whenSPS=TRUE. - Allowed new
TraMineRarg.col.entrto be passed via...whentype="Ht"ortype="dH".
- Minor fixes in relation to
MEDseq_controlarg.tau0:tau0can now always be supplied as a vector (previously allowed only withnoise.gate=TRUE).- Related bug fix when
tau0is supplied as a vector withnoise.gate=TRUE. - Related initialisation bug fix when
tau0 != 0.5(the implied default) forG=2models with noise.
MEDseq_controlgains newinit.zoption"soft.random":- The
"random"option has been renamed to"random.hard", but
init.z="random"will work as before due to partial matching. - Related bugs when a ‘soft’
z.listis used withalgo != "EM"are also fixed.
- The
MEDseq_fitnow checks for and terminates in the presence of both types of missingness
as per newTraMineRfunctionseqhasmiss, i.e. now also accounts for void values.plot.MEDcriterionadded as a wrapper toplot.MEDseqwith relatedtype, for convenience:
for example,plot(x$BIC)is now equivalent toplot(x, type="bic").- Experimental
MEDseq_controlarg.dist.matno longer governs ASW calculations: it still defaults
to a Hamming distance matrix but now allows only for_initialisation_ to be based on other distances. - Detecting modal sequence ties is now handled properly for alphabets of size greater than 9.
- Minor E-step speed-ups for
"CU","CUN","UU", &"UUN"models for clusters with only one observation. - Additional minor speed-ups for unweighted models with
G=1. print.MEDseqnow works again for all models withG=1.- Further minor speed-ups to various utility functions using
vapplyin place oftapply. - Ensured
TraMineR (>= 2.2-10)inDESCRIPTIONImports:field due tocol.entr&seqhasmiss. - Many additional minor documentation improvements.
MEDseq v1.4.1 - (12th release [patch update]: 2023-12-12)
Improvements, Bug Fixes & Miscellaneous Edits
- Minor fixes to
plot.MEDseq:sortvoptions"from.start"and"from.end"borrowed fromTraMineRwhen
seriatedis"observations"or"both"for the"clusters","i", &"I"typeplots.- Seriation is now explicitly prohibited when
type="gating"when:
* models contain no gating covariates: previously an error was returned in such cases.
*x.axisis supplied via the...construct. - Removed spurious warnings in
TraMineRtypeplots when using extra args. via.... - Remedied labelling issues introduced in previous update when
seriated="none"is supplied.
MoE_entropyandMoE_AvePPboth gain the arg.groupfor computing the average entropies
and posterior probabilities of each component, respectively: defaults toFALSE, i.e. old behaviour.- Now following proper convention for reexporting
TraMineR::seqdef. - Extensive edits to avoid overheads introduced in
matrixStats (>= 1.0.0)+ related minor speed-ups. - Now using newer
CITATIONcommands & updatedLicense: GPL (>= 3).
MEDseq v1.4.0 - (11th release [minor update]: 2022-12-20)
New Features & Improvements
- Function
seqdefadded as an exact copy ofTraMineR::seqdef, to enable experienced
users ofMEDseq&TraMineRto use the former without needing to explicitly load the latter. MEDseq_clustnamesgains the arg.weighted=FALSEfor use whensize=TRUE:
this is now respected by theweightedarg. toplot.MEDseqwhere relevant.- New function
dist_freqwHadded for calculating pairwise dissimilarity matrix associated withwKModes(..., freq.weighted=TRUE)for subsequent use (e.g. silhouettes). - The
plot.MEDseqfunction’stypearg. gains the option"dH",
provided version2.2-4or later of theTraMineRpackage is installed. plot.MEDseqalso gains the"similarity"option for itstypeargument.- New function
MEDseq_AvePPadded.
Bug Fixes & Miscellaneous Edits
wKModesnow also returnsx$tot.withindiff(i.e.sum(x$withindiff)).- Minor speed-ups to
wKModeswhenfreq.weighted=TRUE. - Minor cosmetic changes to
type="dbsvals"&type="aswvals"inplot.MEDseq. - Minor speed-ups to
plot.MEDseqrelated to itsseriatedarg. inG=1settings. - Fixed rare bugs in tie-breaking for modal sequence estimate in
MEDseq_fit&wKModes. - Fixed documentation typos.
MEDseq v1.3.3 - (10th release [patch update]: 2022-03-28)
Improvements, Bug Fixes & Miscellaneous Edits
- Major speed-ups to E-steps for all model types when
G>1. - Minor speed-ups to distance calculations for all model types when
G>1. MEDseq_meantimegains themap.sizearg. and a relatedprintmethod.- Added
summary(and relatedprint) methods forMEDCriterionobjects. - New function
MEDseq_entropyadded. - Fixed mismatched plotting symbols for models with noise in model-selection criteria plot legends.
- Minor fix to handle (rare) empty components.
- Minor edits for compatibility w/ latest
TraMineRrelease w.r.t."mt"&"ms"plots.
MEDseq v1.3.2 - (9th release [patch update]: 2021-12-19)
Bug Fixes & Miscellaneous Edits
- Modifications to
WKModes(& thus relatedMEDseq_controlinit.z
options"kmodes"/"kmodes2"), by further alteringklaR::kmodes:- Ties for modes now broken randomly, using new
wKModesarg.random(defaults toTRUE). - All tie-breaks for cluster assignments now biased towards previous iteration’s assignments.
- Fixed rare bug when
modesis supplied as a number with aggregated data, e.g."kmodes2".
- Ties for modes now broken randomly, using new
MEDseq_fit& other functions now work for sequence alphabets of any size;
previously, only sequences with fewer than 10 states/categories were accommodated.- Minor fix to
dbsfunction when supplyingclusterswith a noise component. sapplyreplaced withvapply, with other negligible speed-ups.- Updated citation info after final publication in_JRSSA_.
MEDseq v1.3.1 - (8th release [patch update]: 2021-10-14)
Bug Fixes & Miscellaneous Edits
- Fixes for
init.zoptions"kmodes"&"kmodes2"inMEDseq_control, with new functionwKModes
provided for running the k-modes algorithm on weighted data: previously, k-modes initialisation
was only available for unweighted sequences via the now-replacedklaR::kmodesfunction
(consequently, theklaRpackage has been removed from theDESCRIPTIONSuggests:field). plot.MEDseqgains the arg.subset, for use with theTraMineRtypeplots:
allows plotting some but not all components, e.g. only the noise component (see documentation).- Fixed minor bug causing
MEDseq_fitto crash whenweightsare supplied andunique=FALSE. - Fixed ASW calculation when unweighted sequences are aggregated (i.e.
unique=TRUE, the default). - Fixed small bug for
type="ms"plots for models with a noise component whenSPS=TRUE. - Fixed printing of
noise.gateinMEDseq_compareforG=2models w/ noise & gating covariates. - Improved checks on
GinMEDseq_fit.
MEDseq v1.3.0 - (7th release [minor update]: 2021-07-15)
New Features & Improvements
plot.MEDseqgains a number of new arguments:softallows soft cluster membership probabilities to be used for the"d","f","Ht","ms",
&"mt"typeplots (default:soft=TRUE) + the"i"&"I"plots (default:soft=FALSE), in a
manner akin toWeightedCluster::fuzzyseqplot(): previously, all but the"ms"plot used the
hard MAP partition and discarded the soft assignment information (i.e.soft=FALSE, implicitly).sortvallows overriding thesmetharg. to instead order observations in certain plots
(whereseriatedis one of"observations"or"both") by the"dbs"or"asw"values;
additionally, and for consistency withWeightedCluster::fuzzyseqplot(),
sortv="membership"is provided forsoft=TRUEtype="I"plots.weighted(TRUE, by default) allows control over whether the weights (if any) are used;
relevant only for"d","f","Ht","i","I","ms", &"mt"typeplots.
- Exported
MEDseq_clustnames&MEDseq_nameclustsfunctions and addedSPSarg. toplot.MEDseq,MEDseq_meantime,MEDseq_stderr, & various/moreprint/summarymethods: now certain plots &
outputs can be (or are by default) labelled with the central sequences in SPS format, as per the paper. seriatedoptions"observations"&"both"can now be used for"i"type plots,
with related minor fixes for"i"&"I"type plots for weighted data with seriated observations.- Added
predict,fitted, &residualsmethods for"MEDgating"objects, i.e.x$gating. MEDseq_meantimegains the arg.wt.size(defaults toFALSE).- Minor speed-ups to model-fitting for
modtype="CU".
Bug Fixes & Miscellaneous Edits
- A warning message is now printed if the gating network’s MLR ever fails to converge, prompting users to
modify theitmaxarg. toMEDseq_control: the 2nd element of this arg. governs the maximum number of
MLR iterations — consequently, its default has been modified from100to1000, which is liable to slow
down internal calls tonnet::multinom, but generally reduces the required number of EM iterations. - Changes to default colour palettes & plotting symbols for certain plot types:
Suggests:packageviridisLitenow only invoked if available. - Minor fixes to returned
x$gatingobject, especially forequalPromodels
with a noise component and weighted models without any gating covariates at all. - Stronger checks to ensure
weightsarg. is explicitly supplied toMEDseq_fit
in cases where the"stslist"object passed viaseqshas the"weights"attribute. - Added error message to
MEDseq_fitwhen the number of states exceeds 9,
to better inform of this bug which will be rectified in future updates. - Fixed bug preventing inclusion of higher-order terms in
gatingformulas when there are duplicates. - Minor fixes to
get_MEDseq_resultsand how its optional args. are internally handled byplot.MEDseq. - Stronger checks for variables in
gatingformula which are not found incovars. type="mean"option renamed totype="central"inplot.MEDseq.type="ms"plots now work properly whenseriated="clusters"orseriated="both".- Removed some superfluous warnings for all but the
"mt"TraMineRtypeplots. - Fixed small bug in
MEDseq_meantimewhenMAP=FALSE. - Further robustifications to handle empty components.
- Minor fixes to
print.MEDseqfor models where DBS &/or ASW statistics weren’t computed. - Minor vignette edits and documentation clarifications.
- Updated citation info after online publication in_JRSSA_.
MEDseq v1.2.1 - (6th release [patch update]: 2020-12-29)
Bug Fixes & Miscellaneous Edits
- The
"d","f","Ht","i", &"I"plot types now properly account for sampling weights. - Layout and legend-placement has been improved for these same types of plots.
- Mimicking
TraMineRfurther,plot.MEDseqalso gains thetypeoptions"ms"&"mt". - Minor speed-ups associated with the
opti="medoid"setting. - Added ORCID iDs to DESCRIPTION.
- Minor CRAN compliance edits to the vignette.
MEDseq v1.2.0 - (5th release [minor update]: 2020-11-20)
Significant User-Visible Changes
- Corrected the parameter count penalty for the BIC, ICL, and AIC model selection criteria,
specifically, the count is now greater for the central sequence position estimates. - Hence,
criterion="bic"is now the default forMEDseq_control,MEDseq_compare, andget_MEDseq_results(previously"dbs"), with modifications toprint&summaryfunctions. - Non-noise components’ central sequence positions associated with precision parameters of zero
are now printed (print.MEDseqtheta) & plotted (plot.MEDseq(..., type="mean")) always:
thepreczeroargument has thus been removed from both functions.
New Features & Improvements
MEDseq_meantimegains two new arguments (see documentation for more details):weighted(default:TRUE, old:FALSE) allows the sampling weights to be used,
with or without the cluster assignment probabilities, in the computation of the weighted averages.prop(default:FALSE) divides the output whennorm=TRUEby the sequence length.
MEDseq_controlgains the arg.random=TRUE, governing tie-breaking of estimated central sequence
positions: old behaviour (always choosing the first candidate state) recoverable viarandom=FALSE.plot.MEDseqarg.quant.scale=FALSEreplaces old arg.log.scale: quantiles now used
to determine non-linear colour breakpoints when invoked withtype="precision".- Sped-up
init.z="kmedoids"initialisation viapamfor unweighted sequences, by using the
highest available value for thepamonceoption, based on theclusterpackage’s version number. init.zgains the options"kmodes"&"kmodes2", though only for _unweighted_sequences:
both require the newly suggestedklaR (>= 0.6-13)package.plot.MEDseqgains the arg.smeth, governing the seriation method to be used ("TSP", by default).- For weighted sequences,
init.z="kmedoids"is now itself initialised by Ward’s hierarchical clustering. - Significant speed-ups to computation of central sequences for all
optisettings (esp."mode"). - Added
SPSarg. (default=FALSE) toprint.MEDtheta&summary.MEDseq. dbsgains the optional/experimental arg.clusters- no change to default.
Bug Fixes & Miscellaneous Edits
- Various fixes to the
seriatedarg. toplot.MEDseq:- Arg. name changed from
seriateto avoid conflict with functionseriation::seriate. - Fixed
seriatedoptions"clusters"/"both"for models with no noise component. seriated="observations"(the default) now also works fortype="I"plots.seriated="clusters"now also works fortype="dbsvals"&type="aswvals"plots.
- Arg. name changed from
MEDseq_fitnow always internally normalises theweightsto sum to the sample size.- Minor fixes to properly account for weighted sequences &/or duplicates when
noise.gate=FALSE. - Minor fix to gathering of results to account for
noise.gate=FALSEwhenG=2. MEDseq_stderrnow respects thealgo,opti, &noise.gatesettings of the original model.MEDseq_comparenow returns & printsoptiinfo where relevant.- Fixes to
print&summarymethods forMEDgatingobjects ifequalPro=TRUE. MEDseq_fitnow coerces"character"covariates to"factor".- Minor fixes to
printmethod forMEDlambdaobjects also. - Additional minor edits to
plot.MEDseq(..., type="gating"). print.MEDseqComparegains the args.maxi&rerank=FALSE.- Minor speed-ups for
G=1models. - Added
viridisLite (>= 0.2.0)toSuggests:(forplot.MEDseq(..., type="precision")). - Ensured
matrixStats (>= 0.53.1)andTraMineR (>= 1.6)inImports:. - Package startup message now checks if newer version of package is available from CRAN.
- Significant vignette edits.
- Updated maintainer e-mail address.
- Minor documentation, examples, and CRAN compliance edits.
MEDseq v1.1.1 - (4th release [patch update]: 2020-05-12)
Bug Fixes & Miscellaneous Edits
- Maintenance release for compatibility with R 4.0.0 - minor edits.
summary.MEDseqgains the printing-related argumentsclassification=TRUE,parameters=FALSE, andgating=FALSE.x$params$lambdanow inherits theMEDlambdaclass,
with its ownprintmethod as perx$params$theta.x$params$taunow has informativedimnames.- Minor changes when supplying
x.axistoplot.MEDseq(..., type="gating"). - Documentation, vignette, examples, and references improvements.
- Added
rmarkdowntoSuggests:. - Reformatted package startup message.
MEDseq v1.1.0 - (3rd release [minor update]: 2020-03-30)
New Features, Improvements, & Bug Fixes
- Significant efficiency gains when ignoring duplicates in the presence of weights:
- before, unique cases were defined as unique sequence/covariates/weight combinations,
- now, cases with different weights that are otherwise duplicates are treated as duplicates.
MEDseq_stderris provided for computing the standard errors of the
coefficients for the covariates in the gating network via either the
weighted likelihood bootstrap or jackknife methods.- Small robustifications in the presence of empty components.
- Fixed
get_MEDseq_resultswhenwhat="MAP"and non-noise models are chosen. - Fixed bug related to the colours used in the vignette plots.
- Odds ratios now returned (and printed) when calling
summaryonx$gating. - Cosmetic fixes to
plot.MEDseqwhentype="clusters"for small sample sizes. - Other small cosmetic plotting & reference-formatting changes.
- Spell-checking of documentation and fixes to
donttestexamples.
MEDseq v1.0.1 - (2nd release [patch update]: 2019-12-10)
Bug Fixes & Miscellaneous Edits
- Speed-ups to E-step, especially for models with a noise component.
- Clarifications and improvements to documentation and examples.