?> bartProbit - WeAreCAS
bart

bartProbit

Description

Ajuste des modèles d'arbres de régression additifs bayésiens (BART) probit à des données de réponse distribuées de manière binaire.

bart.bartProbit <result=results> <status=rc> / alpha=double, applyRowOrder=TRUE | FALSE, attributes={{casinvardesc-1} <, {casinvardesc-2}, ...>}, class={{classStatement-1} <, {classStatement-2}, ...>}, differences={{bartScoreMargin_scoreDiff-1} <, {bartScoreMargin_scoreDiff-2}, ...>}, display={displayTables}, distributeChains=integer, freq="variable-name", inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>}, leafSigmaK=double, margins={{bartScoreMargin_evaluate-1} <, {bartScoreMargin_evaluate-2}, ...>}, maxTrainTime=double, minLeafSize=integer, missing="MACBIG" | "MACSMALL" | "NONE" | "SEPARATE", model={bartProbitModel}, nBI=integer, nBins=integer, nClassLevelsPrint=integer, nMC=integer, nominals={{casinvardesc-1} <, {casinvardesc-2}, ...>}, nThin=integer, nTree=integer, obsLeafMapInMem=TRUE | FALSE, offset="variable-name", orderSplit=integer, output={bartBinOutputStatement}, outputMargins={casouttable}, outputTables={outputTables}, partByFrac={partByFracStatement}, partByVar={partByVarStatement}, quantileBin=TRUE | FALSE, sampleSummary={bartProbit_sampleSummary}, seed=64-bit-integer, store={casouttablebasic}, table={castable}, target="variable-name", trainInMem=TRUE | FALSE, treePrior={bart_treePrior} ;
Paramètres
ParamètreDescription
alphaSpécifie le niveau de significativité à utiliser pour construire les limites de crédibilité à queues égales pour les marges prédictives.
applyRowOrderIndique si l'ordre des lignes doit être appliqué.
attributesModifie les attributs des variables utilisées dans l'action.
classNomme les variables de classification à utiliser comme variables explicatives dans l'analyse.
differencesSpécifie les différences des marges prédictives.
displaySpécifie une liste de tables de résultats à envoyer au client pour affichage.
distributeChainsSpécifie un mode distribué qui divise l'échantillonnage MCMC dans un environnement de grille.
freqNomme la variable numérique qui contient la fréquence d'occurrence pour chaque observation.
inputsSpécifie les variables d'entrée à utiliser dans l'analyse.
leafSigmaKSpécifie la valeur utilisée pour déterminer la variance a priori pour le paramètre de feuille.
marginsSpécifie une marge prédictive.
maxTrainTimeSpécifie une limite supérieure (en secondes) sur le temps pour l'échantillonnage MCMC.
minLeafSizeSpécifie le nombre minimum d'observations que chaque enfant d'une division doit contenir dans les données d'entraînement pour que la division soit considérée.
missingSpécifie comment gérer les valeurs manquantes dans les variables prédictives.
modelNomme la variable dépendante et les effets explicatifs.
nBISpécifie le nombre d'itérations de burn-in à effectuer avant que l'action ne commence à sauvegarder les échantillons pour la prédiction.
nBinsSpécifie le nombre de classes à utiliser pour la discrétisation des variables d'entrée continues.
nClassLevelsPrintLimite l'affichage des niveaux de classe. La valeur 0 supprime tous les niveaux.
nMCSpécifie le nombre d'itérations MCMC, à l'exclusion des itérations de burn-in.
nominalsSpécifie les variables d'entrée nominales à utiliser dans l'analyse.
nThinSpécifie le taux d'amincissement (thinning) de la simulation.
nTreeSpécifie le nombre d'arbres dans un échantillon de l'ensemble de somme d'arbres.
obsLeafMapInMemLorsque défini sur True, stocke en mémoire une correspondance de chaque observation aux nœuds terminaux lorsque le modèle est entraîné.
offsetSpécifie une variable d'offset numérique.
orderSplitSpécifie la cardinalité minimale pour laquelle une entrée catégorielle utilise des règles de division selon l'ordre des niveaux.
outputCrée une table sur le serveur qui contient des statistiques par observation, calculées après l'ajustement du modèle.
outputMarginsSpécifie la table de sortie pour les marges prédictives.
outputTablesListe les noms des tables de résultats à sauvegarder comme tables CAS sur le serveur.
partByFracSpécifie la fraction des données à utiliser pour les tests.
partByVarNomme la variable et ses valeurs utilisées pour partitionner les données en rôles d'entraînement et de test.
quantileBinLorsque défini sur True, spécifie que les limites des classes sont définies aux quantiles des entrées numériques au lieu de classes de largeur égale.
sampleSummaryCrée une table sur le serveur qui contient un résumé des échantillons de l'ensemble de somme d'arbres.
seedSpécifie une graine pour démarrer le générateur de nombres pseudo-aléatoires.
storeStocke le modèle dans un objet de table binaire que vous pouvez utiliser pour le scoring.
tableSpécifie la table de données d'entrée.
targetSpécifie la variable cible.
trainInMemLorsque défini sur True, stocke les données en mémoire lorsque le modèle est entraîné.
treePriorSpécifie le prieur de régularisation pour l'ensemble de somme d'arbres.
Préparation des Données
Création de Données pour le Modèle Probit

