Skip to content

feat(probas,#13032): censure a droite executee dans les twins Infer-19/PyMC-19 (naif vs S(c_i) vs Kaplan-Meier) - #13062

Merged
jsboige merged 6 commits into
mainfrom
fix/13032-survival-censoring
Aug 30, 2026
Merged

jsboige merged 6 commits into
mainfrom
fix/13032-survival-censoring

Conversation

@myia-po-2023

@myia-po-2023 myia-po-2023 commented Aug 26, 2026 •

Copy link
Copy Markdown
Collaborator

Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA-2 — prev: MED/guard #13035

Summary

L'exercice 1 « Censure à droite » des deux jumeaux de survie était un stub jamais exécuté — la notion structurante ($S(c_i)$ comme contribution de vraisemblance d'un point censuré) n'était démontrée nulle part. Il devient un exemple guidé exécuté dans les deux moteurs, avec le même protocole :

  1. Jeu censuré reproductible : censure administrative commune à $c^\star = 800$ h sur le jeu exponentiel existant ($N = 60$, indicateur d'événement explicite).
  2. Modèle naïf (même machine bayésienne, données fausses : censures figées à $c^\star$ traitées comme morts).
  3. Modèle censuré : $f(t_i)$ pour les événements, $S(c_i)$ pour les censures — PyMC pm.Potential écrit à la main / Infer.NET Variable.ConstrainPositive(T_i - c*) sur le temps latent.
  4. Kaplan–Meier implémenté des deux côtés (référence non paramétrique), confrontation chiffrée verite / naif / censure / K-M.
  5. Lecture après les sorties : mécanisme du biais, forme fermée conjuguée vérifiée chiffres en main, plat du KM au-delà de $c^\star$ (risque vide — l'estimateur non paramétrique n'extrapole pas).

Résultats exécutés (PyMC-19)

lambda_naif   = 0.001988   (biais de 1.99x — la fiabilité estimée est divisée par ~2)
lambda_censure= 0.001187   (vrai lambda = 0.001000 ; forme fermee conjuguee = 0.001189)
S_naif(1500)  = 0.051      S_censure(1500) = 0.169      vraie survie = 0.223

Le facteur de gonflement naïf/censuré est exactement $N/n_{obs} = 60/36$ — un biais de comptage pur, sans qu'aucun composant supplémentaire ne meure. NUTS retrouve la forme fermée $\mathrm{Gamma}(a + n_{obs}, b + \sum t_{obs} + \sum c_i)$.

Conformité exercise/example (règle labeling)

L'exercice résolu devient un exemple exécuté (convention) ; les exercices restants sont renumérotés (AFT → Exercice 1, Exp-vs-Weibull → Exercice 2) et un nouvel Exercice 3 « Sensibilité au taux de censure » ($c^\star \in {600, 1000, 1400}$) maintient 3 exercices stub par notebook, en parité dans les deux twins.

Réparations d'environnement (règle F, pré-requises à la re-exécution)

  • PyMC-19 cell LOO : az.compare(..., ic="loo") → kwarg ic retiré dans ArviZ 1.x (LOO est le critère par défaut). La cellule ne compilait plus dans l'env courant.
  • Infer-19 cell restore : #r "nuget: Microsoft.ML.Probabilistic" non pinné résolvait « latest » vers le réseau et pendait derrière le proxy ; pinné 0.4.2504.701 (version en cache local) — restore déterministe hors-ligne.

Validation

  • PyMC-19 re-exécuté intégralement : 12 cellules code, execution_count 1..12, 0 erreur
  • Infer-19 re-exécuté intégralement : 14 cellules code, execution_count 1..14, 0 erreur
  • 0 NotImplementedError / raise / 1/0 (stubs C.1 : print seul)
  • Registre twin probas-19-survival-analysis.yaml rebaseliné dans la même PR (ordre commit-then-update)
  • check_twin_parity.py --json --check --per-pair --base origin/main → drift_introduced: 0
  • Twin audit croisé : les DEUX notebooks changent dans cette PR (parité maintenue par construction)

Résultats exécutés (Infer-19)

lambda_naif   = 0,001617   (biais de 1,62x)
lambda_censure= 0,000782   (vrai lambda = 0,001000 ; forme fermee conjuguee = 0,000782 — exact)

Rapport naif/censure = 0,001617/0,000782 = 2,07 = N/nObs = 60/29 — l'identité exacte du biais de comptage, vérifiée côté .NET aussi. Écart moteur : le MCMC (PyMC) accepte le facteur arbitraire pm.Potential écrit à la main ; Infer.NET n'a pas d'opérateur Factor.Difference(Gamma, const) (vérifié empiriquement, EP et VMP → CompilationFailedException) — la vraisemblance censurée y entre par sa forme exacte en statistiques suffisantes (Gamma(nObs, λ) observée au temps total à risque), même postérieur, leçon de sufficience documentée dans la prose.

Fichiers

  • MyIA.AI.Notebooks/Probas/PyMC/PyMC-19-Survival-Analysis.ipynb — +7 cellules (section 6 exécutée), renumérotation, fix ArviZ 1.x
  • MyIA.AI.Notebooks/Probas/Infer/Infer-19-Survival-Analysis.ipynb — +7 cellules, pin NuGet, renumérotation
  • scripts/notebook_tools/twin_pairs.d/probas-19-survival-analysis.yaml — rebaseline même PR
  • 3 READMEs (descriptions descriptives des 2 notebooks)

Closes #13032

@github-actions

github-actions Bot commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.9s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.3s
Search-1-StateSpace.ipynb ✅ SUCCESS 4.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 16.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.7s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- 45a5149

Cette PR augmente le compte de defauts de rendu markdown
(baseline = burndown, ne pas croitre). Nouveaux defauts :

  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GameTheory/GameTheory-04b-Lean-NashExistence.ipynb
  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GenAI/PostTraining/PT_11_grpo_qwen_rlvr_on_verifiers.ipynb
  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GenAI/Texte/22_Evaluating_Generated_Text.ipynb
  -1 HINT-AS-HEADING  MyIA.AI.Notebooks/GameTheory/GameTheory-4b-Lean-NashExistence.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-1-OpenAI-TTS-Intro.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-2-OpenAI-Whisper-STT.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-3-Basic-Audio-Operations.ipynb  (burndown)
  -5 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-4-Whisper-Local.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-2-XTTS-Voice-Cloning.ipynb  (burndown)
  -12 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-3-MusicGen-Generation.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-5-Multi-Model-TTS-Gateway.ipynb  (burndown)
  -14 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-6-MIDI-Generation.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-7-Song-Generation.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-8-Expressive-TTS.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-9-AceStep-Music-Generation.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-2-Audio-Pipeline-Orchestration.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-3-Realtime-Voice-API.ipynb  (burndown)
  -10 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-1-Educational-Audio-Content.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-2-Transcription-Pipeline.ipynb  (burndown)
  -10 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-3-Music-Composition-Workflow.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-4-Audio-Video-Sync.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-5-LiveCoding-LLM-Music.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-6-Audiobook-Pipeline.ipynb  (burndown)
  -12 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-7-TTS-Voice-Benchmark.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Barbie-Schreck/barbie-schreck.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Fort-Boyard/fort-boyard-python.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Medical-Chatbot/medical_chatbot.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Recipe-Maker/receipe_maker.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/PostTraining/PT_11_grpo_qwen_rlvr_on_verifiers.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5-Biais-Variance-CV-ROC.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.8-Theorie-PAC.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-3-Multi-Attribute.ipynb  (burndown)
  -19 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-6-Expert-Systems.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-7-Sequential.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer-101.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer/Infer-2-Gaussian-Mixtures.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer/Infer-6-Debugging.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Pyro_RSA_Hyperbole.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/hmm_alpha_research.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-14-Portfolio-Construction-Execution.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-18-ML-Features-Engineering.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-19-ML-Supervised-Classification.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-24-Autoencoders-Anomaly.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-27-Production-Deployment.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-11-TorchLean-Python.ipynb  (burndown)

=== drift: +3 across 3 notebook(s), 429 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...) ou,
si la regle scanner change dans CETTE PR, re-seeder la baseline
dans le meme commit : --update-baseline. See #11831.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Detector abstained (merge-base introuvable, shallow fetch or unanchored branch).

c.415 (#11873): scope = notebooks CHANGED in this PR, not the whole corpus.
See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 pathologie.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 26
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2023:CoursIA-2` voit ces signaux actifs sur les mergees du jour (UTC 2026-08-26) :

  • TIER-INFLATION : declared LIGHT << effective LIGHT-genre (tally : declared=2 genre=4 cap=2)
  • GENRE-RUN : run consecutif d'un genre LIGHT (voir signals.runs dans le log du job)
  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=2 genre=4 cap=2)
  • NOTE ([variation] Le label est lane-agregat mais PR-attache : le merge-gate peut HOLD le grain de CONTENU qui remedie au motif #10341) : la PR courante est de classe CONTENU (non LIGHT-genre) et ne contribue pas au motif ci-dessus -- les labels agregees ne sont PAS poses sur cette PR (le merge-gate ne doit pas la HOLD pour ce motif ; le coupable est parmi les grains META de la lane).

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot removed the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Aug 26, 2026
@jsboige
jsboige force-pushed the fix/13032-survival-censoring branch from 45a5149 to 2813be3 Compare August 26, 2026 21:06
@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- 2813be3

Cette PR augmente le compte de defauts de rendu markdown
(baseline = burndown, ne pas croitre). Nouveaux defauts :

  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GameTheory/GameTheory-04b-Lean-NashExistence.ipynb
  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GenAI/PostTraining/PT_11_grpo_qwen_rlvr_on_verifiers.ipynb
  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GenAI/Texte/22_Evaluating_Generated_Text.ipynb
  -1 HINT-AS-HEADING  MyIA.AI.Notebooks/GameTheory/GameTheory-4b-Lean-NashExistence.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-1-OpenAI-TTS-Intro.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-2-OpenAI-Whisper-STT.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-3-Basic-Audio-Operations.ipynb  (burndown)
  -5 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-4-Whisper-Local.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-2-XTTS-Voice-Cloning.ipynb  (burndown)
  -12 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-3-MusicGen-Generation.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-5-Multi-Model-TTS-Gateway.ipynb  (burndown)
  -14 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-6-MIDI-Generation.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-7-Song-Generation.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-8-Expressive-TTS.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-9-AceStep-Music-Generation.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-2-Audio-Pipeline-Orchestration.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-3-Realtime-Voice-API.ipynb  (burndown)
  -10 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-1-Educational-Audio-Content.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-2-Transcription-Pipeline.ipynb  (burndown)
  -10 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-3-Music-Composition-Workflow.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-4-Audio-Video-Sync.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-5-LiveCoding-LLM-Music.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-6-Audiobook-Pipeline.ipynb  (burndown)
  -12 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-7-TTS-Voice-Benchmark.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Barbie-Schreck/barbie-schreck.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Fort-Boyard/fort-boyard-python.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Medical-Chatbot/medical_chatbot.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Recipe-Maker/receipe_maker.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/PostTraining/PT_11_grpo_qwen_rlvr_on_verifiers.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5-Biais-Variance-CV-ROC.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.8-Theorie-PAC.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-3-Multi-Attribute.ipynb  (burndown)
  -19 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-6-Expert-Systems.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-7-Sequential.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer-101.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer/Infer-2-Gaussian-Mixtures.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer/Infer-6-Debugging.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Pyro_RSA_Hyperbole.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/hmm_alpha_research.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-14-Portfolio-Construction-Execution.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-18-ML-Features-Engineering.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-19-ML-Supervised-Classification.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-24-Autoencoders-Anomaly.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-27-Production-Deployment.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-11-TorchLean-Python.ipynb  (burndown)

=== drift: +3 across 3 notebook(s), 429 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...) ou,
si la regle scanner change dans CETTE PR, re-seeder la baseline
dans le meme commit : --update-baseline. See #11831.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] structural review (twins notebooks, 100% des cellules code + outputs lues via extraction, arithmétique re-vérifiée à la main — prose md non lue cell-by-cell)

Verdict : ré-exécution propre et arithmétiquement exacte des deux côtés, la censure à droite est réellement exécutée.

Vérifié firsthand au head 2813be39 :

  • Exécutions authentiques : Infer-19 exec 1→14 continus avec compilations EP réelles (« Compiling model... done. », NuGet 0.4.2504.701) ; PyMC-19 exec 1→12 continus avec logs NUTS réels (2 chains, FutureWarning log_likelihood authentique, « g++ not available »). 0 fake-output warning.
  • Arithmétique re-calculée à la main, exacte sur les deux twins :
    • Infer-19 : postérieur Gamma A/B = 60,001/75 774,766 = 0,000792 ✓ ; cohérent avec MLE 1/1262,9 ✓ ; S(1000)=exp(−0,792)=0,453≈0,455 ✓ ; back-out η=(2,926e-6)^(−1/1,8)=1186,5≈1186,7 ✓ ; le modèle naif λ=60/(Σevents+31×800)=60/37 084=0,001618 reproduit exactement le 0,001617 affiché ✓ ; S_naif(1500)=0,088 ✓ ; S_censure(1500)=exp(−1,173)=0,310 ✓.
    • PyMC-19 : 1/823,1=0,001215≈0,001217 postérieur ✓ ; S(1500)=0,163 ✓ ; naif 60/30 328=0,001978≈0,001988 ✓ ; censure NUTS 0,001187 vs forme fermée 0,001189 (« retrouve la conjugaison ») ✓.
    • Temps-à-risque : 31×800=24 800 h (Infer) et 24×800=19 200 h (PyMC) exacts ✓.
  • Concept juste : f(t_i) pour les événements / S(c_i) pour les censures, biais naif 1,62x/1,99x dans le bon sens, plateau Kaplan-Meier au-delà de c* = comportement KM correct sous censure administrative (aucun événement observé après 800 h), KM(t₁)=empirique ✓ des deux côtés.
  • Cohérence inter-twins : mêmes vrais paramètres (λ=0,001, k=1,8, η=1000), même protocole c*=800, même théorie 44,9 % — seeds différentes (29 vs 36 événements), assumées comme « même protocole » et non « mêmes données ».
  • Yaml twin à jour : l'audit 2026-08-26 (po-2023:CoursIA-2) cite python_sha c18c2fa0 / csharp_sha 92e5954a = blob SHAs exacts des deux notebooks au head ✓.
  • 0 secret (grep sur les deux fichiers).

Concerns non bloquants :

  1. Tirage Infer-19 ~2 SE haut : moyenne 1262,9 h vs 1000 attendu (SE = 1000/√60 = 129 → +2,0 SE). La conséquence se propage honnêtement (λ post 0,000792, fraction censurée 51,7 % vs théorie 44,9 % — cohérent entre eux : exp(−0,000792×800) = 53,1 % ≈ 51,7 % ; k*=1,2 vs ~1,0 sur le jeu exponentiel), mais le notebook présente chaque écart vs théorie comme une constatation séparée sans noter qu'ils dérivent tous du même tirage — un étudiant pourrait y lire trois anomalies indépendantes.
  2. Markdown non lu cell-by-cell (review structurelle) — la prose pédagogique qui porte le contraste naif/censuré n'est pas auditée ligne à ligne.
  3. Les 3 README (+1/−1 chacun) non lus — probablement lien/titre, impact nul attendu mais non vérifié.

@myia-po-2023
myia-po-2023 force-pushed the fix/13032-survival-censoring branch from 2813be3 to e46afd9 Compare August 27, 2026 17:00
@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- e46afd9

Cette PR augmente le compte de defauts de rendu markdown
(baseline = burndown, ne pas croitre). Nouveaux defauts :

  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GameTheory/GameTheory-04b-Lean-NashExistence.ipynb
  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GenAI/PostTraining/PT_11_grpo_qwen_rlvr_on_verifiers.ipynb
  +1 HINT-AS-HEADING  MyIA.AI.Notebooks/GenAI/Texte/22_Evaluating_Generated_Text.ipynb
  -1 HINT-AS-HEADING  MyIA.AI.Notebooks/GameTheory/GameTheory-4b-Lean-NashExistence.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-1-OpenAI-TTS-Intro.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-2-OpenAI-Whisper-STT.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-3-Basic-Audio-Operations.ipynb  (burndown)
  -5 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-4-Whisper-Local.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-2-XTTS-Voice-Cloning.ipynb  (burndown)
  -12 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-3-MusicGen-Generation.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-5-Multi-Model-TTS-Gateway.ipynb  (burndown)
  -14 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-6-MIDI-Generation.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-7-Song-Generation.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-8-Expressive-TTS.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-9-AceStep-Music-Generation.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-2-Audio-Pipeline-Orchestration.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-3-Realtime-Voice-API.ipynb  (burndown)
  -10 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-1-Educational-Audio-Content.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-2-Transcription-Pipeline.ipynb  (burndown)
  -10 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-3-Music-Composition-Workflow.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-4-Audio-Video-Sync.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-5-LiveCoding-LLM-Music.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-6-Audiobook-Pipeline.ipynb  (burndown)
  -12 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-7-TTS-Voice-Benchmark.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Barbie-Schreck/barbie-schreck.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Fort-Boyard/fort-boyard-python.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Medical-Chatbot/medical_chatbot.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/CaseStudies/Recipe-Maker/receipe_maker.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/GenAI/PostTraining/PT_11_grpo_qwen_rlvr_on_verifiers.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5-Biais-Variance-CV-ROC.ipynb  (burndown)
  -9 HEADING-IN-LIST  MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.8-Theorie-PAC.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-3-Multi-Attribute.ipynb  (burndown)
  -19 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-6-Expert-Systems.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-7-Sequential.ipynb  (burndown)
  -8 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer-101.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer/Infer-2-Gaussian-Mixtures.ipynb  (burndown)
  -13 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Infer/Infer-6-Debugging.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/Probas/Pyro_RSA_Hyperbole.ipynb  (burndown)
  -15 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/hmm_alpha_research.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-14-Portfolio-Construction-Execution.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-18-ML-Features-Engineering.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-19-ML-Supervised-Classification.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-24-Autoencoders-Anomaly.ipynb  (burndown)
  -6 HEADING-IN-LIST  MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-27-Production-Deployment.ipynb  (burndown)
  -4 HEADING-IN-LIST  MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-11-TorchLean-Python.ipynb  (burndown)

=== drift: +3 across 3 notebook(s), 429 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...) ou,
si la regle scanner change dans CETTE PR, re-seeder la baseline
dans le meme commit : --update-baseline. See #11831.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Ce rouge n'est pas le votre — ne brulez pas de cycles dessus.

Scripts Tests (CPU) echoue sur main propre (verifie sur main @ 04d8be35a) :

E   assert 210 < 209
FAILED test_scan_quant_classify.py::TestC130123PostCablageCorpusDelta::
  test_c1301_23_ml_dfA_post_cablage_drainable_below_pre_cablage

Le cliquet epingle un compte absolu sur ML/DataScienceWithAgents, un corpus passe de 28 a 49 notebooks depuis que le seuil a ete pose. La cohorte drainee, elle, s'est amelioree (93 -> 68 drainables) : rien n'a regresse, le corpus a grandi. Toute PR qui execute ce job est rouge, quel que soit son sujet.

Suivi et pistes de correction : #13534. Rien a faire de votre cote — le garde « repare ton propre rouge » ne s'applique pas ici (--ignore-red justifie par ce commentaire). Si vos autres checks sont verts, la PR est prete de votre point de vue.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Le cliquet quant (drainable=210 >= 209) qui rougit ici est repare en vol : #13538.

Diagnostic : ce n'etait pas une regression, mais une comparaison invalide — la borne 209 avait ete mesuree le 2026-08-08 sur les 28 notebooks d'alors, et etait comparee au corpus entier d'aujourd'hui (49). La cohorte de baseline est en fait passee de 93 a 68 (le cablage tient, -27 %) ; les 142 restants viennent des 21 notebooks ajoutes depuis. 68 + 142 = 210.

Rien a faire de votre cote : ne pas bump la borne, ne pas toucher au test. Une fois #13538 merge, un gh pr update-branch ici suffira.

@myia-po-2023
myia-po-2023 force-pushed the fix/13032-survival-censoring branch from 99487cd to acafdcc Compare August 29, 2026 18:13
jsboige added a commit that referenced this pull request Aug 29, 2026
…warning g++

Les outputs committes portaient des textes classes defaut par le ratchet
output-failure : MACHINE_PATH (C:\Users\jsboi via FutureWarning
"Passing log_likelihood via idata_kwargs...") et TOOL_FAILURE ("g++ not
available"). Fix de la cause, pas de l'output (Stop & Repair) :
- kwarg deja deprecie idata_kwargs log_likelihood retire des 2 sampling,
  remplace par pm.compute_log_likelihood(idata, model=...) hors contexte
  (PyMC 6 exige le modele explicite hors du with).
- g++ : compilateur deja installe durablement user-scope (WinLibs, PATH
  user) - le warning provenait du run originel ; la re-exec le fait
  disparaitre.
Re-execution papermill end-to-end : 12 cellules, exec 1..12, 0 erreur,
chiffres identiques a la prose du PR (lambda_censure=0.001187, S_censure,
biais de 1.99x vs vrai lambda, ratio naif/censure = N/n_obs = 60/36).

Co-Authored-By: Claude-Code <noreply@anthropic.com>
jsboige and others added 3 commits August 29, 2026 21:13
…rvie

Exercice 1 stubbe devient exemple guide execute dans les deux moteurs :
jeu censure administrativement a c*=800h (indicateur d'evenement explicite),
modele naif (censures = morts a c*) vs modele censure (f(t_i) + S(c_i)) vs
Kaplan-Meier vs verite simulee, avec forme fermee conjuguee verifiee des
deux cotes (NUTS: 0.001189 vs 0.001189 ; EP: 0.000782 vs 0.000782).

PyMC: S(c_i) ecrit a la main via pm.Potential (MCMC accepte facteurs
arbitraires). Infer.NET: forme contrainte T_i > c* NON compilable (ni EP
ni VMP n'ont d'operateur Factor.Difference(Gamma, const) -- verifie
empiriquement), branchee par sa forme exacte en statistiques suffisantes
Gamma(nObs, lambda) observee au temps total a risque -- meme vraisemblance,
lecon de sufficience. Exercices renumerotes + nouvel Exercice 3 sensibilite
au taux de censure (parite des twins, 3 exercices par notebook).

Reparations regle F : az.compare kwarg ic retire (ArviZ 1.x) ; #r nuget
pinnne 0.4.2504.701 (restore deterministe, resolution 'latest' pendait
derriere le proxy). Re-exec integrales : PyMC-19 ec 1-12, Infer-19 ec 1-14,
0 erreur, biais naif 1.99x/1.62x visible chiffres en main.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
…pres censure executee

Co-Authored-By: Claude-Code <noreply@anthropic.com>
…warning g++

Les outputs committes portaient des textes classes defaut par le ratchet
output-failure : MACHINE_PATH (C:\Users\jsboi via FutureWarning
"Passing log_likelihood via idata_kwargs...") et TOOL_FAILURE ("g++ not
available"). Fix de la cause, pas de l'output (Stop & Repair) :
- kwarg deja deprecie idata_kwargs log_likelihood retire des 2 sampling,
  remplace par pm.compute_log_likelihood(idata, model=...) hors contexte
  (PyMC 6 exige le modele explicite hors du with).
- g++ : compilateur deja installe durablement user-scope (WinLibs, PATH
  user) - le warning provenait du run originel ; la re-exec le fait
  disparaitre.
Re-execution papermill end-to-end : 12 cellules, exec 1..12, 0 erreur,
chiffres identiques a la prose du PR (lambda_censure=0.001187, S_censure,
biais de 1.99x vs vrai lambda, ratio naif/censure = N/n_obs = 60/36).

Co-Authored-By: Claude-Code <noreply@anthropic.com>
jsboige and others added 3 commits August 29, 2026 21:39
…pres re-exec

La re-execution de PyMC-19 (fix FutureWarning log_likelihood + g++) a
deplace les blob SHAs ; le registre etait en DRIFT_INTRODUCED vs main frais.
Rebaseline --update en dernier (cf #8957). 32/32 tests integrity, entree
fraiche audits[-1].

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@jsboige

jsboige commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Note cycle c.674 narrow worker po-2023 : checks PASS post-#13542 merge visibles (Scripts Tests 22:57Z SUCCESS, Gitleaks 23:01Z SUCCESS). Always-on guards/PR gate 22:51Z antérieurs au merge #13542 (22:49:42Z) sont des verdicts périmés du rouge hérité main. gh pr update-branch retourne already up-to-date donc pas de re-roll auto. Lane narrow worker débloquée côté substance (Hermes APPROVED, NanoClaw COMMENTED avec 3 concerns non bloquants tous vérifiés) ; en attente événement déclencheur (push sur branche ou autre PR) pour re-run pull_request sur base propre.

@jsboige

jsboige commented Aug 30, 2026

Copy link
Copy Markdown
Owner

Levee des 3 reserves NanoClaw — deux par mesure, une par argument — puis merge

La review NanoClaw du 27/08 conclut « re-execution propre et arithmetiquement exacte des deux cotes » avec trois concerns explicitement non bloquants. Je les traite un par un plutot que de les laisser s'eteindre par ecoulement du temps.

Concern 3 — « les 3 README (+1/−1 chacun) non lus, impact nul attendu mais non verifie ». Leve par mesure, pas par pari. Les trois diffs, lus firsthand :

  • Probas/Infer/README.md : ligne 19, ajout de censure à droite exécutée (ConstrainPositive vs Kaplan–Meier) en fin de description ;
  • Probas/PyMC/README.md : ligne 19, ajout de censure à droite exécutée (naïf vs S(c_i) vs Kaplan–Meier) ;
  • Probas/README.md : meme ajout sur la ligne PyMC-19.

Une cellule de table chacun, aucune structure touchee, aucun marqueur de catalogue. L'impact attendu etait nul ; il l'est.

Concern 2 — « markdown non lu cell-by-cell ». C'est une portee de review declaree, pas un defaut impute a la PR — NanoClaw dit ce qu'il n'a pas couvert, ce qui est exactement la bonne pratique. Je l'ai couvert sur la partie qui portait le concern 1 (ci-dessous) ; le reste de la prose reste non audite ligne a ligne, et je l'ecris plutot que de laisser croire le contraire.

Concern 1 — « les ecarts vs theorie presentes comme des constatations separees, un etudiant pourrait y lire trois anomalies independantes ». Leve par argument, apres verification du texte — et la verification retourne largement le constat :

  • md[9] attribue deja l'ecart du posterieur au tirage, nommement : « elle est legerement inferieure au vrai lambda = 1e-3 non par biais du modele, mais parce que cet echantillon a tire une moyenne de 1262,9 h (queue haute) au lieu de 1000 » ;
  • md[18] attribue deja le tilt de forme au meme echantillon : « leger tilt vers k = 1,2 parce que cet echantillon exponentiel n'etait pas un exponentiel parfait » ;
  • le troisieme ecart n'est pas presente comme une anomalie du tout : l'output lui-meme imprime les deux nombres cote a cote et etiquette la theorie —
    Fraction censuree : 51,7 % (theorie : exp(-lambda c*) = 44,9 %) (cellule code 20, verifie dans les outputs commites, pas dans le body).

Deux des trois ecarts sont donc explicitement rattaches au tirage dans la prose, et le troisieme est affiche avec sa reference theorique dans la sortie executee. Le risque decrit — « trois anomalies independantes » — suppose un lecteur qui saute md[9] et md[18] ; il ne decoule pas du texte tel qu'il est ecrit. Ce qui manque au plus est une phrase de synthese reliant les trois au meme tirage, ce qui est un raffinement, pas un defaut a corriger avant merge.

Note honnete au passage : md[19] annonce « environ 45 % de censures » la ou la realisation est 51,7 %. Ce n'est pas une desynchro prose/output au sens C.5 — la phrase enonce la cible de conception (exp(-1e-3 x 800) = 44,9 %) et la sortie affiche la realisation avec sa theorie deux cellules plus loin. Un etudiant voit les deux.

Gate repasse a l'instant : check_unaddressed_nits.py 13062 -> rc=0 ; 3 derniers commentaires relus (les deux miens sur le rouge herite de main, plus la note de re-roll post-#13542 de la lane) ; mergeStateStatus: CLEAN ; variation_light_cap.py avec les arguments exacts de la CI (--replay charge et verifie) -> cap_reached: false, not LIGHT (effective DEEP), aucun HOLD §3.

@jsboige
jsboige merged commit 242ff9f into main Aug 30, 2026
63 of 64 checks passed
@jsboige
jsboige deleted the fix/13032-survival-censoring branch September 2, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Probas : exécuter la censure à droite dans les twins d'analyse de survie

4 participants