lnccbrown / lnccbrown/HSSM

Define safe-prior behavior for user-narrowed analytical HDDM bounds

Open
#1,280 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
124
Forks
24
Avg merge
19h 32m
Merged PRs (30d)
60

Description

## Problem

For analytical and black-box `ddm`, `ddm_sdv`, and `full_ddm`, HSSM's safe
response-scale priors preserve calibrated HDDM families such as Gamma and Beta.
Those families match the built-in natural support, but a user may supply a valid
model configuration with bounds stricter than that support.

Example: a Gamma hierarchy is positive, but it is not automatically restricted
to a user-selected finite upper bound. #1269 deliberately preserves the HDDM
family instead of replacing it with a generic `TruncatedNormal`, so a narrowed
configuration can retain prior mass outside the effective likelihood domain.

HSSM then assigns out-of-bounds final values the finite per-trial log-likelihood
floor `-66.1`; it does not hard-reject them through prior support.

## Policy question

Choose and document one behavior for safe-generated priors when a calibrated HDDM
family's support is not contained in the effective configured bounds:

- preserve the calibrated family and warn;
- truncate or otherwise adapt the family while retaining interpretable
hyperparameters;
- fall back to a generic bounded family; or
- require an explicit user prior/link for the narrowed configuration.

The choice should be made separately for common intercepts, unique group-only
locations, and complete additive predictors. It must not silently alter explicit
priors.

## Acceptance criteria

- Build a support-coverage classifier for the stock HDDM Normal/Gamma/Beta/HalfNormal
families and configured finite/one-sided bounds.
- Prove every stock analytical/black-box configuration retains its current prior.
- Cover narrower lower, upper, and two-sided user bounds for `v`, `a`, `z`, `t`,
`sv`, `sz`, `st`, and `p_outlier` where applicable.
- Cover identity spellings and transformed-link controls.
- Preserve exact/wildcard explicit priors and `prior_settings=None`.
- Add construction, graph, initial-value, and prior-predictive tests; no
sampling-efficiency claim is required.
- Document the distinction among natural support, user-configured bounds, and finite
LAN/training domains.

## Related

- #1232 defines identity-link equivalence for safe common intercepts.
- #1269 defines the generic bounded group-location path but intentionally preserves
calibrated HDDM families.

Contributor guide

Open the contributing guide

Research direction

Start by reading the safe-generated prior construction for the analytical and black-box ddm, ddm_sdv, and full_ddm paths, along with related issues #1232 and #1269. Define the support-coverage classifier and policy first, then add construction, graph, initial-value, prior-predictive, and documentation coverage for the listed bounds and explicit-prior cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.