Scénario de test & Cas d'usage
Cálculo preciso de percentiles y cuantiles.
Descubrir todas las acciones de percentileCrea una tabla de transacciones de clientes con montos de compra y un segmento de cliente asociado. Se introducen variaciones en el gasto para que los segmentos sean distinguibles.
| 1 | DATA casuser.transacciones_clientes; |
| 2 | call streaminit(123); |
| 3 | LENGTH segmento_cliente $12; |
| 4 | DO i = 1 to 5000; |
| 5 | r = rand('UNIFORM'); |
| 6 | IF r < 0.4 THEN DO; |
| 7 | segmento_cliente = 'Leales'; |
| 8 | monto_compra = 150 + rand('NORMAL', 0, 25); |
| 9 | cantidad_articulos = 5 + rand('POISSON', 3); |
| 10 | END; |
| 11 | ELSE IF r < 0.85 THEN DO; |
| 12 | segmento_cliente = 'Ocasionales'; |
| 13 | monto_compra = 70 + rand('NORMAL', 0, 15); |
| 14 | cantidad_articulos = 2 + rand('POISSON', 2); |
| 15 | END; |
| 16 | ELSE DO; |
| 17 | segmento_cliente = 'Nuevos'; |
| 18 | monto_compra = 45 + rand('NORMAL', 0, 10); |
| 19 | cantidad_articulos = 1 + rand('POISSON', 1); |
| 20 | END; |
| 21 | IF monto_compra < 5 THEN monto_compra = 5; |
| 22 | IF cantidad_articulos < 1 THEN cantidad_articulos = 1; |
| 23 | OUTPUT; |
| 24 | END; |
| 25 | RUN; |
| 1 | /* La tabla ya se crea en casuser en el paso data_prep */ |
| 1 | PROC CAS; |
| 2 | percentile.boxPlot |
| 3 | TABLE={name='transacciones_clientes', groupBy={'segmento_cliente'}}, |
| 4 | inputs={{name='monto_compra'}, {name='cantidad_articulos'}}, |
| 5 | casOut={name='analisis_segmentos', replace=true}; |
| 6 | RUN; |
| 7 | QUIT; |
Se espera que la tabla de salida 'analisis_segmentos' contenga estadísticas descriptivas (mediana, cuartiles, etc.) para las variables 'monto_compra' y 'cantidad_articulos', calculadas por separado para cada uno de los tres segmentos de clientes. Esto permitirá al analista de marketing comparar visualmente la distribución del gasto entre clientes Leales, Ocasionales y Nuevos.