?>
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.
| Paramètre | Description |
|---|---|
| alpha | Spécifie le niveau de significativité à utiliser pour construire les limites de crédibilité à queues égales pour les marges prédictives. |
| applyRowOrder | Indique si l'ordre des lignes doit être appliqué. |
| attributes | Modifie les attributs des variables utilisées dans l'action. |
| class | Nomme les variables de classification à utiliser comme variables explicatives dans l'analyse. |
| differences | Spécifie les différences des marges prédictives. |
| display | Spécifie une liste de tables de résultats à envoyer au client pour affichage. |
| distributeChains | Spécifie un mode distribué qui divise l'échantillonnage MCMC dans un environnement de grille. |
| freq | Nomme la variable numérique qui contient la fréquence d'occurrence pour chaque observation. |
| inputs | Spécifie les variables d'entrée à utiliser dans l'analyse. |
| leafSigmaK | Spécifie la valeur utilisée pour déterminer la variance a priori pour le paramètre de feuille. |
| margins | Spécifie une marge prédictive. |
| maxTrainTime | Spécifie une limite supérieure (en secondes) sur le temps pour l'échantillonnage MCMC. |
| minLeafSize | Spé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. |
| missing | Spécifie comment gérer les valeurs manquantes dans les variables prédictives. |
| model | Nomme la variable dépendante et les effets explicatifs. |
| nBI | Spécifie le nombre d'itérations de burn-in à effectuer avant que l'action ne commence à sauvegarder les échantillons pour la prédiction. |
| nBins | Spécifie le nombre de classes à utiliser pour la discrétisation des variables d'entrée continues. |
| nClassLevelsPrint | Limite l'affichage des niveaux de classe. La valeur 0 supprime tous les niveaux. |
| nMC | Spécifie le nombre d'itérations MCMC, à l'exclusion des itérations de burn-in. |
| nominals | Spécifie les variables d'entrée nominales à utiliser dans l'analyse. |
| nThin | Spécifie le taux d'amincissement (thinning) de la simulation. |
| nTree | Spécifie le nombre d'arbres dans un échantillon de l'ensemble de somme d'arbres. |
| obsLeafMapInMem | Lorsque défini sur True, stocke en mémoire une correspondance de chaque observation aux nœuds terminaux lorsque le modèle est entraîné. |
| offset | Spécifie une variable d'offset numérique. |
| orderSplit | Spécifie la cardinalité minimale pour laquelle une entrée catégorielle utilise des règles de division selon l'ordre des niveaux. |
| output | Crée une table sur le serveur qui contient des statistiques par observation, calculées après l'ajustement du modèle. |
| outputMargins | Spécifie la table de sortie pour les marges prédictives. |
| outputTables | Liste les noms des tables de résultats à sauvegarder comme tables CAS sur le serveur. |
| partByFrac | Spécifie la fraction des données à utiliser pour les tests. |
| partByVar | Nomme la variable et ses valeurs utilisées pour partitionner les données en rôles d'entraînement et de test. |
| quantileBin | Lorsque 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. |
| sampleSummary | Crée une table sur le serveur qui contient un résumé des échantillons de l'ensemble de somme d'arbres. |
| seed | Spécifie une graine pour démarrer le générateur de nombres pseudo-aléatoires. |
| store | Stocke le modèle dans un objet de table binaire que vous pouvez utiliser pour le scoring. |
| table | Spécifie la table de données d'entrée. |
| target | Spécifie la variable cible. |
| trainInMem | Lorsque défini sur True, stocke les données en mémoire lorsque le modèle est entraîné. |
| treePrior | Spécifie le prieur de régularisation pour l'ensemble de somme d'arbres. |
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;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.
| 1 | PROC CAS; |
| 2 | bart.bartProbit TABLE={name='CreditData_fr'}, |
| 3 | target='Default', |
| 4 | inputs={'Age', 'Income', 'LoanAmount'}; |
| 5 | RUN; |
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.
| 1 | PROC 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}; |
| 11 | RUN; |