bart

bartProbit

##set_bart

Description

L'action bartProbit ajuste des modèles d'arbres de régression additifs bayésiens (BART) pour des données de réponse binaire. Contrairement aux forêts aléatoires classiques, le BART utilise un cadre probabiliste bayésien où chaque arbre contribue par de petits ajustements à la prédiction globale. C'est un peu comme si vous demandiez l'avis à 200 experts (les arbres) qui, au lieu de crier tous en même temps, murmurent chacun une petite partie de la vérité pour arriver à un consensus probabiliste très robuste.

Syntaxe Officielle
bart.bartProbit /
alpha=double,
applyRowOrder=boolean,
attributes={{casinvardesc}},
class={{classStatement}},
differences={{bartScoreMargin_scoreDiff}},
display={displayTables},
distributeChains=integer,
freq="variable-name",
inputs={{casinvardesc}},
leafSigmaK=double,
margins={{bartScoreMargin_evaluate}},
maxTrainTime=double,
minLeafSize=integer,
missing="MACBIG" | "MACSMALL" | "NONE" | "SEPARATE",
model={bartProbitModel},
nBI=integer,
nBins=integer,
nClassLevelsPrint=integer,
nMC=integer,
nominals={{casinvardesc}},
nThin=integer,
nTree=integer,
obsLeafMapInMem=boolean,
offset="variable-name",
orderSplit=integer,
output={bartBinOutputStatement},
outputMargins={casouttable},
outputTables={outputTables},
partByFrac={partByFracStatement},
partByVar={partByVarStatement},
quantileBin=boolean,
sampleSummary={bartProbit_sampleSummary},
seed=64-bit-integer,
store={casouttablebasic},
table={castable},
target="variable-name",
trainInMem=boolean,
treePrior={bart_treePrior}

Paramètres Clés

Nom du paramètre Description
table La table d'entrée contenant les données d'entraînement.
model Définit la structure du modèle, notamment la variable cible (depVars) et les prédicteurs (effects).
nTree Nombre d'arbres dans l'ensemble (200 par défaut). Plus d'arbres permettent de capturer des interactions complexes, mais augmentent le temps de calcul.
nMC Nombre d'itérations MCMC après la période de chauffe. C'est ici que la magie opère pour générer la distribution postérieure.
nBI Nombre d'itérations de 'burn-in' pour permettre à l'algorithme de converger avant de collecter des échantillons.
seed Graine aléatoire pour la reproductibilité. Indispensable si vous voulez obtenir les mêmes résultats demain matin avant votre café.
output Spécifie la table de sortie pour les statistiques par observation (probabilités prédites, limites de confiance).
treePrior Paramètres de régularisation pour contrôler la profondeur et la complexité des arbres (alpha et beta de la distribution a priori).

Préparation des données

Génération de données binaires synthétiques

Création d'un jeu de données avec une cible binaire 'y' influencée par deux variables continues.

1DATA mycas.donnees_simulees;
2 call streaminit(12345);
3 DO i = 1 to 2000;
4 x1 = rand('Normal');
5 x2 = rand('Normal');
6 lp = 0.8*x1 - 0.5*x2 + rand('Normal')*0.1;
7 prob = 1 / (1 + exp(-lp));
8 IF rand('Uniform') < prob THEN y = 1;
9 ELSE y = 0;
10 OUTPUT;
11 END;
12RUN;

Exemples d'utilisation

Modèle BART Probit basique

Exécution de l'action avec les paramètres par défaut pour prédire 'y'.

1PROC CAS;
2 bart.bartProbit /
3 TABLE={name="donnees_simulees"},
4 model={depVars={{name="y"}}, effects={{vars={"x1", "x2"}}}};
5RUN;
Résultat Attendu :
Un résumé de l'ajustement du modèle, incluant le nombre d'arbres et les statistiques de convergence.
Modèle BART avec prédictions et marges

Configuration avancée avec échantillonnage MCMC personnalisé, partitionnement des données et calcul de marges prédictives.

1PROC CAS;
2 bart.bartProbit /
3 TABLE={name="donnees_simulees"},
4 model={depVars={{name="y"}}, effects={{vars={"x1", "x2"}}}},
5 nTree=100,
6 nMC=500,
7 nBI=200,
8 seed=987,
9 partByFrac={test=0.3, seed=123},
10 margins={{name="scenario_x1", at={{var="x1", value=1.5}}}},
11 OUTPUT={casOut={name="predictions", replace=true}, pred="p_y", lcl="bas", ucl="haut"};
12RUN;
Résultat Attendu :
Génération du modèle avec 100 arbres, création d'une table 'predictions' contenant les probabilités et intervalles de crédibilité, et calcul de la marge pour x1=1.5.