?>
L'action `bartGauss` de l'ensemble d'actions `bart` (Bayesian Additive Regression Trees) est utilisée pour ajuster des modèles d'arbres de régression additifs bayésiens. Elle est spécifiquement conçue pour les situations où la variable de réponse suit une distribution normale. Cette méthode est un puissant algorithme d'apprentissage automatique non paramétrique qui modélise la relation entre les prédicteurs et une réponse continue en construisant un ensemble d'arbres de régression. Le modèle final est la somme des prédictions de tous les arbres, ce qui le rend robuste et capable de capturer des interactions complexes et des relations non linéaires dans les données.
| Paramètre | Description |
|---|---|
| alpha | Spécifie le niveau de significativité pour construire les limites de crédibilité pour les marges prédictives. |
| attributes | Modifie les attributs des variables utilisées dans l'action. |
| class | Désigne les variables de classification à utiliser comme variables explicatives. |
| 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. |
| distributeChains | Spécifie un mode distribué qui divise l'échantillonnage MCMC dans un environnement de grille. |
| freq | Désigne la variable numérique contenant 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 à calculer. |
| maxTrainTime | Spécifie une limite supérieure (en secondes) pour la durée de l'échantillonnage MCMC. |
| minLeafSize | Spécifie le nombre minimum d'observations que chaque enfant d'une division doit contenir. |
| missing | Spécifie comment gérer les valeurs manquantes dans les variables prédictives ('MACBIG', 'MACSMALL', 'NONE', 'SEPARATE'). |
| model | Désigne la variable dépendante et les effets explicatifs. |
| nBI | Spécifie le nombre d'itérations de burn-in (rodage) à effectuer avant de commencer à sauvegarder les échantillons. |
| nBins | Spécifie le nombre de classes (bins) à utiliser pour discrétiser les variables d'entrée continues. |
| nClassLevelsPrint | Limite l'affichage des niveaux de variables de classe. |
| nMC | Spécifie le nombre d'itérations MCMC, hors itérations de burn-in. |
| nMCDist | Spécifie le nombre d'itérations MCMC pour chaque chaîne lorsque plusieurs chaînes sont utilisées. |
| 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 | Si VRAI, stocke en mémoire une table de correspondance de chaque observation aux nœuds terminaux. |
| 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 contenant 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 en tant que tables CAS. |
| partByFrac | Spécifie la fraction des données à utiliser pour les tests. |
| partByVar | Désigne la variable et ses valeurs utilisées pour partitionner les données en ensembles d'entraînement et de test. |
| quantileBin | Si VRAI, les limites des classes sont définies aux quantiles des entrées numériques. |
| sampleSummary | Crée une table contenant 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. |
| sigmaDF | Spécifie les degrés de liberté de la loi a priori Scaled Inverse Chi-Square pour le paramètre de variance. |
| sigmaLambda | Spécifie le paramètre d'échelle de la loi a priori Scaled Inverse Chi-Square pour la variance. |
| sigmaQuantile | Spécifie le niveau de quantile à utiliser pour déterminer le paramètre d'échelle de la loi a priori pour la variance. |
| store | Stocke le modèle dans un objet 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 | Si VRAI, stocke les données en mémoire lors de l'entraînement du modèle. |
| treePrior | Spécifie la loi a priori de régularisation pour l'ensemble de somme d'arbres. |
| varAutoCorr | Spécifie les retards d'autocorrélation pour le paramètre de variance. |
| varEst | Spécifie la valeur initiale pour la variance. |
Ce bloc de code SAS crée une table CAS nommée `my_regression_data`. Cette table contient 1000 observations avec une variable dépendante `y` et 10 variables prédictives indépendantes (`x1` à `x10`). Les données sont générées de manière aléatoire pour simuler un problème de régression typique, où `y` est une combinaison linéaire des `x` avec un bruit gaussien ajouté. Cette table sera utilisée dans les exemples pour entraîner et évaluer le modèle BART.
1 DATA mycas.my_regression_data; 2 call streaminit(123); 3 DO i = 1 to 1000; 4 y = 10 + 5*rand('NORMAL') + 2*rand('UNIFORM'); 5 x1 = rand('UNIFORM') * 10; 6 x2 = rand('UNIFORM') * 5; 7 x3 = rand('NORMAL', 0, 2); 8 x4 = rand('NORMAL', 5, 3); 9 x5 = rand('POISSON', 3); 10 x6 = rand('INTEGER', 1, 10); 11 x7 = rand('BERNOULLI', 0.3); 12 x8 = rand('BERNOULLI', 0.6); 13 x9 = rand('NORMAL', 10, 5); 14 x10 = rand('UNIFORM') * 20; 15 OUTPUT; 16 END; 17 RUN;
Cet exemple montre comment ajuster un modèle BART de base avec les paramètres par défaut. Nous spécifions la table d'entrée `my_regression_data`, la variable cible `y` et les variables prédictives `x1` à `x10`. C'est le moyen le plus simple d'exécuter l'action `bartGauss`.
| 1 | PROC CAS; |
| 2 | bart.bartGauss / |
| 3 | TABLE={name='my_regression_data'}, |
| 4 | model={depVars={{name='y'}}, effects={{vars={'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10'}}}; |
| 5 | RUN; |
Cet exemple avancé montre comment utiliser plusieurs options de l'action `bartGauss`. Nous partitionnons les données en 80% pour l'entraînement et 20% pour le test. Nous personnalisons les priors de l'arbre (`treePrior`) et de la variance (`sigmaDF`, `sigmaQuantile`). Le modèle est stocké dans une table CAS nommée `bart_model_store` pour un scoring ultérieur. De plus, une table de sortie `bart_predictions` est générée, contenant les valeurs prédites (`Pred_y`) et les résidus (`Resid_y`) pour chaque observation.
| 1 | PROC CAS; |
| 2 | bart.bartGauss / |
| 3 | TABLE={name='my_regression_data'}, |
| 4 | model={depVars={{name='y'}}, effects={{vars={'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10'}}}}, |
| 5 | partByFrac={test=0.2, seed=456}, |
| 6 | nTree=100, |
| 7 | nBI=500, |
| 8 | nMC=2000, |
| 9 | treePrior={depthPower=1.5, pSplit=0.6, pPrune=0.4}, |
| 10 | sigmaDF=5, |
| 11 | sigmaQuantile=0.95, |
| 12 | OUTPUT={casOut={name='bart_predictions', replace=true}, pred='Pred_y', resid='Resid_y'}, |
| 13 | store={name='bart_model_store', replace=true}; |
| 14 | RUN; |