Create a target to run the $summary()
method of a CmdStanFit object.
Usage
tar_stan_summary(
name,
fit,
data = NULL,
variables = NULL,
summaries = NULL,
summary_args = NULL,
format = "fst_tbl",
repository = targets::tar_option_get("repository"),
error = targets::tar_option_get("error"),
memory = targets::tar_option_get("memory"),
garbage_collection = targets::tar_option_get("garbage_collection"),
deployment = targets::tar_option_get("deployment"),
priority = targets::tar_option_get("priority"),
resources = targets::tar_option_get("resources"),
storage = targets::tar_option_get("storage"),
retrieval = targets::tar_option_get("retrieval"),
cue = targets::tar_option_get("cue"),
description = targets::tar_option_get("description")
)Arguments
- name
Symbol, base name for the collection of targets. Serves as a prefix for target names.
- fit
Symbol, name of a
CmdStanFitobject or an upstream target that returns aCmdStanFitobject.- data
Code to generate the
datafor the Stan model.- variables
(character vector) The variables to include.
- summaries
Optional list of summary functions passed to
...inposterior::summarize_draws()through$summary()on theCmdStanFitobject.- summary_args
Optional list of summary function arguments passed to
.argsinposterior::summarize_draws()through$summary()on theCmdStanFitobject.- format
Character of length 1, storage format of the data frame of posterior summaries. We recommend efficient data frame formats such as
"feather"or"aws_parquet". For more on storage formats, see the help file oftargets::tar_target().- repository
Character of length 1, remote repository for target storage. Choices:
"local": file system of the local machine."aws": Amazon Web Services (AWS) S3 bucket. Can be configured with a non-AWS S3 bucket using theendpointargument oftar_resources_aws(), but versioning capabilities may be lost in doing so. See the cloud storage section of https://books.ropensci.org/targets/data.html for details for instructions."gcp": Google Cloud Platform storage bucket. See the cloud storage section of https://books.ropensci.org/targets/data.html for details for instructions.A character string from
tar_repository_cas()for content-addressable storage.
Note: if
repositoryis not"local"andformatis"file"then the target should create a single output file. That output file is uploaded to the cloud and tracked for changes where it exists in the cloud. The local file is deleted after the target runs.- error
Character of length 1, what to do if the target stops and throws an error. Options:
"stop": the whole pipeline stops and throws an error."continue": the whole pipeline keeps going."null": The errored target continues and returnsNULL. The data hash is deliberately wrong so the target is not up to date for the next run of the pipeline. In addition, as oftargetsversion 1.8.0.9011, a value ofNULLis given to upstream dependencies witherror = "null"if loading fails."abridge": any currently running targets keep running, but no new targets launch after that."trim": all currently running targets stay running. A queued target is allowed to start if:It is not downstream of the error, and
It is not a sibling branch from the same
tar_target()call (if the error happened in a dynamic branch).
The idea is to avoid starting any new work that the immediate error impacts.
error = "trim"is just likeerror = "abridge", but it allows potentially healthy regions of the dependency graph to begin running. (Visit https://books.ropensci.org/targets/debugging.html to learn how to debug targets using saved workspaces.)
- memory
Character of length 1, memory strategy. Possible values:
"auto": new intargetsversion 1.8.0.9011,memory = "auto"is equivalent tomemory = "transient"for dynamic branching (a non-nullpatternargument) andmemory = "persistent"for targets that do not use dynamic branching."persistent": the target stays in memory until the end of the pipeline (unlessstorageis"worker", in which casetargetsunloads the value from memory right after storing it in order to avoid sending copious data over a network)."transient": the target gets unloaded after every new target completes. Either way, the target gets automatically loaded into memory whenever another target needs the value.
For cloud-based dynamic files (e.g.
format = "file"withrepository = "aws"), thememoryoption applies to the temporary local copy of the file:"persistent"means it remains until the end of the pipeline and is then deleted, and"transient"means it gets deleted as soon as possible. The former conserves bandwidth, and the latter conserves local storage.- garbage_collection
Logical:
TRUEto runbase::gc()just before the target runs,FALSEto omit garbage collection. In the case of high-performance computing,gc()runs both locally and on the parallel worker. All this garbage collection is skipped if the actual target is skipped in the pipeline. Non-logical values ofgarbage_collectionare converted toTRUEorFALSEusingisTRUE(). In other words, non-logical values are convertedFALSE. For example,garbage_collection = 2is equivalent togarbage_collection = FALSE.- deployment
Character of length 1. If
deploymentis"main", then the target will run on the central controlling R process. Otherwise, ifdeploymentis"worker"and you set up the pipeline with distributed/parallel computing, then the target runs on a parallel worker. For more on distributed/parallel computing intargets, please visit https://books.ropensci.org/targets/crew.html.- priority
Numeric of length 1 between 0 and 1. Controls which targets get deployed first when multiple competing targets are ready simultaneously. Targets with priorities closer to 1 get dispatched earlier (and polled earlier in
tar_make_future()).- resources
Object returned by
tar_resources()with optional settings for high-performance computing functionality, alternative data storage formats, and other optional capabilities oftargets. Seetar_resources()for details.- storage
Character string to control when the output of the target is saved to storage. Only relevant when using
targetswith parallel workers (https://books.ropensci.org/targets/crew.html). Must be one of the following values:"main": the target's return value is sent back to the host machine and saved/uploaded locally."worker": the worker saves/uploads the value."none":targetsmakes no attempt to save the result of the target to storage in the location wheretargetsexpects it to be. Saving to storage is the responsibility of the user. Use with caution.
- retrieval
Character string to control when the current target loads its dependencies into memory before running. (Here, a "dependency" is another target upstream that the current one depends on.) Only relevant when using
targetswith parallel workers (https://books.ropensci.org/targets/crew.html). Must be one of the following values:"main": the target's dependencies are loaded on the host machine and sent to the worker before the target runs."worker": the worker loads the target's dependencies."none":targetsmakes no attempt to load its dependencies. Withretrieval = "none", loading dependencies is the responsibility of the user. Use with caution.
- cue
An optional object from
tar_cue()to customize the rules that decide whether the target is up to date.- description
Character of length 1, a custom free-form human-readable text description of the target. Descriptions appear as target labels in functions like
tar_manifest()andtar_visnetwork(), and they let you select subsets of targets for thenamesargument of functions liketar_make(). For example,tar_manifest(names = tar_described_as(starts_with("survival model")))lists all the targets whose descriptions start with the character string"survival model".
Value
tar_stan_summary() returns target object to
summarize a CmdStanFit object. The return value of the target
is a tidy data frame of summaries returned by the $summary()
method of the CmdStanFit object.
See the "Target objects" section for background.
Details
tar_stan_mcmc() etc. with summary = TRUE already gives you a
target with output from the $summary() method.
Use tar_stan_summary() to create additional specialized summaries.
Target objects
Most stantargets functions are target factories,
which means they return target objects
or lists of target objects.
Target objects represent skippable steps of the analysis pipeline
as described at https://books.ropensci.org/targets/.
Please read the walkthrough at
https://books.ropensci.org/targets/walkthrough.html
to understand the role of target objects in analysis pipelines.
For developers, https://wlandau.github.io/targetopia/contributing.html#target-factories explains target factories (functions like this one which generate targets) and the design specification at https://books.ropensci.org/targets-design/ details the structure and composition of target objects.
Examples
# First, write your Stan model file, e.g. model.stan.
# Then in _targets.R, write a pipeline like this:
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") {
targets::tar_dir({ # tar_dir() runs code from a temporary directory.
# Running inside a temporary directory to avoid
# modifying the user's file space. The file "model.stan"
# created below lives in a temporary directory.
# This satisfies CRAN policies.
tar_stan_example_file("model.stan")
targets::tar_script({
library(stantargets)
list(
# Run a model and produce default summaries.
tar_stan_mcmc(
your_model,
stan_files = "model.stan",
data = tar_stan_example_data()
),
# Produce a more specialized summary
tar_stan_summary(
your_summary,
fit = your_model_mcmc_model,
data = your_model_data_model,
variables = "beta",
summaries = list(~quantile(.x, probs = c(0.25, 0.75)))
)
)}, ask = FALSE)
targets::tar_make()
})
}