RPART

Árboles de decisión con SAS Base (con R por supuesto)

Con SAS Base podemos hacer árboles de decisión porque tenemos R. Así de sencillo. Vamos a utilizar SAS para gestionar nuestros datos y R será la herramienta que utilicemos para la realización del modelo de árbol de decisión. Posteriormente emplearemos las reglas generadas por el modelo para etiquetar a nuestros clientes en SAS. Con esta entrada pretendo ilustrar una serie de ejemplos en los que comunico SAS con R. Una herramienta nos sirve para el tratamiento de datos y la otra la utilizaremos para realizar modelos que no están al alcance de SAS. Para realizar esta comunicación SAS-R os planteo la creación en SAS de ficheros de texto con las instrucciones en R y la ejecución en modo batch de R con ese código creado en SAS. Aquí tenéis punto por punto el ejemplo:

Trucos R. Llevar a SAS las reglas de un árbol de decisión

Vuelvo hoy con el uso de rpart para la creación de árboles de decisión con R. Pero hoy, además de realizar un modelo de árbol con R quiero presentaros una función que nos permite guardar las reglas generadas con nuestro modelo en un fichero de texto para su posterior utilización con SAS. Retomamos un ejemplo visto con anterioridad en la bitácora con ligeras modificaciones:

#Inventamos un objeto para realizar el modelo

#En una cartera de clientes nuestro modelo tiene que identificar

#cuales contratan un PVI

#

clientes=20000

saldo_vista=runif(clientes,0,1)*10000

saldo_ppi=(runif(clientes,0.1,0.2)*rpois(clientes,1))*100000

saldo_fondos=(runif(clientes,0.1,0.9)*(rpois(clientes,1)-1>0))*100000

edad=rpois(clientes,60)

datos_ini<-data.frame(cbind(saldo_vista,saldo_ppi,saldo_fondos,edad))

datos_inisaldo_ppi=(edad<=68)*datos_inisaldo_ppi

#Creamos la variable objetivo a partir de un potencial

datos_inipotencial=runif(1,0,1)+

(log(edad)/(log(68))/100) +

runif(1,0,0.001)*(saldo_vista>5000)+

runif(1,0,0.001)*(saldo_fondos>10000)+

runif(1,0,0.007)*(saldo_ppi>10000)-

runif(1,0,0.2)

datos_inipvi=as.factor((datos_inipotencial>=quantile(datos_inipotencial,

0.90))*1)

#

#Empleamos rpart para la realización del modelo

#

library(rpart)

arbol=rpart(as.factor(pvi)~edad+saldo_ppi+saldo_fondos,

data=datos_ini,method="anova",

control=rpart.control(minsplit=30, cp=0.0008) )

Tenemos un objeto rpart llamado arbol. En este punto necesitamos disponer de las reglas generadas por el modelo para SAS, donde el módulo específico para poder realizar determinados modelos tiene un precio muy alto. Buscando en Google encontraremos este link. En él tenemos una genial función de R list.rules.rpart que nos permite identificar las reglas que ha generado el modelo. Modificamos ligeramente esta función para que nos sirva en nuestros propósitos:

Monografico. Arboles de decisión con party

Los árboles de clasificación son una de las técnicas de análisis más utilizadas. No requieren supuestos distribucionales, permite detectar interacciones entre variables y no es muy sensible a la presencia de valores perdidos y outliers. En resumen, es una técnica que no quita mucho tiempo al analista para hacer consultas carentes de valor para sus responsables y permite identificar tanto perfiles positivos como perfiles negativos. Además, sus resultados son muy fáciles de interpretar. Tan fáciles que, INCLUSO , las áreas de negocio pueden entender sus resultados. Por todo esto estamos ante una de las técnicas más extendidas. En el blog ya hicimos un breve monográfico con rpart de R y nos quedaba realizar una revisión al paquete party. La metodología para esta rápida revisión será la habitual, planteamos un ejemplo y realizamos un análisis con las instrucciones de party.

Monográfico. Arboles de clasificación con RPART

Con este rápido monográfico voy a acercarnos a los árboles de regresión con R. Esta metodología de predicción realiza construcciones lógicas que establecen reglas que nos permiten clasificar observaciones en función de una variable respuesta y de las relaciones existentes entre las variables dependientes. En esta primera aproximación no no voy a entrar en algoritmos ni en tipos de árboles (hay suficiente documentación en la red) intentaré en despertar la curiosidad del lector sobre este tipo de análisis y sobre todo quiero acercar a R al mundo empresarial un ámbito donde creo que R no destaca (al menos en España).