Construct a validated analysis specification
Source:R/19-analysis-specification.R
analysis_specification.RdOne specification carries the same complete target declaration through a
draft, ranked proposal, and analyst-confirmed component decision. Target
direction is explicit: binary targets use neutral reference/comparison
levels, ordered targets use ordered_levels, and continuous targets
use an increasing/decreasing direction.
Usage
analysis_specification(
id,
target_field,
target_type,
reference_level = NULL,
comparison_level = NULL,
ordered_levels = character(0L),
continuous_direction = NULL,
lifecycle = "draft",
selected_component = NULL,
proposal_digest = NULL,
proposal_decision = NULL,
analyst_rationale = NULL,
nuisance_fields = character(0L),
orientation_anchor = NULL,
claim_intent = c("exploratory", "primary_confirmatory")
)Arguments
- id
non-empty run identity
- target_field
one
colDatatarget field- target_type
"binary","ordered", or"continuous"- reference_level, comparison_level
binary target direction
- ordered_levels
ordered target levels in predeclared direction
- continuous_direction
"increasing"or"decreasing"- lifecycle
"draft","proposal", or"confirmed"- selected_component
positive component index in the frozen reference basis; confirmed lifecycle only
- proposal_digest
SHA-256 digest of the ranked proposal; proposal and confirmed lifecycles only
- proposal_decision
"accepted"or"overridden"; confirmed lifecycle only- analyst_rationale
non-empty analyst rationale; confirmed lifecycle only
- nuisance_fields
unique
colDatafields declared as confounders- orientation_anchor
optional numeric non-degenerate
colDatafield distinct from target and nuisance roles- claim_intent
"exploratory"(default) or"primary_confirmatory"; intent does not establish eligibility
Details
A draft has no proposal or confirmation fields. A proposal adds only
proposal_digest. A confirmed specification requires
selected_component, the proposal digest, an accepted/overridden
decision, and non-empty analyst rationale. Real-data confirmation remains a
analyst action; this constructor validates the record but does not recommend a
component.
Examples
draft <- analysis_specification(
id = "aml-time",
target_field = "weeks",
target_type = "continuous",
continuous_direction = "increasing"
)
confirmed <- analysis_specification(
id = "aml-time",
target_field = "weeks",
target_type = "continuous",
continuous_direction = "increasing",
lifecycle = "confirmed",
selected_component = 2L,
proposal_digest = strrep("a", 64L),
proposal_decision = "accepted",
analyst_rationale = "Accepted the predeclared top-ranked component."
)