Skip to content
Compare
Choose a tag to compare

NEW FEATURES

  • Network models can now use predefined scenarios with the use_scenario function. See the Working with Model Parameters vignette for details.
  • The trim_netest function has been added to reduce netest object sizes in common use cases.
  • The networkLite class now supports some additional functionalities.
  • Duration = 1 time step models in netsim with tergmLite = FALSE now use tergm simulation to produce a networkDynamic class object, similar to the duration > 1 time step case.
  • netdx now supports heterogeneous dissolution model diagnostics. See the example in help("netdx").
  • plot.netsim now supports type = "duration","dissolution" for homogeneous ("edges-only") dissolution models.
  • Network model parameters can now be supplied to param.net via a data.frame. See the Working with Model Parameters vignette for details.
  • A new term fuzzynodematch was added, to support modeling of more generalized notions of homophily.
  • Network models can now be checkpointed to automate saving, recovering, and restarting simulations after interruption, as might occur with large-scale simulation jobs on high-performance computing (HPC) systems. See help("control.net).

BUG FIXES

  • EpiModel's custom terms absdiffby and absdiffnodemix are now usable again (due to enabling symbol search).
  • The correct formula is now used in sim_nets_t1 when initializing the network with the non-nested edges dissolution approximation approach in netest.
  • References to network class internals have been removed from net.utils.R to make the code function properly with networkLites.
  • update_dissolution now correctly handles duration 1 models.
  • get_edgelists and get_cumulative_edgelists now throw informative errors when the network refers to non-existing networks. get_partners and get_cumulative_edgelists_df will throw errors as well as they call those functions internally.

OTHER

  • The updater.net module was removed as an optional module but its functionalities are now the default behavior for all network models (built-in and custom).
  • The parameters param.updater.list and control.updater.list in param.net and control.net respectively were renamed .param.updater.list and .control.updater.list. The leading dot indicates that these are built-in EpiModel elements not to be confused with the user-defined ones.
  • Dissolution models using the nodefactor term have been deprecated.
  • stergm controls have been deprecated in favor of tergm controls.
  • Formula-style simulations are used consistently for both ergm and tergm simulation, requiring control arguments of class control.simulate.formula and control.simulate.formula.tergm.
  • ndtv is added to "Suggests" (again) and plot.transmat now accepts the transmissionTimeline in the style argument (again).
  • Systematic review and improvement of documentation across the package.
  • netest and netdx now have default control arguments following R's default argument mechanism.
  • Simulation names are now attached to netsim object fields produced via the save.other mechanism.
  • Imputed durational corrections for onset-censored edges are now sampled from a geometric distribution rather than simply using the mean of that distribution.
Compare
Choose a tag to compare

NEW FEATURES

  • Improved optional module updater.net allowing it to update the model controls as well as the parameters. See the vignette, "Working with model parameters."
  • General updates to the names and content of the included vignettes.

BUG FIXES

  • Fix dissolution model statistics calculations for netsim in the case with a model with an "end horizon" (when the network is not resimulated at the end of the time series).
  • Fix duplicate printing issues across print.netsim, print.param.net, and print.control.net.
  • Fix use of all.equal in unit tests as requested by CRAN.
  • Change defaults of newly introduced cumulative edgelist functionality to not store it (improves speed).
  • Allow set_attr for posit_ids to return unchanged dat object.

OTHER

  • We have changed the names of arguments from the function get_partners newly introduced in EpiModel v2.2.0: max.age is renamed to truncate for consistency with the other cumulative edgelist functions; only.active is renamed only.active.nodes to clarify that this argument subsets by nodes and not by partnerships.
Compare
Choose a tag to compare

NEW FEATURES

  • Developed a general approach to tracking and querying historical and contacts, called a cumulative edgelist. This may be used, for example, to query the recent but non-current contacts of newly infected nodes. See the vignette, "Working with network objects".
  • A create_dat_object helper function was added to standardize the creation of the core dat object within initialize.net.
  • The current timestep within netsim simulations is now stored in the dat object and accessible with get_current_timestep. This eliminates the need to explicitly pass at as a function argument, although that is still allowed.
  • Addition of the get_param_set function that extracts from a netsim object the set of parameters used by each simulation. See the help page: help("get_param_set").
  • Developed a mechanism to store nodal attribute history over the course of a netsim simulation. See the vignette, "Working with attributes and summary statistics."
  • Developed an optional module to define prevalence statistics (also called "epi stats") as functions to be passed to the model as control settings before each netsim simulation. This allows users to avoid updating the prevalence.net module. See the vignette, "Working with attributes and summary statistics."
  • Developed an optional module allowing the update of the model parameters over timesteps within netsim simulations (i.e., time-varying parameters). See the vignette, "Working with model parameters."
  • Improved the random parameterization programming interface to allow correlation between parameters in each simulation (e.g., the ability to pass in a multivariate parameter set for each simulation). See the vignette, "Working with model parameters."

BUG FIXES

  • When calling plot on a netsim object, the arguments in the ellipsis (...) are now correctly passed to the base::plot call.
  • When trying to use the built-in group attribute, netsim will now output a more explicit error if the values used are not only 1 and 2.
  • Fixed the names of the target formation statistics in netdx when edapprox == FALSE that were causing the plotting functions to misbehave.
  • Simplification of the set_transmat function removing the assumption that dat$stats$transmat was to exist only if at != 2 (thanks to @thednainus).
  • More consistent formation and dissolution statistics print between netdx and netsim.
  • Removed duplication in the printing of the parameters when a parameter was defined both as fixed and as random.
  • When using custom netsim modules with type == NULL, some built-in modules no longer stop because they required type to be a string.
  • Fixed issue with Error, Warning or Message in netsim printing twice.
  • Fixed problem with unique ID counter not saved by saveout.net, resulting in the unique ids to start a 1 again when restarting a model from a previous simulation.

Other

Compare
Choose a tag to compare

NEW FEATURES

  • Summary network statistics for netsim class objects (epidemic simulations) are now available when tergmLite is used. Previously these network statistics were only available when tergmLite = FALSE but updates to the networkLite class in tergmLite made this possible. These network stats are output with save.nwstats and nwstats.formula arguments in control.net.
  • Developed a general storage and printing mechanism for the recently developed random parameterization interface. See the help page help("param.net").
  • Cleaned up the handling of the initial network simulation in initialize.net, so that the user-facing code in that function is more readable, and the more complex code is put in sim_nets_t1.

BUG FIXES

  • Addressed errors in handling cross-sectional network simulations embedded within a dynamic epidemic model (e.g., contacts that last the length of one time step, specified by duration = 1 in dissolution_coefs).
Compare
Choose a tag to compare

Minor updates for CRAN submission.

Compare
Choose a tag to compare

NEW FEATURES

  • Added new update_params function to add new parameters to an existing list of network parameters specified in param.net. This aids in workflows that distinguish fixed parameters versus varying parameters that may change across scenarios or simulations.
  • Added new general interface for random parameters in network models that allows randomly drawing a parameter value from a specified statistical distribution, where the distribution may either be a sampling of discrete values or a factory function for any of R's random statistical distribution functions. See help file for generate_random_params for examples.
  • Implemented a standardized approach with helper functions for setting core attributes (those nodal attributes which should be present in any workflows) in network models. This functionality is specified with append_core_attr function in the initialization and arrival modules in any extension models. This includes a standardized implementation of persistent, unique IDs as an attribute that remains constant for nodes even with open population models.

BUG FIXES

  • With the use of a standardized core attribute framework that now correctly handles unique IDs in all models, now the transmission matrix objects output from any network model work consistently and correctly for both closed population and open population models.
  • For DCM models with dt < 1, fix NA output for any .flow variables.
  • Reduce complexity of some unit tests that were stochastically generating errors due to ERGM MCMC estimation problems.
  • Fix problem with temporally extended status variables in network models (i.e., tracking of disease status history across time steps) by simplifying the general approach that works across built-in and extension model types.

OTHER

  • Reimplemented the handling of relational age diagnostics in netdx, with updated numerical summaries in print.netdx and visuals in plot.netdx. Because relational ages are left-censored for any edges that existed at time zero, this led to a misleading diagnostic that ages were lower than the targeted durations. Imputation of a start time for those edges was added, with the option in plot.netdx to visualize with imputed start times (default = TRUE) or not.
  • More consistent approach to trimming unneeded environmental data from ERGM objects implemented with statnet.common::trim_env(), used in netest.
  • Reimplemented the netest "edges dissolution approximation" for efficient estimation of a temporal ERGM via a cross-sectional ERGM estimation with adjustment of formation model coefficients (see netest help page). This new approach further reduces bias in the approximation method, plus now allows for non-nested dissolution models (i.e., dissolution formula does not need to be a subset of the formation formula).
Compare
Choose a tag to compare

NEW FEATURES

  • Implemented an error catching approach for netsim so that epidemic modules
    with errors or warnings are clearly identified in the console.
  • Allow saving the transmission matrix with save.transmat in control.net
    independently of using tergmLite methods (previously use of tergmLite did not
    allow for saving these data).
  • Added an infstat parameter to the internal discord_edgelist function used
    in the infection module, to allow for arbitrary specification of which disease
    statuses are considered infectious for the purpose of dyad discordance.
  • Added ability to vary node size in plot.netsim with type = 'network' with
    vertex.cex parameter.

BUG FIXES

  • Fix issue for plot.netdx when plot legend set to FALSE.
  • Updated print.netsim that does not error when displaying new epidemic
    modules for extension models.
  • Use appropriate tergmLite resimulation methods for netsim for networks with
    duration of 1 (i.e., one-time contacts handled with cross-sectional ERGMs).

OTHER

  • Further minor edits/updates to EpiModel 2.0 migration documentation (posted on
    http://epimodel.org/).
Compare
Choose a tag to compare

Minor updates for CRAN submission.

142f070
Compare
Choose a tag to compare

Minor updates for CRAN resubmission.

Compare
Choose a tag to compare
  • This release introduces a major update to the EpiModel package infrastructure and application programming interface for both built-in models (primarily used for teaching purposes) and extension models (primarily used for research purposes). The major substantive changes are summarized in a EpiModel 1.x to EpiModel 2.0 migration guide on our primary website: https://epimodel.org/.