bart bartScoreMargin

Control de Calidad Predictivo con Datos Faltantes y Parámetros Avanzados

Scénario de test & Cas d'usage

Contexto empresarial

Una planta de fabricación utiliza un modelo predictivo para estimar la probabilidad de fallo de una máquina basándose en la temperatura del motor y las vibraciones del sensor. El conjunto de datos de puntuación a veces contiene valores faltantes para el sensor de vibración. El test debe verificar que el cálculo se realiza correctamente, ignorando las observaciones con datos faltantes, y debe utilizar un intervalo de credibilidad personalizado del 90%.
Sobre el conjunto : bart

Modelos de árboles de regresión aditiva bayesiana.

Descubrir todas las acciones de bart
Preparación de datos

Crea dos tablas. 'sensores_maquina_train' es una tabla completa para el entrenamiento del modelo. 'sensores_maquina_score' es una tabla para la puntuación que contiene valores faltantes ('.') en la columna 'vibracion_sensor' para simular fallos del sensor.

¡Copiado!
1DATA mycas.sensores_maquina_train;
2 call streaminit(789);
3 DO id_maquina = 1 to 500;
4 temperatura_motor = 60 + rand('UNIFORM') * 40;
5 vibracion_sensor = 1 + rand('UNIFORM') * 5;
6 prob_fallo = 1 / (1 + exp(-( -10 + (temperatura_motor * 0.1) + (vibracion_sensor * 0.5) )));
7 OUTPUT;
8 END;
9RUN;
10 
11DATA mycas.sensores_maquina_score;
12 SET mycas.sensores_maquina_train;
13 IF mod(_N_, 10) = 0 THEN call missing(vibracion_sensor);
14RUN;

Étapes de réalisation

1
Entrenar un modelo BART utilizando la tabla de entrenamiento completa ('sensores_maquina_train') para predecir la probabilidad de fallo.
¡Copiado!
1PROC CAS;
2 LOADACTIONSET 'bart';
3 bart.bartGauss RESULT=res /
4 TABLE={name='sensores_maquina_train'},
5 inputs={{name='temperatura_motor'}, {name='vibracion_sensor'}},
6 target='prob_fallo',
7 saveState={name='modelo_fallo_maquina', replace=true};
8RUN;
2
Ejecutar bartScoreMargin sobre la tabla con datos faltantes ('sensores_maquina_score'). Se especifica un alfa de 0.10 para un intervalo de credibilidad del 90%. Se solicita la tabla 'MarginInfo' para verificar la configuración de los márgenes. Se evalúa el efecto de un aumento de la temperatura.
¡Copiado!
1PROC CAS;
2 bart.bartScoreMargin /
3 TABLE={name='sensores_maquina_score'},
4 model={name='modelo_fallo_maquina'},
5 alpha=0.10,
6 marginInfo=TRUE,
7 margins={{name='temp_normal', at={{var='temperatura_motor', value=80}}},
8 {name='temp_alta', at={{var='temperatura_motor', value=95}}}},
9 differences={{name='dif_temp', evtMargin='temp_alta', refMargin='temp_normal'}},
10 casOut={name='fallo_maquina_out', replace=true};
11RUN;
12QUIT;

Resultado esperado


La acción debe completarse sin errores, demostrando que maneja los valores faltantes en la tabla de entrada. La tabla de salida 'fallo_maquina_out' debe contener los márgenes y la diferencia, con los límites de credibilidad superior e inferior calculados para un nivel de confianza del 90%. Además, se debe generar una segunda tabla de resultados, 'MarginInfo', que detalle las variables y valores utilizados para definir los márgenes 'temp_normal' y 'temp_alta'.