Ce bloc de code SAS crée une table CAS nommée 'CreditData_fr'. Il génère des données simulées sur le crédit client, incluant une variable cible binaire 'Default' (0 pour non-défaut, 1 pour défaut) et plusieurs variables prédictives comme l'âge, le revenu, le montant du prêt et la catégorie de client. Ces données sont idéales pour illustrer l'utilisation d'un modèle probit pour prédire la probabilité de défaut de paiement.

data casuser.CreditData_fr;
  call streaminit(123);
  do i = 1 to 1000;
    Age = 20 + floor(rand('Uniform') * 50);
    Income = 30000 + floor(rand('Uniform') * 70000);
    LoanAmount = 5000 + floor(rand('Uniform') * 45000);
    if rand('Uniform') < 0.6 then CustomerCategory = 'A';
    else if rand('Uniform') < 0.85 then CustomerCategory = 'B';
    else CustomerCategory = 'C';
    
    z = -2.5 + (Age / 20) - (Income / 50000) + (LoanAmount / 20000);
    if CustomerCategory = 'B' then z = z + 0.5;
    if CustomerCategory = 'C' then z = z + 1.0;
    
    prob = cdf('Normal', z);
    if rand('Uniform') < prob then Default = 1;
    else Default = 0;
    
    output;
  end;
run;

Exemples

Cet exemple montre comment ajuster un modèle BART probit simple. Il utilise la table 'CreditData_fr', avec 'Default' comme variable cible et 'Age', 'Income' et 'LoanAmount' comme prédicteurs continus.

Code SAS® / CAS
Copié !
1PROC CAS;
2 bart.bartProbit TABLE={name='CreditData_fr'},
3 target='Default',
4 inputs={'Age', 'Income', 'LoanAmount'};
5RUN;
Résultat :
Le résultat affichera les informations sur le modèle, le résumé du traitement des observations, les hyperparamètres du modèle BART et les statistiques d'ajustement. Ces tables fournissent un aperçu complet du modèle ajusté et de sa performance initiale.

Cet exemple plus complexe ajuste un modèle BART probit en incluant une variable catégorielle ('CustomerCategory'). Il spécifie également des paramètres de modèle tels que le nombre d'arbres (nTree=100) et le nombre d'itérations de burn-in (nBI=500). De plus, il partitionne les données en utilisant 70% pour l'entraînement et 30% pour le test, et stocke le modèle ajusté dans une table CAS nommée 'bart_model_store' pour une utilisation ultérieure.

Code SAS® / CAS
Copié !
1PROC CAS;
2 bart.bartProbit TABLE={name='CreditData_fr'},
3 target='Default',
4 inputs={'Age', 'Income', 'LoanAmount', 'CustomerCategory'},
5 class={'CustomerCategory'},
6 nTree=100,
7 nBI=500,
8 seed=12345,
9 partByFrac={test=0.3, seed=54321},
10 store={name='bart_model_store', replace=true};
11RUN;
Résultat :
Les résultats incluront des informations détaillées sur le modèle, y compris les hyperparamètres spécifiés, les informations sur les niveaux des variables de classe, et les statistiques d'ajustement pour les ensembles de données d'entraînement et de test. Une table de résultats confirmera également que le modèle a été sauvegardé avec succès dans la table CAS 'bart_model_store'.

FAQ

À quoi sert l'action `bartProbit` ?
Quel type de données l'action `bartProbit` traite-t-elle ?
Que contrôle le paramètre `nTree` ?
Comment l'action `bartProbit` gère-t-elle les valeurs manquantes dans les prédicteurs ?
Quelle est l'utilité du paramètre `store` ?