?> bartScore - WeAreCAS
bart

bartScore

Description

L'action `bartScore` est utilisée pour appliquer un modèle d'arbres de régression additifs bayésiens (BART) préalablement entraîné à un nouveau jeu de données afin de générer des prédictions (scoring). Elle charge un modèle sauvegardé et calcule les statistiques de sortie pour chaque observation dans la table de scoring, telles que les valeurs prédites, les résidus, et les intervalles de crédibilité.

bart.bartScore { alpha=double, avgOnly=TRUE | FALSE, casOut={...}, copyVars={...}, into="string", intoCutpt=double, lcl="string", pred="string", resid="string", restore={...}, seed=64-bit-integer, table={...}, ucl="string" };
Paramètres
ParamètreDescription
alphaSpécifie le niveau de significativité pour la construction des intervalles de crédibilité. La valeur par défaut est 0.05.
avgOnlySi défini sur FALSE, les prédictions de chaque échantillon MCMC sont incluses dans la table de sortie, en plus de la moyenne des prédictions. Par défaut, il est défini sur TRUE, ce qui ne sort que la moyenne.
casOutSpécifie la table de sortie CAS pour stocker les résultats du scoring. Ce paramètre est obligatoire.
copyVarsSpécifie une liste de variables à copier de la table d'entrée vers la table de sortie `casOut`.
intoSpécifie le nom de la variable qui contiendra la décision de classification binaire, basée sur le seuil `intoCutpt`.
intoCutptSpécifie le seuil de probabilité pour la classification. La valeur par défaut est 0.5.
lclSpécifie le nom de la variable pour la limite de crédibilité inférieure de la prédiction.
predSpécifie le nom de la variable pour la valeur prédite moyenne. Par défaut, le nom est '_SAMP_MEAN_'.
residSpécifie le nom de la variable pour le résidu (différence entre la valeur réelle et la valeur prédite).
restoreSpécifie la table CAS contenant le modèle BART entraîné à utiliser pour le scoring. Ce paramètre est obligatoire.
seedSpécifie la graine (seed) pour le générateur de nombres pseudo-aléatoires, assurant la reproductibilité des résultats. La valeur par défaut est 0, ce qui génère une graine aléatoire.
tableSpécifie la table de données d'entrée à scorer. Ce paramètre est obligatoire.
uclSpécifie le nom de la variable pour la limite de crédibilité supérieure de la prédiction.
Préparation des Données
Création des jeux de données d'entraînement et de scoring

Ce code crée deux tables CAS. `mycas.cars_train` est utilisée pour entraîner un modèle BART, et `mycas.cars_score` est utilisée pour appliquer ce modèle et générer des prédictions. Le modèle sera sauvegardé dans `mycas.bart_model`.

1DATA mycas.cars_train; SET sashelp.cars; keep Make Model Type Origin DriveTrain MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway Weight Wheelbase LENGTH; RUN;
2DATA mycas.cars_score; SET sashelp.cars; IF mod(_n_, 5) = 0; keep Make Model Type Origin DriveTrain MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway Weight Wheelbase LENGTH; RUN;
3PROC CAS;
4 bart.bartGauss TABLE={name='cars_train'},
5 model={depVars={{name='MSRP'}}, effects={{vars={'Type', 'Origin', 'DriveTrain', 'EngineSize', 'Cylinders', 'Horsepower', 'MPG_City', 'Weight'}}}},
6 store={name='bart_model', replace=true};
7RUN;
8QUIT;

Exemples

Cet exemple utilise le modèle BART (`bart_model`) précédemment entraîné pour scorer les données de la table `cars_score`. La table de sortie `cars_scored_simple` contiendra les prédictions moyennes.

Code SAS® / CAS
Copié !
1PROC CAS; bart.bartScore TABLE={name='cars_score'}, restore={name='bart_model'}, casOut={name='cars_scored_simple', replace=true}; RUN; QUIT;
Résultat :
Une table CAS nommée `cars_scored_simple` est créée. Elle contient les observations de `cars_score` avec une nouvelle colonne `_SAMP_MEAN_` représentant la prédiction du MSRP pour chaque véhicule.

Cet exemple plus complet effectue un scoring et génère des statistiques supplémentaires : les limites de crédibilité inférieure (LCL) et supérieure (UCL) à 90% (alpha=0.1), la valeur prédite, et le résidu. Il copie également les variables `Make`, `Model` et `MSRP` de la table d'entrée vers la table de sortie pour faciliter la comparaison.

Code SAS® / CAS
Copié !
1PROC CAS; bart.bartScore TABLE={name='cars_score'}, restore={name='bart_model'}, alpha=0.1, copyVars={'Make', 'Model', 'MSRP'}, pred='Predicted_MSRP', lcl='LCL_MSRP', ucl='UCL_MSRP', resid='Residual', casOut={name='cars_scored_detailed', replace=true}; RUN; QUIT;
Résultat :
Une table CAS nommée `cars_scored_detailed` est créée. Elle contient les colonnes `Make`, `Model`, `MSRP` (de la table originale), ainsi que les nouvelles colonnes `Predicted_MSRP`, `LCL_MSRP`, `UCL_MSRP`, et `Residual`.

Après avoir entraîné un modèle de classification avec `bartProbit`, cet exemple montre comment scorer de nouvelles données. Il génère la probabilité prédite et une variable de classification `Into_HighMSRP` basée sur un seuil de 0.4.

Code SAS® / CAS
Copié !
1PROC CAS;
2 /* Étape 1: Entraîner un modèle de classification binaire */
3 bart.bartProbit TABLE={name='cars_train', where='MSRP is not null'},
4 model={depVars={{name='MSRP', event='1'}}, effects={{vars={'Type', 'Origin', 'DriveTrain', 'EngineSize', 'Horsepower'}}}},
5 class={'Type', 'Origin', 'DriveTrain'},
6 event='1', /* L'événement est 'MSRP élevé' */
7 responseLevelOrder='ASC',
8 store={name='bart_probit_model', replace=true};
9 /* Étape 2: Scorer avec le modèle de classification */
10 bart.bartScore TABLE={name='cars_score'},
11 restore={name='bart_probit_model'},
12 pred='Prob_HighMSRP',
13 into='Into_HighMSRP',
14 intoCutpt=0.4,
15 copyVars={'Make', 'Model', 'MSRP'},
16 casOut={name='cars_scored_probit', replace=true};
17RUN;
18QUIT;
Résultat :
Une table CAS `cars_scored_probit` est créée. Elle inclut les colonnes originales copiées, la probabilité prédite d'avoir un MSRP élevé (`Prob_HighMSRP`), et une colonne de décision (`Into_HighMSRP`) qui vaut 1 si la probabilité est supérieure à 0.4, et 0 sinon.

FAQ

Quel est l'objectif de l'action bartScore ?
Quels sont les paramètres obligatoires pour l'action bartScore ?
Comment puis-je enregistrer les valeurs prédites et les résidus ?
Est-il possible d'obtenir les limites de crédibilité pour les prédictions ?
Comment inclure des variables de la table d'entrée dans la table de sortie ?