#03 — yuragi fragility vs SelfCheckGPT head-to-head
n=30  pos_rate=0.100  target=llm_judge_label (INCORRECT→1)
sampler=groq/llama-3.3-70b-versatile  judge=groq/qwen/qwen3-32b

== Solo AUC (bootstrap 95% CI) ==
feature                           AUC           95% CI    n
adaptive_fragility             0.8889  [0.740, 1.000]    30
fragility_score                0.8889  [0.753, 1.000]    30
selfcheck_score                0.8210  [0.448, 1.000]    30
paraphrase_fragility           0.7654  [0.571, 0.929]    30
verbal_logprob_gap             0.7654  [0.286, 1.000]    30
impostor_fragility             0.7160  [0.296, 0.966]    30
adversarial_fragility          0.7037  [0.457, 0.964]    30
baseline_confidence            0.6914  [0.172, 1.000]    30
counterfactual_fragility       0.4321  [0.036, 0.750]    30

== Ensemble (SelfCheckGPT + one yuragi feature, 5-fold CV) ==
adjunct feature                   AUC           95% CI
adaptive_fragility             0.8642  [0.607, 1.000]
fragility_score                0.8272  [0.536, 1.000]
impostor_fragility             0.8148  [0.464, 1.000]
paraphrase_fragility           0.7284  [0.172, 1.000]
verbal_logprob_gap             0.7284  [0.172, 1.000]
adversarial_fragility          0.7160  [0.138, 1.000]
counterfactual_fragility       0.7037  [0.138, 1.000]
baseline_confidence            0.6790  [0.069, 1.000]

== Verdict ==
SelfCheckGPT alone     : AUC=0.8210  [0.448, 1.000]
yuragi fragility alone : AUC=0.8889  [0.753, 1.000]
Best ensemble          : +adaptive_fragility  AUC=0.8642  [0.607, 1.000]
Δ (best ensemble - selfcheck solo) = +0.0432

== Category slices (n>=4, solo AUC) ==
category                    n  SelfCheck     yuragi  note

== Caveats ==
  * n=30 is small; CIs are wide, effect sizes must exceed CI overlap for significance.
  * sampler=groq/llama-3.3-70b-versatile (SelfCheckGPT samples)
    vs fragility computed on the base prompt (same model? check record)
  * single llm_judge (qwen3-32b) — circular validation risk.
