Scénario de test & Cas d'usage
Cálculo preciso de percentiles y cuantiles.
Descubrir todas las acciones de percentileGenera una tabla voluminosa de lecturas de sensores para múltiples máquinas. La mayoría de las lecturas son normales, pero se inyectan valores atípicos sutiles y extremos para probar la detección.
| 1 | DATA casuser.lecturas_sensores(promote=yes); |
| 2 | call streaminit(456); |
| 3 | DO id_maquina = 1 to 200; |
| 4 | DO i = 1 to 10000; |
| 5 | temperatura = 80 + rand('NORMAL', 0, 2.5); |
| 6 | /* Inyectar outliers sutiles */ |
| 7 | IF rand('UNIFORM') < 0.04 THEN temperatura = 80 + (rand('UNIFORM')*15); |
| 8 | /* Inyectar outliers extremos */ |
| 9 | IF rand('UNIFORM') < 0.005 THEN temperatura = 150 + (rand('UNIFORM')*20); |
| 10 | OUTPUT; |
| 11 | END; |
| 12 | END; |
| 13 | RUN; |
| 1 | PROC CAS; |
| 2 | percentile.boxPlot |
| 3 | TABLE={name='lecturas_sensores', groupBy={'id_maquina'}}, |
| 4 | inputs={{name='temperatura'}}, |
| 5 | outliers=true, |
| 6 | whiskerPercentile=5, |
| 7 | nOutLimit=50, |
| 8 | casOut={name='analisis_temperatura', replace=true}; |
| 9 | RUN; |
| 10 | QUIT; |
La tabla 'analisis_temperatura' debe contener las estadísticas de diagrama de caja para cada 'id_maquina'. Los bigotes deben corresponder a los percentiles 5 y 95. La salida de outliers debe listar hasta 50 lecturas de temperatura por encima del percentil 95 y por debajo del percentil 5, permitiendo a los ingenieros identificar máquinas con comportamientos anómalos sutiles, no solo los extremos.