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.
| Paramètre | Description |
|---|---|
| alpha | Spécifie le niveau de significativité pour la construction de tous les intervalles de crédibilité à queues égales. |
| casOut | Spécifie les paramètres pour une table de sortie. |
| differences | Spécifie les différences de marges prédictives à calculer. |
| display | Spécifie une liste de tables de résultats à envoyer au client pour affichage. |
| marginInfo | Demande une table résumant les variables qui définissent la marge prédictive et les valeurs auxquelles elles sont fixées. |
| margins | Spécifie une ou plusieurs marges prédictives à calculer. |
| model | Spécifie la table de modèle binaire issue d'un ajustement de modèle BART précédent. |
| outputTables | Liste les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur. |
| seed | Spécifie la graine pour le générateur de nombres pseudo-aléatoires. |
| table | Spécifie la table de données d'entrée pour le scoring. |
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.
| 1 | DATA 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; |
| 11 | RUN; |
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.
| 1 | PROC 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; |
| 15 | QUIT; |
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`.
| 1 | PROC 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; |
| 23 | QUIT; |
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...
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...
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...