Changes in version 2025-03-10 Improvements, Bug Fixes & Miscellaneous Edits - Many adjustments to plot.MEDseq: - MEDseq_clustnames gains the MAP=FALSE arg., for use when size=TRUE: this is now used by plot.MEDseq (where soft=FALSE corresponds to MAP=TRUE) when both SPS & size are TRUE. - TraMineR type y-axis labels now properly account for all combinations of soft & weighted, particularly when subset is invoked &/or type="ms", with additional minor fixes to subset arg. - type="ms" can now show noise component's modal sequence by setting subset appropriately, but not by default as the model does not estimate modal sequences for noise components. - The MEDseq_clustnames arg. cluster can now also be passed via ... when SPS=TRUE. - Allowed new TraMineR arg. col.entr to be passed via ... when type="Ht" or type="dH". - Minor fixes in relation to MEDseq_control arg. tau0: - tau0 can now always be supplied as a vector (previously allowed only with noise.gate=TRUE). - Related bug fix when tau0 is supplied as a vector with noise.gate=TRUE. - Related initialisation bug fix when tau0 != 0.5 (the implied default) for G=2 models with noise. - MEDseq_control gains new init.z option "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.list is used with algo != "EM" are also fixed. - MEDseq_fit now checks for and terminates in the presence of both types of missingness as per new TraMineR function seqhasmiss, i.e. now also accounts for void values. - plot.MEDcriterion added as a wrapper to plot.MEDseq with related type, for convenience: for example, plot(x$BIC) is now equivalent to plot(x, type="bic"). - Experimental MEDseq_control arg. dist.mat no 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.MEDseq now works again for all models with G=1. - Further minor speed-ups to various utility functions using vapply in place of tapply. - Ensured TraMineR (>= 2.2-10) in DESCRIPTION Imports: field due to col.entr & seqhasmiss. - Many additional minor documentation improvements. Changes in version 2023-12-12 Improvements, Bug Fixes & Miscellaneous Edits - Minor fixes to plot.MEDseq: - sortv options "from.start" and "from.end" borrowed from TraMineR when seriated is "observations" or "both" for the "clusters", "i", & "I" type plots. - Seriation is now explicitly prohibited when type="gating" when: - models contain no gating covariates: previously an error was returned in such cases. - x.axis is supplied via the ... construct. - Removed spurious warnings in TraMineR type plots when using extra args. via .... - Remedied labelling issues introduced in previous update when seriated="none" is supplied. - MoE_entropy and MoE_AvePP both gain the arg. group for computing the average entropies and posterior probabilities of each component, respectively: defaults to FALSE, 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 CITATION commands & updated License: GPL (>= 3). Changes in version 2022-12-20 New Features & Improvements - Function seqdef added as an exact copy of TraMineR::seqdef, to enable experienced users of MEDseq & TraMineR to use the former without needing to explicitly load the latter. - MEDseq_clustnames gains the arg. weighted=FALSE for use when size=TRUE: this is now respected by the weighted arg. to plot.MEDseq where relevant. - New function dist_freqwH added for calculating pairwise dissimilarity matrix associated with wKModes(..., freq.weighted=TRUE) for subsequent use (e.g. silhouettes). - The plot.MEDseq function's type arg. gains the option "dH", provided version 2.2-4 or later of the TraMineR package is installed. - plot.MEDseq also gains the "similarity" option for its type argument. - New function MEDseq_AvePP added. Bug Fixes & Miscellaneous Edits - wKModes now also returns x$tot.withindiff (i.e. sum(x$withindiff)). - Minor speed-ups to wKModes when freq.weighted=TRUE. - Minor cosmetic changes to type="dbsvals" & type="aswvals" in plot.MEDseq. - Minor speed-ups to plot.MEDseq related to its seriated arg. in G=1 settings. - Fixed rare bugs in tie-breaking for modal sequence estimate in MEDseq_fit & wKModes. - Fixed documentation typos. Changes in version 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_meantime gains the map.size arg. and a related print method. - Added summary (and related print) methods for MEDCriterion objects. - New function MEDseq_entropy added. - 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 TraMineR release w.r.t. "mt" & "ms" plots. Changes in version 2021-12-19 Bug Fixes & Miscellaneous Edits - Modifications to WKModes (& thus related MEDseq_control init.z options "kmodes"/"kmodes2"), by further altering klaR::kmodes: - Ties for modes now broken randomly, using new wKModes arg. random (defaults to TRUE). - All tie-breaks for cluster assignments now biased towards previous iteration's assignments. - Fixed rare bug when modes is supplied as a number with aggregated data, e.g. "kmodes2". - 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 dbs function when supplying clusters with a noise component. - sapply replaced with vapply, with other negligible speed-ups. - Updated citation info after final publication in JRSSA. Changes in version 2021-10-14 Bug Fixes & Miscellaneous Edits - Fixes for init.z options "kmodes" & "kmodes2" in MEDseq_control, with new function wKModes provided for running the k-modes algorithm on weighted data: previously, k-modes initialisation was only available for unweighted sequences via the now-replaced klaR::kmodes function (consequently, the klaR package has been removed from the DESCRIPTION Suggests: field). - plot.MEDseq gains the arg. subset, for use with the TraMineR type plots: allows plotting some but not all components, e.g. only the noise component (see documentation). - Fixed minor bug causing MEDseq_fit to crash when weights are supplied and unique=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 when SPS=TRUE. - Fixed printing of noise.gate in MEDseq_compare for G=2 models w/ noise & gating covariates. - Improved checks on G in MEDseq_fit. Changes in version 2021-07-15 New Features & Improvements - plot.MEDseq gains a number of new arguments: - soft allows soft cluster membership probabilities to be used for the "d", "f", "Ht", "ms", & "mt" type plots (default: soft=TRUE) + the "i" & "I" plots (default: soft=FALSE), in a manner akin to WeightedCluster::fuzzyseqplot(): previously, all but the "ms" plot used the hard MAP partition and discarded the soft assignment information (i.e. soft=FALSE, implicitly). - sortv allows overriding the smeth arg. to instead order observations in certain plots (where seriated is one of "observations" or "both") by the "dbs" or "asw" values; additionally, and for consistency with WeightedCluster::fuzzyseqplot(), sortv="membership" is provided for soft=TRUE type="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" type plots. - Exported MEDseq_clustnames & MEDseq_nameclusts functions and added SPS arg. to plot.MEDseq, MEDseq_meantime, MEDseq_stderr, & various/more print/summary methods: now certain plots & outputs can be (or are by default) labelled with the central sequences in SPS format, as per the paper. - seriated options "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, & residuals methods for "MEDgating" objects, i.e. x$gating. - MEDseq_meantime gains the arg. wt.size (defaults to FALSE). - 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 the itmax arg. to MEDseq_control: the 2nd element of this arg. governs the maximum number of MLR iterations --- consequently, its default has been modified from 100 to 1000, which is liable to slow down internal calls to nnet::multinom, but generally reduces the required number of EM iterations. - Changes to default colour palettes & plotting symbols for certain plot types: Suggests: package viridisLite now only invoked if available. - Minor fixes to returned x$gating object, especially for equalPro models with a noise component and weighted models without any gating covariates at all. - Stronger checks to ensure weights arg. is explicitly supplied to MEDseq_fit in cases where the "stslist" object passed via seqs has the "weights" attribute. - Added error message to MEDseq_fit when 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 gating formulas when there are duplicates. - Minor fixes to get_MEDseq_results and how its optional args. are internally handled by plot.MEDseq. - Stronger checks for variables in gating formula which are not found in covars. - type="mean" option renamed to type="central" in plot.MEDseq. - type="ms" plots now work properly when seriated="clusters" or seriated="both". - Removed some superfluous warnings for all but the "mt" TraMineR type plots. - Fixed small bug in MEDseq_meantime when MAP=FALSE. - Further robustifications to handle empty components. - Minor fixes to print.MEDseq for models where DBS &/or ASW statistics weren't computed. - Minor vignette edits and documentation clarifications. - Updated citation info after online publication in JRSSA. Changes in version 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 TraMineR further, plot.MEDseq also gains the type options "ms" & "mt". - Minor speed-ups associated with the opti="medoid" setting. - Added ORCID iDs to DESCRIPTION. - Minor CRAN compliance edits to the vignette. Changes in version 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 for MEDseq_control, MEDseq_compare, and get_MEDseq_results (previously "dbs"), with modifications to print & summary functions. - Non-noise components' central sequence positions associated with precision parameters of zero are now printed (print.MEDseqtheta) & plotted (plot.MEDseq(..., type="mean")) always: the preczero argument has thus been removed from both functions. New Features & Improvements - MEDseq_meantime gains 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 when norm=TRUE by the sequence length. - MEDseq_control gains the arg. random=TRUE, governing tie-breaking of estimated central sequence positions: old behaviour (always choosing the first candidate state) recoverable via random=FALSE. - plot.MEDseq arg. quant.scale=FALSE replaces old arg. log.scale: quantiles now used to determine non-linear colour breakpoints when invoked with type="precision". - Sped-up init.z="kmedoids" initialisation via pam for unweighted sequences, by using the highest available value for the pamonce option, based on the cluster package's version number. - init.z gains the options "kmodes" & "kmodes2", though only for unweighted sequences: both require the newly suggested klaR (>= 0.6-13) package. - plot.MEDseq gains 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 opti settings (esp. "mode"). - Added SPS arg. (default=FALSE) to print.MEDtheta & summary.MEDseq. - dbs gains the optional/experimental arg. clusters - no change to default. Bug Fixes & Miscellaneous Edits - Various fixes to the seriated arg. to plot.MEDseq: - Arg. name changed from seriate to avoid conflict with function seriation::seriate. - Fixed seriated options "clusters"/"both" for models with no noise component. - seriated="observations" (the default) now also works for type="I" plots. - seriated="clusters" now also works for type="dbsvals" & type="aswvals" plots. - MEDseq_fit now always internally normalises the weights to 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=FALSE when G=2. - MEDseq_stderr now respects the algo, opti, & noise.gate settings of the original model. - MEDseq_compare now returns & prints opti info where relevant. - Fixes to print & summary methods for MEDgating objects if equalPro=TRUE. - MEDseq_fit now coerces "character" covariates to "factor". - Minor fixes to print method for MEDlambda objects also. - Additional minor edits to plot.MEDseq(..., type="gating"). - print.MEDseqCompare gains the args. maxi & rerank=FALSE. - Minor speed-ups for G=1 models. - Added viridisLite (>= 0.2.0) to Suggests: (for plot.MEDseq(..., type="precision")). - Ensured matrixStats (>= 0.53.1) and TraMineR (>= 1.6) in Imports:. - 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. Changes in version 2020-05-12 Bug Fixes & Miscellaneous Edits - Maintenance release for compatibility with R 4.0.0 - minor edits. - summary.MEDseq gains the printing-related arguments classification=TRUE, parameters=FALSE, and gating=FALSE. - x$params$lambda now inherits the MEDlambda class, with its own print method as per x$params$theta. - x$params$tau now has informative dimnames. - Minor changes when supplying x.axis to plot.MEDseq(..., type="gating"). - Documentation, vignette, examples, and references improvements. - Added rmarkdown to Suggests:. - Reformatted package startup message. Changes in version 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_stderr is 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_results when what="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 summary on x$gating. - Cosmetic fixes to plot.MEDseq when type="clusters" for small sample sizes. - Other small cosmetic plotting & reference-formatting changes. - Spell-checking of documentation and fixes to donttest examples. Changes in version 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. Changes in version 2019-08-24