bart

bartProbit

L'essentiel
En resumen
Abordar problemas de clasificación donde la respuesta es binaria requiere herramientas que superen la rigidez de los modelos tradicionales. La acción bartProbit en SAS Viya permite implementar árboles de regresión aditivos bayesianos adaptados mediante una función de enlace Probit. Esta funcionalidad es clave para los ingenieros de datos que necesitan estimar la probabilidad de ocurrencia de eventos en entornos de alta incertidumbre y no linealidad. Hemos compilado una lista de preguntas frecuentes para asistirle en la parametrización correcta y en la interpretación de los resultados de estos modelos probabilísticos avanzados.

Descripción

Ajusta modelos de árboles de regresión aditivos bayesianos (BART) probit a datos de respuesta con distribución binaria.

bart.bartProbit { alpha=double, applyRowOrder=TRUE | FALSE, attributes={{casinvardesc-1}, ...}, class={{classStatement-1}, ...}, differences={{bartScoreMargin_scoreDiff-1}, ...}, display={displayTables}, distributeChains=integer, freq="variable-name", inputs={{casinvardesc-1}, ...}, leafSigmaK=double, margins={{bartScoreMargin_evaluate-1}, ...}, maxTrainTime=double, minLeafSize=integer, missing="MACBIG" | "MACSMALL" | "NONE" | "SEPARATE", model={bartProbitModel}, nBI=integer, nBins=integer, nClassLevelsPrint=integer, nMC=integer, nominals={{casinvardesc-1}, ...}, 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} }
Parámetros
ParámetroDescripción
alpha Especifica el nivel de significancia para construir límites de credibilidad de colas iguales para los márgenes predictivos.
applyRowOrder Cuando se establece en TRUE, aplica el orden de las filas.
attributes Cambia los atributos de las variables utilizadas en la acción.
class Nombra las variables de clasificación para usar como variables explicativas en el análisis.
differences Especifica las diferencias de los márgenes predictivos.
display Especifica una lista de tablas de resultados para enviar al cliente para su visualización.
distributeChains Especifica un modo distribuido que divide el muestreo MCMC en un entorno de cuadrícula.
freq Nombra la variable numérica que contiene la frecuencia de ocurrencia para cada observación.
inputs Especifica las variables de entrada para usar en el análisis.
leafSigmaK Especifica el valor utilizado para determinar la varianza a priori para el parámetro de la hoja.
margins Especifica un margen predictivo.
maxTrainTime Especifica un límite superior (en segundos) en el tiempo para el muestreo MCMC.
minLeafSize Especifica el número mínimo de observaciones que cada hijo de una división debe contener en los datos de entrenamiento para que la división sea considerada.
missing Especifica cómo manejar los valores perdidos en las variables predictoras.
model Nombra la variable dependiente y los efectos explicativos.
nBI Especifica el número de iteraciones de calentamiento (burn-in) a realizar antes de que la acción comience a guardar muestras para la predicción.
nBins Especifica el número de contenedores a usar para la discretización de variables de entrada continuas.
nClassLevelsPrint Limita la visualización de los niveles de clase. El valor 0 suprime todos los niveles.
nMC Especifica el número de iteraciones MCMC, excluyendo las iteraciones de calentamiento.
nominals Especifica las variables de entrada nominales a usar en el análisis.
nThin Especifica la tasa de adelgazamiento (thinning) de la simulación.
nTree Especifica el número de árboles en una muestra del conjunto de suma de árboles.
obsLeafMapInMem Cuando se establece en True, almacena en memoria un mapeo de cada observación a los nodos terminales cuando se entrena el modelo.
offset Especifica una variable de desplazamiento numérica.
orderSplit Especifica la cardinalidad mínima para la cual una entrada categórica utiliza reglas de división según el orden de los niveles.
output Crea una tabla en el servidor que contiene estadísticas a nivel de observación, calculadas después de ajustar el modelo.
outputMargins Especifica la tabla de salida para los márgenes predictivos.
outputTables Lista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
partByFrac Especifica la fracción de los datos que se utilizará para la prueba.
partByVar Nombra la variable y sus valores utilizados para particionar los datos en roles de entrenamiento y prueba.
quantileBin Cuando se establece en True, especifica que los límites de los contenedores se establecen en cuantiles de las entradas numéricas en lugar de contenedores de igual ancho.
sampleSummary Crea una tabla en el servidor que contiene un resumen de las muestras del conjunto de suma de árboles.
seed Especifica una semilla para iniciar el generador de números pseudoaleatorios.
store Almacena el modelo en un objeto de tabla binaria que se puede usar para puntuar.
table Especifica la tabla de datos de entrada.
target Especifica la variable objetivo.
trainInMem Cuando se establece en True, almacena los datos en memoria cuando se entrena el modelo.
treePrior Especifica la regularización a priori para el conjunto de suma de árboles.
Creación de Datos de Ejemplo

Este código crea una tabla en memoria llamada 'simulated_data' con 1000 observaciones. La tabla contiene una variable de respuesta binaria 'y' y diez variables predictoras continuas (x1 a x10). Los datos se generan de tal manera que la respuesta 'y' depende de una combinación no lineal de las predictoras, lo que es ideal para ser modelado por BART.

¡Copiado!
1DATA casuser.simulated_data(caslib='casuser');
2DO i = 1 to 1000;
3 array x[10];
4 DO j = 1 to 10;
5 x[j] = rannor(12345);
6 END;
7 mu = 10 * sin(3.14 * x[1] * x[2]) + 20 * (x[3] - 0.5)**2 + 10 * x[4] + 5 * x[5];
8 pr = 1 / (1 + exp(-mu));
9 y = rand('BERNOULLI', pr);
10 OUTPUT;
11END;
12RUN;

Ejemplos

Este ejemplo muestra cómo ajustar un modelo BART probit simple. Se especifica la tabla de entrada 'simulated_data', la variable objetivo 'y' y las variables de entrada 'x1' a 'x10'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2ACTION bart.bartProbit /
3 TABLE={name='simulated_data'},
4 target='y',
5 inputs={'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10'};
6RUN;

Este ejemplo ajusta un modelo BART probit más complejo. Utiliza 100 árboles ('nTree'), 500 iteraciones de calentamiento ('nBI') y 2000 iteraciones de MCMC ('nMC'). Se establece una semilla ('seed') para la reproducibilidad. El modelo resultante se guarda en una tabla CAS llamada 'bart_model_store' para su uso posterior en puntuación.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2ACTION bart.bartProbit /
3 TABLE={name='simulated_data'},
4 target='y',
5 inputs={'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10'},
6 nTree=100,
7 nBI=500,
8 nMC=2000,
9 seed=54321,
10 store={name='bart_model_store', replace=true};
11RUN;

Este ejemplo demuestra cómo particionar los datos en conjuntos de entrenamiento (70%) y prueba (30%) usando el parámetro 'partByFrac'. También genera una tabla de salida ('bart_output') que contiene las predicciones ('pred'), los residuos ('resid') y los límites de credibilidad inferior ('lcl') y superior ('ucl') para cada observación.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2ACTION bart.bartProbit /
3 TABLE={name='simulated_data'},
4 target='y',
5 inputs={'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10'},
6 partByFrac={test=0.3, seed=9876},
7 OUTPUT={casout={name='bart_output', replace=true}, pred='p_y', resid='r_y', lcl='lower', ucl='upper'};
8RUN;

FAQ

¿Qué es la acción `bart.bartProbit` de SAS?
¿Cuál es el propósito principal de la acción `bartProbit`?
¿Cómo se gestionan los valores perdidos en las variables predictoras?
¿Qué parámetros controlan el proceso de muestreo MCMC (Cadenas de Markov Monte Carlo)?
¿Qué representa el parámetro `nTree`?
¿Es posible guardar el modelo entrenado para usarlo posteriormente?

Escenarios asociados

Caso de uso
Análisis de Propensión de Compra en Campaña de Marketing

Una empresa minorista desea predecir qué clientes tienen más probabilidades de responder a una nueva campaña de marketing. El objetivo es optimizar el gasto publicitario dirigié...

Caso de uso
Evaluación de Riesgo de Incumplimiento Crediticio con Gran Volumen de Datos y Particionamiento

Un banco necesita procesar un gran lote de 100,000 solicitudes de préstamos para evaluar el riesgo de incumplimiento. El modelo debe ser entrenado y validado en un corto período...

Caso de uso
Predicción de Diagnóstico Médico con Manejo Estratégico de Datos Faltantes

Un proveedor de atención médica está construyendo un modelo para predecir la probabilidad de una enfermedad basándose en los resultados de las pruebas de los pacientes. Los dato...