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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions