bart

bartScoreMargin

##set_bart

Description

L'action bartScoreMargin est l'outil de prédilection pour effectuer des analyses de type 'What-If' sur des modèles de régression bayésiens (BART). Elle permet de calculer des marges prédictives en fixant certaines variables à des valeurs précises tout en laissant les autres varier selon leur distribution observée. C'est un excellent moyen de mesurer l'effet marginal d'une variable (comme le sexe ou un traitement) sur la réponse prédite, sans les biais habituels. Parce que soyons honnêtes, prédire l'avenir c'est bien, mais comprendre pourquoi on le prédit ainsi, c'est encore mieux (et ça évite de blâmer le hasard) !

Syntaxe Officielle
bart.bartScoreMargin /
alpha=double,
casOut={casouttable},
differences={{evtMargin="string", label="string", name="string", refMargin="string"}},
display={displayTables},
marginInfo=TRUE | FALSE,
margins={{at={{value="string" | double, var="string"}}, label="string", name="string"}},
model={castable},
outputTables={outputTables},
seed=64-bit-integer,
table={castable};

Paramètres Clés

Nom du paramètre Description
alpha Spécifie le niveau de signification (par défaut 0.05) pour les intervalles de crédibilité bayésiens .
casOut Définit la table CAS de sortie pour stocker les résultats de scoring.
differences Permet de calculer la différence entre deux marges prédictives (ex: l'effet net d'un changement de catégorie).
margins Définit les scénarios (marges) à évaluer en spécifiant quelles variables fixer via le sous-paramètre 'at' .
model Spécifie la table binaire contenant le modèle BART entraîné précédemment (obligatoire) .
table La table de données d'entrée contenant les observations sur lesquelles calculer les marges.
marginInfo Si positionné à TRUE, génère une table récapitulant les variables et les valeurs utilisées pour les marges.

Préparation des données

Préparation d'un modèle BART pour l'analyse des marges

Nous utilisons les données 'Heart' pour créer un modèle prédisant le cholestérol en fonction de l'âge et du poids, afin de pouvoir ensuite analyser l'impact du sexe.

1DATA mycas.heart; SET sashelp.heart; RUN;
2PROC CAS;
3 bart.bartGauss /
4 TABLE="heart",
5 target="Cholesterol",
6 inputs={"AgeAtStart", "Weight", "Sex"},
7 casOut={name="heart_model", replace=true};
8RUN;

Exemples d'utilisation

Calcul d'une marge prédictive simple

Calcule la moyenne prédite du cholestérol si tout le monde dans l'échantillon était considéré comme une femme.

1PROC CAS;
2 bart.bartScoreMargin /
3 TABLE="heart",
4 model="heart_model",
5 margins={{name="Femmes", at={{var="Sex", value="Female"}}}};
6RUN;
Résultat Attendu :
Une table affichant la moyenne prédictive et les intervalles de crédibilité pour le scénario 'Femmes'.
Comparaison de marges (Différence Homme vs Femme)

On définit deux marges (Homme et Femme) et on demande explicitement le calcul de la différence entre les deux pour voir l'effet statistiquement significatif du sexe sur le cholestérol selon le modèle.

1PROC CAS;
2 bart.bartScoreMargin /
3 TABLE="heart",
4 model="heart_model",
5 margins={
6 {name="Marge_Femme", at={{var="Sex", value="Female"}}},
7 {name="Marge_Homme", at={{var="Sex", value="Male"}}}
8 },
9 differences={
10 {evtMargin="Marge_Femme", refMargin="Marge_Homme", name="Diff_F_H"}
11 },
12 marginInfo=true,
13 display={names={"PredictiveMargins", "MarginDiffs"}};
14RUN;
Résultat Attendu :
Affichage des marges pour chaque sexe ainsi que la table des différences montrant l'écart moyen de cholestérol entre les deux.