Skip to content

[feedback][clinical-trial-ipd-sim] AEREL Assignment Not Realistic #179

Description

@lengning

Gap in Skill Specification

The skill documents hazard-driven AE generation extensively (per-visit hazard, frailty loading, severity assignment) but does not specify how AEREL (causality assessment) should be generated. The scm_spec_template.md §6.3 describes:

  • λ(t) = exp(log_haz_base + β_arm + f_cluster + β_recurrence) for incidence
  • p_severe for grade conditioning
  • P(reported | grade) for reporting probability

But there is no guidance on P(RELATED | arm, AE_type, grade) — the investigator's causality assessment.

Consequence

Implementers default to deterministic assignment:

AEREL = if (arm == "PEMBRO") "RELATED" else "NOT RELATED"

This produces:

  1. TRAE ≡ Any AE in the active arm (100% relatedness)
  2. Placebo immune AEs invisible in TRAE-filtered outputs (0% relatedness)
  3. Both violate the blinding principle: in a double-blind trial, investigators assess causality without knowing assignment

Proposed Addition to Skill

Add to scm_spec_template.md §6.3 a required specification for AEREL:

§6.3.5 Causality Assessment (AEREL)

AEREL is an INVESTIGATOR ASSESSMENT, not a ground truth. In blinded trials:
- AEREL is conditionally independent of true arm given AE type and temporal pattern
- Model as: P(RELATED | AE_type, temporal_onset) with type-specific priors:
    - Immune-mediated AEs (thyroid, colitis, hepatitis): P(RELATED) ~ 0.80 (both arms)
    - General AEs with known drug signal (fatigue, rash): P(RELATED) ~ 0.70 (both arms)
    - General AEs with high background (arthralgia, headache): P(RELATED) ~ 0.50
- Slight arm modulation allowed ONLY in open-label trials:
    P(RELATED | active_arm) = base + 0.10
    P(RELATED | control_arm) = base - 0.05

This ensures TRAE ⊂ Any AE (proper subset) and creates realistic separation between
categories in Table S3/S5 outputs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions