Skip to content

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

Description

@jsboigeEpita

Constat vérifié sur origin/main

Les deux notebooks d'analyse de survie expliquent correctement la censure à droite et la contribution de vraisemblance d'une observation censurée, S(c_i). Toutefois, cette notion structurante n'est jamais exécutée :

  • MyIA.AI.Notebooks/Probas/Infer/Infer-19-Survival-Analysis.ipynb : la section « Exercice 1 — Censure à droite » est suivie d'une cellule exécutée qui affiche seulement « Exercice 1 à compléter » ;
  • MyIA.AI.Notebooks/Probas/PyMC/PyMC-19-Survival-Analysis.ipynb : même situation, avec un TODO proposant pm.Potential mais aucune vraisemblance censurée effectivement construite.

Les autres sections exécutées utilisent des durées entièrement observées. L'apprenant ne voit donc ni l'effet statistique d'ignorer la censure, ni la correction apportée par les termes de survie.

La recherche des PR ouvertes touchant ces deux chemins n'a trouvé aucun véhicule concurrent au moment du constat.

Objectif pédagogique

Transformer l'exercice actuellement stubbé en comparaison exécutée commune aux deux twins, afin de montrer pourquoi une durée censurée ne doit pas être traitée comme un événement observé à l'instant de fin de suivi.

Critères d'acceptation

  • Construire un jeu de données reproductible mélangeant événements observés et observations censurées à droite, avec indicateur d'événement explicite.
  • Exécuter un modèle naïf qui traite toutes les durées comme observées et un modèle censuré utilisant f(t_i) pour les événements et S(c_i) pour les censures.
  • Implémenter la vraisemblance censurée avec le vrai moteur de chaque twin : Infer.NET côté C# et PyMC côté Python.
  • Comparer quantitativement l'estimation du taux ou des paramètres de durée aux paramètres générateurs, en rendant visible le biais du modèle naïf.
  • Comparer les courbes de survie estimées à la vérité simulée et à une estimation empirique adaptée aux censures, par exemple Kaplan–Meier.
  • Interpréter les résultats immédiatement après les sorties concernées et expliciter le rôle du terme S(c_i).
  • Conserver la parité pédagogique des twins sans imposer des sorties numériques identiques entre moteurs.
  • Ré-exécuter intégralement les deux notebooks avec outputs réels, execution_count non nuls et zéro erreur volontaire.
  • Mettre à jour le registre twin canonique si les cellules partagées changent.

Hors scope

  • Modèles à risques proportionnels et covariables multiples.
  • Données cliniques ou industrielles réelles.
  • Censure par intervalle ou troncature à gauche.

Activity

  1. myia-po-2023 commented on Aug 26, 2026

    @myia-po-2023
    Collaborator

    [CLAIMED] #13032 — myia-po-2023:CoursIA-2 2026-08-26T00:00Z — paths: MyIA.AI.Notebooks/Probas/Infer/Infer-19-Survival-Analysis.ipynb, MyIA.AI.Notebooks/Probas/PyMC/PyMC-19-Survival-Analysis.ipynb, scripts/notebook_tools/twin_pairs.d/probas-19-survival-analysis.yaml

  2. myia-po-2023 commented on Aug 26, 2026

    @myia-po-2023
    Collaborator

    [DELIVERED] PR #13062 — les 8 critères d'acceptation couverts : jeu censuré reproductible (c*=800h, indicateur explicite), naïf vs censuré exécutés avec les vrais moteurs (PyMC pm.Potential / Infer.NET forme exacte en statistiques suffisantes — la contrainte T_i > c* n'est compilable ni en EP ni en VMP, opérateur Factor.Difference(Gamma, const) absent, vérifié empiriquement), comparaison quantitative au générateur (biais naïf 1,99x / 1,62x, identité N/n_obs vérifiée des deux côtés), courbes de survie vs vérité vs Kaplan-Meier (implémenté des deux côtés), interprétations après sorties avec rôle de S(c_i) explicite, parité des twins maintenue (nouvel Exercice 3 « sensibilité » identique des deux côtés), re-exécutions intégrales (ec 1-12 / 1-14, 0 erreur), registre twin rebaseliné même PR (drift_introduced: 0). Fixes environnement au passage (règle F) : ArviZ 1.x ic kwarg, pin NuGet 0.4.2504.701 (restore pendait derrière le proxy).

  3. added 2 commits that reference this issue on Aug 26, 2026
  4. added 2 commits that reference this issue on Aug 27, 2026
  5. added 9 commits that reference this issue on Aug 28, 2026
  6. 4 remaining items

  7. added 13 commits that reference this issue on Aug 29, 2026
  8. added a commit that references this issue on Aug 30, 2026
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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions