Gráficos de densidades con SAS y el PROC KDE

El PROC KDE de SAS está incluido en el módulo SAS/STAT. Es un procedimiento que nos permite estudiar gráficamente las distribuciones de variables continuas. Lo que nos produce son gráficos de densidades. Para seguir el ejemplo, nos vamos a ir a Yahoo Finance y descargarnos un evolutivo del IBEX de los últimos tres meses (yo realizo este proceso con Excel). Una vez tengamos el dataset creado, para el análisis de la densidad univariante podemos hacer: ...

29 de junio de 2010 · rvaquerizo

Trucos SAS. Envío de email con DATA

Si deseamos enviar un email con SAS, hemos de realizar un proceso similar al que os presento a continuación. Es una duda que me ha llegado a través de correo electrónico; la resolución la comparto con todos por si vuelve a surgir. No quiero plantear macros complicadas ni parametrizaciones “extrañas”. Esto se hace a través de FILENAME EMAIL: filename outbox email "rvaquerizo@analisisydecision.es"; data _null_; file outbox to=("rvaquerizo@analisisydecision.es") cc=("rvaquerizo@analisisydecision.es") subject="Prueba" attach="c:\temp\borra.sas"; * CUERPO DEL MENSAJE; put "Este es un mensaje automático."; put " "; put " "; run; En outbox ponemos el correo de salida; después hacemos un DATA _NULL_ que escribe en el buzón de salida; en TO ponemos los destinatarios entrecomillados; en CC las copias; en SUBJECT ya sabéis, y en ATTACH también. Después, si queremos escribir en el cuerpo del mensaje, empleamos PUT. ...

28 de junio de 2010 · rvaquerizo

Monográfico. Un poco de PROC LOGISTIC

El PROC LOGISTIC es un procedimiento de SAS que nos ha dado muchas satisfacciones a los dinosaurios como el ahora escribiente. La regresión logística es uno de los modelos de regresión más utilizados y es bien conocido por todos mis lectores. El problema es muy sencillo: hemos de clasificar una población dividida en dos partes a partir de unas variables independientes. Su aplicación es muy extensa: patrones de fuga, propensiones de compra, salud, fraude… ...

24 de junio de 2010 · rvaquerizo

Trucos SAS. Modificar el nombre de una tabla con código

Dando un repaso a las entradas de Google me he encontrado repetida la frase: «cambiar el nombre de un dataset SAS». Imagino que desearán cambiar el nombre de un dataset con código sin realizar un paso DATA. Para hacer esta labor, hemos de emplear el PROC DATASETS y la sentencia CHANGE. Veamos un código de ejemplo muy sencillo: * DATASET ALEATORIO; data sasuser.uno; do i = 1 to 1000; aleat = ranuni(9); output; end; run; * CAMBIAMOS EL NOMBRE; proc datasets lib=sasuser nolist; change uno=borrar; run; quit; * ELIMINAMOS EL DATASET; proc delete data=sasuser.borrar; run; El código es extremadamente sencillo. Imagino que las entradas que estaban llegando con esta duda buscaban algo parecido a esto. El PROC DATASETS es un gran desconocido. Saludos.

16 de junio de 2010 · rvaquerizo

Macros SAS. Agrupando variables categóricas

Agrupar variables con SAS es una de las tareas más habituales. Las variables continuas las agrupamos según un criterio y las discretas, en principio, ya vienen agrupadas. El problema con las variables discretas es que pueden tomar muchos valores, muchos de ellos con poco peso que habitualmente agrupamos en un rango “OTROS”. Pues bien, hoy quería mostraros una macro muy sencilla que utilizo para crear ese cajón desastre. El código tiene algún aspecto muy interesante; es el que os pongo a continuación: ...

14 de junio de 2010 · rvaquerizo

Truco SAS. Duplicar registros si cumplen una condición

Más que un truco, es una “tontería” SAS, pero sirve para entender mejor el paso DATA. Se trata de duplicar registros si cumplen una condición. Es decir, añadimos una fila en SAS si se cumple la condición: data uno; do id_cliente = 1 to 10000; output; end; run; data uno_duplicado; set uno; output; if mod(id_cliente, 2) = 0 then output; run; No puede ser más sencillo, pero me llegó esta duda y me parece un buen ejemplo de uso de OUTPUT. Saludos.

11 de junio de 2010 · rvaquerizo

Un acercamiento a GRAPH. ANNOTATE macros

No quiero entrar en muchos detalles sobre el uso de %annomac. Esta macro nos permite usar las macros de ANNOTATE. Estas macros sirven para trabajar con el PROC GANNO, del que ya hicimos una pequeña revisión. Ahora me gustaría presentaros un ejemplo de uso de estas macros y, sobre todo, me gustaría que analizarais el dataset SAS generado. Pongo directamente todo el código necesario: * OPCIONES NECESARIAS; goptions reset=global cback='white' colors=(black) xpixels=1000 ypixels=1000; %let pos_inicial_x = 50; %let pos_inicial_y = 99; Iniciamos con GOPTIONS y creamos unas posiciones iniciales. Estudiemos cómo trabaja %annomac: ...

7 de junio de 2010 · rvaquerizo

Un acercamiento a GRAPH. ODS GRAPHS PROC SGPLOT

No todos los procedimientos gráficos de SAS son tan malos y tan complejos. Hay una serie de procedimientos como el PROC SGPLOT que nos permiten realizar gráficos muy vistosos y con una sintaxis más sencilla. Estos procedimientos son los que vamos a denominar ODS GRAPHS. Como siempre, en estas líneas, sólo os voy a acercar a algunas de las posibilidades que ofrece el PROC SGPLOT (a futuro veremos más) y despertar vuestra curiosidad. Hay documentación muy completa en la red al respecto; además, y sin que sirva de precedente, la ayuda de SAS es muy correcta. ...

28 de mayo de 2010 · rvaquerizo

Las cuentas claras.

Si hay alguna tarea o procedimiento indispensable y más repetitivo hasta la saciedad por excelencia a la hora de trabajar con bases de datos y tener que reportar alguna información por mínima que sea, esta es contar o contabilizar el número de casos (registros) que tenemos en total o en subtotales (por grupos) dentro de una tabla (los llamados datasets en SAS). Para dar mayor utilidad a este ‘tutorial’ sobre conteo, partiré de una tabla con 2 columnas (campos) tipo cadena, es decir tipo texto, de manera que podamos ver diferentes métodos para contar-contabilizar NO solo campos tipo texto sino también trucos que nos den una solución más ‘elegante’ de la combinación de ambos campos tipo cadena. Estos 2 campos se llamarán grupo y tipo, muy empleados por muchos programadores, pero se podrían llamar también familia y familia_segmento o bien comunidad_1 y comunidad_2 o bien zona_tipo1 y zona_tipo2 o bien entorno_primario y entorno_secundario, o si el ejercicio tratase de contar el número de alumnos por sexo y color_ojos bastaría con sexo y color_ojos, etc. etc. ...

22 de mayo de 2010 · danifernandez

Curso de lenguaje SAS con WPS

Paro algunas series de las que venía escribiendo para iniciar una que es de mucha importancia para el blog. Voy a acercar el lenguaje SAS a los lectores con un menor nivel. Se trata de crear un curso introductorio al lenguaje SAS pero con la herramienta WPS. La metodología que seguirá el curso será muy similar a la de un manual que colgué en la red hace unos años. Pero en esta ocasión emplearé un lenguaje más apropiado para el blog y mejoraré algunos puntos del manual e incidiré in otros que no quedan muy claros. ...

21 de mayo de 2010 · rvaquerizo