Ajusta modelos de árboles de regresión aditivos bayesianos (BART) probit a datos de respuesta con distribución binaria.
| Parámetro | Descripció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. |
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.
| 1 | DATA casuser.simulated_data(caslib='casuser'); |
| 2 | DO 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; |
| 11 | END; |
| 12 | RUN; |
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'.
| 1 | PROC CAS; |
| 2 | ACTION bart.bartProbit / |
| 3 | TABLE={name='simulated_data'}, |
| 4 | target='y', |
| 5 | inputs={'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10'}; |
| 6 | RUN; |
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.
| 1 | PROC CAS; |
| 2 | ACTION 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}; |
| 11 | RUN; |
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.
| 1 | PROC CAS; |
| 2 | ACTION 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'}; |
| 8 | RUN; |
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é...
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...
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...