Monográfico. Datos agrupados en SAS

A continuación, os planteo un monográfico más orientado a principiantes con SAS. Vamos a realizar un acercamiento a los conjuntos de datos SAS agrupados por variables. La premisa fundamental es: un conjunto de datos SAS está agrupado por una variable si está ordenado por ella. Para ordenar variables empleamos el PROC SORT: proc sort data=<dataset>; by [descending] <variable_ordenacion>; run; Repetimos: un conjunto de datos SAS puede agruparse por una o varias variables si está ordenado por ellas. Algunas de las posibilidades que nos ofrecen este tipo de conjuntos de datos son: ...

6 de noviembre de 2009 · rvaquerizo

Trucos SAS. Autonumérico con PROC SQL

Rápido: me ha llegado una consulta que me preguntaba cómo crear un campo autonumérico con PROC SQL. Tenemos que emplear la función MONOTONIC(): data uno; do i = 1 to 100; output; end; run; proc sql; create table dos as select monotonic() as obs, a.* from uno a where mod(i, 2) = 0; quit; Equivale al _N_ de un paso DATA. Es una tontería, pero a un lector del blog le ha venido bien. Saludos.

6 de noviembre de 2009 · rvaquerizo

Laboratorio de código SAS. Comparativa entre IF y WHERE

Inicio hoy otra serie de mensajes para analizar el uso óptimo del código SAS. La intención es comparar distintas ejecuciones y obtener un pequeño reporte con la metodología y el tiempo empleado en su ejecución. Para evitar el efecto que pueda causar la concurrencia en un servidor con SAS, se realizarán múltiples ejecuciones. He intentado que el código que utilizo para comparar las ejecuciones sea lo más sencillo posible. Soy consciente de que se puede usar un código más “profesional”, pero lo que planteo a continuación me parece una solución equilibrada. La idea es hacer una macro que haga $N$ ejecuciones para promediar el efecto de la concurrencia. Cada método tendrá una ejecución controlada con una macrovariable con la hora del sistema. Esta información se guardará en una tabla SAS junto con el nombre del método. Al final, lo más sencillo es ordenar por el tiempo de ejecución e imprimir el resultado. ...

3 de noviembre de 2009 · rvaquerizo

Trucos SAS. Identificar registros duplicados

Muy rápido: para identificar registros duplicados existen múltiples formas. Seguramente haré un monográfico sobre este tema, pero de momento dejo una píldora: data aleatorio; do i = 1 to 100000; id = ranpoi(23456, 56781); if ranuni(5) >= 0.3 then output; end; run; proc sql; create table repes (where=(rep > 1)) as select id, count(id) as rep from aleatorio group by id; quit; proc sql; create table no_repes (where=(rep = 1)) as select id, count(id) as rep from aleatorio group by id; quit; Contamos registros y empleamos WHERE como opción de escritura. Muy fácil y perfectamente entendible. No puedo entretenerme más, que mi hija me reclama…

29 de octubre de 2009 · rvaquerizo

Macros SAS. Calcular la longitud de un número.

Ha llegado hoy una búsqueda que no ha permanecido en AyD ni 20 segundos. Quería calcular la longitud de un número con SAS. Como yo estoy aquí para compartir mis conocimientos y hay una persona que los necesita aquí está esta macro que espero o sea de utilidad: %macro largo(num); length(compress(put(&num.,32.))) %mend; Esta macro recibe un parámetro que ha de ser un número y lo que hace es transformarlo a carácter comprimido y calcular su longitud. Veamos ejemplos de uso: ...

27 de octubre de 2009 · rvaquerizo

REvolution Computing ficha al fundador de SPSS

Noticia de REvolution Computing: Norman H. Nie, fundador de SPSS, ha fichado por la empresa REvolution Computing, que ofrece soluciones de análisis basadas en R. Es evidente que Nie se había quedado sin trabajo y que este reto le gusta, y mucho; imagino que motivado por la vinculación de REvolution al mundo universitario. Estaremos atentos a los nuevos movimientos de REvolution.

24 de octubre de 2009 · rvaquerizo

Manual. Curso introducción de R. Capítulo 18: Modelos de regresión de Poisson

Cuando disponemos de un número de eventos que ocurren en un intervalo de tiempo estamos ante una variable de Poisson; además tiene que producirse que este número de eventos en intervalos sea independiente del número de eventos que ocurran fuera de ese intervalo de tiempo. En un intervalo muy pequeño, la probabilidad de que ocurra un evento es proporcional al tamaño del intervalo y, por último, la probabilidad de que ocurran dos o más eventos en un intervalo muy pequeño es prácticamente 0. Cualquier variable medida en un intervalo de tiempo o en un intervalo espacial es una variable de Poisson; también se pueden emplear para medir frecuencias en intervalos de población (casos de cáncer en poblaciones, frecuencias siniestrales…). Tiene como particularidad que la media y la varianza son iguales a $p \times s$, donde $p$ es la probabilidad de ocurrencia de un evento de Poisson en un intervalo de tiempo de tamaño unidad y $s$ es el tamaño del intervalo de tiempo o espacial en estudio. ...

23 de octubre de 2009 · rvaquerizo

Simulación. Estimación de pi con el método Montecarlo

La simulación es un campo que está tomando una gran importancia. Nos está permitiendo evaluar comportamientos extremos sin ningún tipo de riesgos. Casi nadie se imaginaba que el escenario económico actual podía cambiar con la velocidad con que lo está haciendo. Imaginemos una modificación brusca de los ratios de morosidad: implicará que las entidades bancarias tengan que modificar sus fondos de previsión. Esta misma morosidad puede afectar a las aseguradoras de crédito que tienen que estimar sus provisiones técnicas. Ahora mismo es necesario simular las condiciones más extremas para los datos futuros y la simulación nos permite experimentar para aproximarnos al problema. ...

12 de octubre de 2009 · rvaquerizo

AyD se une. No al recorte

El siguiente capítulo del manual de R espero dedicárselo al «No a las tijeras». Por cierto, me uno tarde, pero me uno.

10 de octubre de 2009 · rvaquerizo

Problemas solucionados

Hemos sufrido un ataque a la web y aparece como maliciosa en Google; la frase Este sitio puede dañar tu equipo está hundiendo el número de visitas. Pero desde OKB ya lo han solventado. No entiendo cómo no los llamas para que te hagan tu web. A qué esperas para comunicar con ellos; diles que vas de parte de Análisis y Decisión. Por otro lado, ahora veo por mi ojo izquierdo. Pero ese es un tema que puede interesar menos. ...

6 de octubre de 2009 · rvaquerizo