bart

bartScoreMargin

Description

Calcule les marges prédictives en utilisant un modèle ajusté d'arbres de régression additifs bayésiens (BART). Cette action est particulièrement utile pour interpréter les modèles en évaluant l'effet moyen d'une ou plusieurs variables sur la prédiction, tout en maintenant les autres variables à leurs valeurs observées.

bart.bartScoreMargin { alpha=double, casOut={caslib='string', compress=TRUE|FALSE, indexVars={'variable-name-1' <, 'variable-name-2', ...>}, label='string', lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat='DVR'|'INHERIT'|'STANDARD', name='table-name', promote=TRUE|FALSE, replace=TRUE|FALSE, replication=integer, tableRedistUpPolicy='DEFER'|'NOREDIST'|'REBALANCE', threadBlockSize=64-bit-integer, timeStamp='string', where={'string-1' <, 'string-2', ...>}}, differences={{evtMargin='string', label='string', name='string', refMargin='string'}, {...}}, display={caseSensitive=TRUE|FALSE, exclude=TRUE|FALSE, excludeAll=TRUE|FALSE, keyIsPath=TRUE|FALSE, names={'string-1' <, 'string-2', ...>}, pathType='LABEL'|'NAME', traceNames=TRUE|FALSE}, marginInfo=TRUE|FALSE, margins={{at={{value='string'|double, var='string'}, {...}}, label='string', name='string'}, {...}}, model={caslib='string', dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}, name='table-name', whereTable={casLib='string', dataSourceOptions={...}, importOptions={...}, name='table-name', vars={{...}}, where='where-expression'}}, outputTables={groupByVarsRaw=TRUE|FALSE, includeAll=TRUE|FALSE, names={'string-1' <, 'string-2', ...>}|{key-1={casouttable-1} <, key-2={casouttable-2}, ...>}, repeated=TRUE|FALSE, replace=TRUE|FALSE}, seed=64-bit-integer, table={caslib='string', computedOnDemand=TRUE|FALSE, computedVars={{...}}, computedVarsProgram='string', dataSourceOptions={...}, groupBy={{...}}, groupByMode='NOSORT'|'REDISTRIBUTE', importOptions={...}, name='table-name', orderBy={{...}}, singlePass=TRUE|FALSE, vars={{...}}, where='where-expression', whereTable={...}} };
Paramètres
ParamètreDescription
alphaSpécifie le niveau de significativité pour la construction de tous les intervalles de crédibilité à queues égales.
casOutSpécifie les paramètres pour une table de sortie.
differencesSpécifie les différences de marges prédictives à calculer.
displaySpécifie une liste de tables de résultats à envoyer au client pour affichage.
marginInfoDemande une table résumant les variables qui définissent la marge prédictive et les valeurs auxquelles elles sont fixées.
marginsSpécifie une ou plusieurs marges prédictives à calculer.
modelSpécifie la table de modèle binaire issue d'un ajustement de modèle BART précédent.
outputTablesListe les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur.
seedSpécifie la graine pour le générateur de nombres pseudo-aléatoires.
tableSpécifie la table de données d'entrée pour le scoring.
Préparation des Données Voir la fiche de ce code dataprep
Création des données de démonstration

Ce bloc de code crée une table CAS nommée `sim_data` qui sera utilisée dans les exemples. La table contient une variable de réponse `y`, deux variables prédictives continues (`x1`, `x2`) et une variable catégorielle `c1`. Ces données simulées permettent d'illustrer comment ajuster un modèle BART et ensuite calculer les marges prédictives.

Copié !
1DATA casuser.sim_data;
2 call streaminit(123);
3 DO i = 1 to 100;
4 x1 = rand('UNIFORM');
5 x2 = rand('UNIFORM');
6 IF rand('UNIFORM') < 0.5 THEN c1 = 'A';
7 ELSE c1 = 'B';
8 y = 10 * sin(3.14 * x1 * x2) + 20 * (x2 - 0.5)**2 + 10 * (c1='A') + rand('NORMAL');
9 OUTPUT;
10 END;
11RUN;

Exemples

Cet exemple montre comment calculer une marge prédictive simple après avoir ajusté un modèle `bartGauss`. Nous calculons la prédiction moyenne lorsque la variable `x1` est fixée à 0.5.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 LOADACTIONSET 'bart';
3 
4 /* Ajuster un modèle BART */
5 bart.bartGauss TABLE='sim_data',
6 model={depvar='y', effects={'x1', 'x2', 'c1'}},
7 store={name='bart_model', replace=true};
8 RUN;
9 
10 /* Calculer la marge prédictive */
11 bart.bartScoreMargin TABLE='sim_data',
12 model='bart_model',
13 margins={{name='margin_x1_05', at={{var='x1', value=0.5}}}};
14 RUN;
15QUIT;
Résultat :
La sortie inclura une table 'PredMargins' contenant la moyenne prédictive, l'écart-type, et les limites de crédibilité pour le scénario où x1 est fixé à 0.5.

Cet exemple plus détaillé illustre comment définir plusieurs scénarios de marge, calculer leurs prédictions, puis calculer la différence entre ces marges. Nous créons deux scénarios : un où `c1` est 'A' et un autre où `c1` est 'B'. Ensuite, nous calculons la différence entre ces deux marges pour évaluer l'effet de la variable `c1`.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 LOADACTIONSET 'bart';
3 
4 /* Ajuster un modèle BART */
5 bart.bartGauss TABLE='sim_data',
6 model={depvar='y', effects={'x1', 'x2', 'c1'}},
7 store={name='bart_model_detailed', replace=true};
8 RUN;
9 
10 /* Calculer plusieurs marges et leurs différences */
11 bart.bartScoreMargin TABLE='sim_data',
12 model='bart_model_detailed',
13 margins={
14 {name='margin_c1_A', label='Catégorie A', at={{var='c1', value='A'}}},
15 {name='margin_c1_B', label='Catégorie B', at={{var='c1', value='B'}}}
16 },
17 differences={
18 {name='diff_A_vs_B', label='Effet de A vs B', evtMargin='margin_c1_A', refMargin='margin_c1_B'}
19 },
20 casOut={name='predictive_margins_output', replace=true},
21 marginInfo=true;
22 RUN;
23QUIT;
Résultat :
Les résultats contiendront plusieurs tables : 'MarginInfo' décrivant les scénarios, 'PredMargins' avec les résultats pour chaque marge, 'Diffs' montrant la différence calculée entre les marges, et une table de sortie 'predictive_margins_output' dans la caslib active contenant les résultats complets.

FAQ

Quel est l'objectif de l'action bart.bartScoreMargin ?
Comment spécifier le modèle BART ajusté à utiliser pour le calcul des marges ?
Quel paramètre est utilisé pour définir les scénarios de marges prédictives à calculer ?
Comment peut-on calculer la différence entre deux marges prédictives ?
À quoi sert le paramètre `alpha` ?
Comment sauvegarder les résultats des marges calculées dans une table CAS ?
Quelle est la fonction principale de l'action bart.bartScoreMargin dans SAS Viya?
Comment spécifier le modèle BART à utiliser pour le calcul des marges prédictives?
À quoi sert le paramètre `margins` et comment est-il structuré?
Peut-on calculer la différence entre deux marges prédictives?
Que contrôle le paramètre `alpha`?
Comment obtenir une table résumant les variables définissant les marges prédictives?
Quel est l'objectif de l'action `bartScoreMargin` ?
Quels sont les paramètres obligatoires pour utiliser `bartScoreMargin` ?
Comment définir un scénario pour calculer une marge prédictive ?
Peut-on comparer différentes marges prédictives ?
Qu'est-ce que le paramètre `alpha` contrôle ?

Scénarios associés

Cas d'usage
Analyse de l'impact d'une campagne publicitaire sur la valeur d'achat client

Une entreprise de e-commerce souhaite mesurer l'efficacité d'une nouvelle campagne publicitaire ciblée. L'objectif est de quantifier l'augmentation (uplift) de la valeur d'achat...

Cas d'usage
Scoring à grande échelle de l'efficacité d'un traitement médical

Une organisation de recherche clinique analyse les données d'un essai à grande échelle (500 000 patients). Elle doit évaluer l'effet de différentes doses d'un nouveau médicament...

Cas d'usage
Robustesse du scoring face à des données de capteurs manquantes en maintenance prédictive

Un fabricant industriel utilise des modèles pour prédire le risque de défaillance de ses équipements à partir de données de capteurs. Cependant, les données réelles sont souvent...