8 de junio de 2014

Normalizacion de Variables

El siguiente script crea cuatro campos que transfrorman el valor del campo Venta en diferentes escalas Normalizadas

Norm_Proporcional_Maximo: Indica qué tan lejos está cada venta de la venta máxima.
Norm_Proporcional_Rango:  Crea escala del 0 al 1, donde 0 es menor Venta y 1 máxima Venta.
Norm_Proporcional_Total:  Indica qué porcentaje representa cada venta del total de venta.
Norm_Zscore:              Indica a cuantas desviaciones estándar se aleja cada venta de 
                          la venta promedio.

Para ver otros métodos de normalización, ver Referencia 1


// PASO 1: Carga datos de ejemplo 
Venta_tmp:
CrossTable(Dia,Venta)
LOAD * INLINE [
Sucursal, Lunes, Martes, Miercoles, Jueves, Viernes, Sabado
Norte,    66,     19,       98,      21,      99,      23
Sur,      33,     80,       65,      36,      83,      57
Este,    142,    134,      175,     125,     160,     143
Oeste,    59,     60,       82,     110,      63,      56]
;

//   PASO 2: agrega a la tabla Ventas_tmp las columas con 
//   Venta Maxima, Minima, Total, Desviacion y Promedio
Join
LOAD
max(Venta)      as MaxVenta,
min(Venta)      as MinVenta,
Sum(Venta)      as TotalVenta,
Stdev(Venta)    as DesvVentas,
Avg(Venta)      as PromedioVenta
Resident Venta_tmp;

/// PASO 3: Crea la tabla Ventas con los campos normalizados y borra Ventas_tmp
Ventas:
LOAD*,
Venta/MaxVenta                       as Norm_Proporcional_Maximo
(Venta-MinVenta)/(MaxVenta-MinVenta) as Norm_Proporcional_Rango,
Venta/TotalVenta                     as Norm_Proporcional_Total,
(Venta-PromedioVenta)/DesvVentas     as Norm_Zscore                    
Resident Venta_tmp;

DROP Table Venta_tmp;

Los valores resultante serian los siguientes:


Referencia:

No hay comentarios: