lunes, 2 de junio de 2014

Ejemplo análisis discriminante en SAS (proc discrim)

En el presente post mostramos un sencillo ejemplo de análisis discriminante en SAS que puede servir para analizar relaciones entre variables en un conjunto de datos



El análisis discriminante es una técnica estadística multivariante cuya finalidad es describir (si existen) las diferencias entre grupos de objetos sobre los que se observan determinadas variables (variables discriminantes).

Los dos principales usos del análisis discriminante son la clasificación de objetos en grupos preestablecidos y la identificación de variables descriptivas que mejor definan la pertenencia a grupos.
En nuestro ejemplo tenemos una tabla con un listado de clientes en el que una variable de tipo flag (0,1) indica si el cliente ha sido baja (1) o permanece en cartera (0) en el último mes. Se incluyen otras variables que caracterizan al cliente, aunque nos vamos a centrar en las siguientes:

Compromiso (0/1): indica si el cliente tiene(1) o no (0) compromiso de permanencia en base a una acción comercial que haya realizado en el pasado (ejemplo: descuento, subvención a productos comprados).
Antiguedad: meses de antigüedad del cliente.
Consumo_medio: consumo medio en los últimos tres meses.
Edad: edad del cliente

El objetivo es ver qué variable es más discriminante para agrupar los clientes en bajas(1) o cartera(0) , con objeto de conocer qué variables tienen más peso en la tasa de bajas.
 Para realizar el análisis dicriminante empleamos el procedimiento ‘proc discrim’.

proc discrim
       data=bajas /* tabla de entrada */
       method=normal
       pool=yes
       slpool=0.001
       posterr
       out=results; /* tabla de salida */
class baja; /* variable que define los grupos 0 o 1 */
var compromiso consumo_medio antiguedad edad; /* variables de estudio para discriminación en grupos */
run;

La salida del procedimiento es la siguiente:

The SAS System
The DISCRIM Procedure
Observations
1000
DF Total
999
Variables
4
DF Within Classes
998
Classes
2
DF Between Classes
1
 
Class Level Information
baja
Variable Name
Frequency
Weight
Proportion
Prior Probability
0
0
751
751.0000
0.751000
0.500000
1
1
249
249.0000
0.249000
0.500000
 
Pooled Covariance Matrix Information
Covariance Matrix Rank
Natural Log of the Determinant of the Covariance Matrix
4
15.67471
 


The SAS System
The DISCRIM Procedure

Generalized Squared Distance to baja
From baja
0
1
0
0
1.03050
1
1.03050
0
 
Linear Discriminant Function for baja
Variable
0
1
Constant
-6.77361
-7.71848
compromiso
1.91613
4.11155
consumo_medio
0.06185
0.05995
antiguedad
0.18956
0.18389
edad
0.14238
0.13745


Centrándonos en la última tabla del output (del cual ponemos aquí sólo un extracto) podemos observar como la variable compromiso es la que más variación tiene entre los valores 0 o 1 en la variable baja, mientras que el resto de variables no presentan el mismo nivel de variación. Como era de esperar la variable compromiso es la más discriminante de cara a evaluar tasas de baja.

Lógicamente, se puede profundizar en este análisis discriminante, el objetivo de este post es la realización de una comprobación previa que nos pueda servir para evaluar de forma rápida qué variable tiene más peso en la tasa de bajas.

2 comentarios:

  1. Estoy intentando hacer una segmentación/clusteriación en SAS,
    ¿tienes algún ejemplo?
    grcias,

    ResponderEliminar
  2. Incluyo un ejemplo en el siguiente post.
    Un saludo,

    ResponderEliminar