Skip to content

Thoughts for moving toward a user friendly package #6

@salleuska

Description

@salleuska

Current workflows require users to understand internal objects such as MCMCFun, simulateNewDataFun, discFun, structured control lists, NIMBLE node handling, and probably Nimble internals.

Goal

A new user should be able to install the package, open the README or vignette, copy one example, run one high-level function, and interpret the result using print(), summary(), and plot() without needing to understand the internal calibration engine.

A future user-facing workflow might look like:

res <- cppp_nimble(
  model = model,
  dataNames = NULL,
  paramNames = NULL,
  discrepancy = "mean",
  nReps = 100,
  mainMCMC = list(niter = 5000, nburnin = 1000),
  calibrationMCMC = list(niter = 500)
)

summary(res)
plot(res)

Some details

One possibility here is to think about this similarly as nimble sequential setup via runMCMC() vs the nimbleMCMC() one-line invocation

An option would be to keep the runCalibration() and runCalibrationNIMBLE() as the advanced generic functions and consider adding user-friendly functions, e.g., cppp() and cppp_nimble(). Those two functions can use runCalibration() internally and will handle setting a number of defaults for users.

Notes

  • paramNamesand dataNames can be optional; we can figure out roles of the nodes from nimble model

Metadata

Metadata

Assignees

No one assigned

    Labels

    designPackage design

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions