Formación

Un acercamiento a GRAPH. ODS GRAPHS PROC SGPLOT

BOXPLOT SGPLOT HISTOGRAMAS SGPLOTBARRAS CON GRUPOS SGPLOT

REGRESION CON SGPLOTGRAFICO BARRAS LINEAS SGPLOTBARRAS HORIZONTALES 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.

Curso de lenguaje SAS con WPS. El paso DATA

El elemento estrella del código SAS es el paso DATA. Con data podemos leer y escribir conjuntos de datos SAS. Un conjunto de datos SAS es una tabla de datos que contiene información sobre las variables y los registros de la tabla. Data lo que hace es crear una estructura para la tabla y posteriormente añadir datos a esta estructura, es un bucle, no necesitamos indicarle al sistema como recorrer la tabla. En WPS ejecutaremos nuestras sentencias en el editor a través de scripts sobre los que podemos navegar en el Proyect Explorer. La sintaxis de un paso data es imposible resumirla pero se puede estructurar del siguiente modo:

Curso de lenguaje SAS con WPS. Lenguaje SAS

El lenguaje SAS tiene 3 elementos fundamentales:

  • Sentencias globales
  • Pasos DATA
  • Procedimientos PROC

SAS es un lenguaje de alto nivel interpretado. Esto es, ya está todo inventado y es muy costoso implementar nuevos procedimientos y algoritmos, algo de gran importancia en el mundo estadístico, pero para ello tenemos R. Ahora bien, ¿por qué las grandes organizaciones tienen SAS? Tiene una característica que destaca sobre todas: trabaja sobre disco , no trabaja sobre memoria como R o MATLAB. Esto nos permite gestionar grandes cantidades de registros y no estamos limitados por la memoria de nuestra máquina. WPS, evidentemente, hace lo mismo que SAS (a menor precio). Por la propia naturaleza de SAS es muy complicado poder crear nuevos procedimientos y funciones.

Curso de lenguaje SAS con WPS. Introducción

Hoy me gustaría mostraros el interfaz de WPS y cuales son las características principales de WPS y cuales son comunes entre SAS y WPS. Si pincháis este link podréis descargaros una demo de WPS y seguir este curso. Cuando lo hagáis y abráis WPS os encontraréis con esto:

interfaz_wps.jpg

Este es el interfaz de WPS. Desde mi prisma es muy parecido a la versión 4 del Enterprise Guide. Se compone fundamentalmente de una ventana donde podemos editar programas con un código semafórico igual al de SAS. Tenemos una ventana donde navegamos por resultados, log y controlamos las ejecuciones. A la izquierda de ella tenemos las propiedades que se activarán cuando seleccionemos un elemento (particularmente me gusta mucho este elemento). El navegador del proyecto nos permitirá movernos entre los programas o scripts de SAS y además a la derecha tenemos una ventana que nos permite movernos entre los elementos y los procesos del código.

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 tambien ‘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 de ojos bastaría con ‘sexo’ y ‘color_ojos’, etc etc.

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 uncurso 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é en otros que no quedan muy claros.

«Random walk» se escribe con R.

‘Random walk’ hace referencia a la teoría financiera de que los mercados financieros siguen un camino aleatorio. Pero NO vamos discutir si se da o NO se da tal hipótesis, lo que SÍ vamos a hacer es utilizar R para seguir las acciones, fondos de inversión, o sencillamente para ver nuestro decepcionante Euro respecto a otras divisas (por si algún día los ‘españolitos’ debieramos empezar a emigrar de nuevo… tal como esta el patio!).

Lecciones de economía de un ignorante. El Club Bilderberg en España

Resulta que el grupo de seres humanos que dirige el mundo se reune este año en la ciudad de los ingleses borrachos. El Club Bilderberg pasa este año por nuestro país y se me ha ocurrido el siguiente modelo econométrico:

2008 – EEUU – Subprime 2009 – Grecia – Rescate 2010 – España -Glub

Por lo visto entre los asistentes españoles tenemos a la reina Sofía, no va el rey porque si aparece ni trabajan ni se reunen ni nada, se dedican a la fiesta, el jolgorio y se les olvida crear burbujas, crisis, virus de la gripe, etc. Ya sabéis, las cosas estas a las que se dedican «los que manejan el mundo». En fin, espero equivocarme pero el año que viene nos toca a nosotros la crisis gorda.

Lecciones de economía de un ignorante. ¿Por qué no hablo de la batalla de los depósitos?

Los 4 o 5 que os leéis mis lecciones de economía de todo a 100 echaréis de menos una mención a los depósitos al 4%. Yo que empecé a hablar de depósitos a pérdidas hace algún tiempo ahora permanezco callado. Además de la falta de tiempo y el proyecto de seguros tengo que dar a conocer una visión «conspiranoica» de todo lo que está pasando. Esta visión se resumen en: Vamos a privatizar de una vez por todas las Cajas de Ahorro. Como si con eso fueran a arreglar algo…

Macros SAS. Limpiar una cadena de caracteres

Macro de SAS que he utilizado hoy para limpiar caracteres en una cadena de texto. Está muy limitada y es muy sencilla pero puede serviros:

%macro valida(in,out);

length escribe $55.;

escribe="";

do i=1 to length(&in.);

  j=substr(&in.,i,1);

 if j in ('A','B','C','D','E','F','G','H','I','J','K',

 'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','Ñ') then escribe=trim(escribe)||j;

 else if substr(&in.,i,1)=" " then escribe=trim(escribe)||"-";

 else escribe=trim(escribe);

 drop i j escribe;

end;

&out.=tranwrd(compress(escribe),"-"," ");

%mend;

Es bastante mala y limitada, insisto. Si alguien aporta algo se agradecerá. El tema es que recorre una variable alfanumérica carácter a carácter y si no es una letra mayúscula se lo chimpunea sin ningún miramiento, aporta un poco más de talento cuando aparece un espacio en blanco. Ahí va el ejemplo de uso:

El modelo multivariante en el sector asegurador. La variable dependiente (III)

Hasta ahora estamos hablando de un concepto muy difuso que denomino comportamiento siniestral. A la hora de ajustar un modelo estadístico necesito una variable dependiente que será función de otras variables independientes. Las variables independientes serán los riesgos a los que también les dedicaremos unas líneas, y la variable independiente será el comportamiento siniestral; pero este concepto un poco difuso no lo vamos a medir en una sóla variable si no en dos:

Trucos R. Función ddply del paquete plyr

El paquete plyr de R tiene unas funciones que nos permiten hacer sumarizaciones de forma muy rápida y sencilla. Hoy quería trabajar con la función ddply. Todos esos resúmenes y agregaciones que nos cuestan mucho código con la función ddply pasan a ser de lo más sencillo. Al tajo, o mejor dicho, al ejemplo, como siempre, creo que ilustrar ddply es mejor que entrar en su sintaxis, para eso está la ayuda. Creamos un data.frame con datos inventados que tendrá duplicados por id_cliente :

El modelo multivariante en el sector asegurador. Univariante vs multivariante (II)

Hace mucho tiempo se empleaban resultados univariantes en la estructura de la tarifa. Los recargos y descuentos de la prima eran función de un análisis factor a factor, no se detectaban las interacciones entre ellos. La política de tarificación no era segmentada y no se ajustaba a la realidad y nos podíamos encontrar la situación prototípica siguiente:

multivariante-sexo.JPG

En función del sexo debemos incrementar a los hombres un 30% la prima base.