SAS Global Forum 2009

Ya tenéis disponibles los papers del SAS Global Forum 2009. Echadle un vistazo, porque siempre merecen la pena. Por otro lado, se creó un blog donde tenéis algunas entrevistas; todo muy típico y tópico: al fin y al cabo se trata de vender las excelencias de esta herramienta tan cara. Pero creo que la entrevista a Mike Thomas sobre plataformas móviles de información me ha despertado mucha curiosidad. Hay que reinventar el BI: es un concepto bastante obsoleto y las comunicaciones móviles pueden ser una buena base. ...

12 de abril de 2009 · rvaquerizo

SAS investiga la tecnología de R

Sacado de http://www.decisionstats.com/, muy interesante: A SAS spokesperson has confirmed to this blog that they have invested in the R-Core project to help build next generation algorithms. The new R powered SAS would not be sold as licenses but would be hosted on Amazon EC2, thus users pay only for the time of usage. The shift to SaaS is expected to boost SAS's revenue while at the same time helping small consultants and big clients like banks to cut costs. The official announcement had been planned for release during the RUser conference; however, the announcement was moved earlier due to rumors building up early this week due to leakages from SAS R and D (called birdie leakages). The size of the investment is expected to be more than 20 million USD; the exact amount is expected to be disclosed later. The R Core team would be using this for much needed investments in GUI development and upgradation of the website besides offering R courses in East European universities. An expectation of an annual prize for R User of The Year is also expected to take place. ...

12 de abril de 2009 · rvaquerizo

Macros SAS. Tramificar en función de una variable respuesta

Sobre la idea de “dumificar” variables he ideado un proceso para agrupar variables cuantitativas en función de una variable respuesta. Los que disponéis de herramientas de análisis más complejas tipo Enterprise Miner o Clementine ya disponéis de algoritmos y funciones que realizan esta útil tarea, además los árboles pueden trabajar con variables continuas. Pero un modelo es bueno si las variables de entrada están bien elegidas y bien construidas y como paso previo al análisis multivariante el análisis univariable es imprescindible. Tramificar una variable continua en función de una variable respuesta no va más allá de un análisis univariante, igualmente podemos tener dependencia lineal entre variables, algo que sólo detectaremos con análisis multivariables. Pero este sencillo algoritmo puede ayudarnos a conocer mejor algunas variables que deseamos introducir en nuestro modelo. ...

8 de abril de 2009 · rvaquerizo

Como accede Enterprise Guide a la DBMS

Un ejemplo muy gráfico de cómo accede Enterprise Guide a las DBMS: No se puede expresar mejor. Es necesario un monográfico de SQL Pass-Thru.

16 de marzo de 2009 · rvaquerizo

Trucos SAS. Informes de valores missing

A continuación, os planteo como truco SAS una duda que nos mandaba Liliana. Ella necesitaba estudiar los valores perdidos de las tablas de una librería determinada. En este caso, vamos a estudiar los missing de las variables numéricas de una librería; de forma análoga se puede hacer con las alfanuméricas. Como siempre, vamos a trabajar con un ejemplo que parte de tablas generadas aleatoriamente. Comenzamos generando estas tablas: libname datos "C:\temp\datos"; %macro aleatorios; %do i = 1 %to 5; data datos.proyecto_&i.; do id = 1 to 200; if int(ranuni(0) * 10) = 2 then importe1 = .; else importe1 = round(rand("uniform") * 1000, .1); if int(ranuni(0) * 10) > 8 then importe2 = .; else importe2 = round(rand("uniform") * 130, .1); length zona $15; if ranuni(0) <= .32 then zona = "España"; else if ranuni(1) <= .32 then zona = "Cataluña"; else zona = "Resto"; output; end; run; %end; %mend aleatorios; %aleatorios; Con este programa generamos cinco datasets aleatorios con cuatro variables; dos de ellas son importes que tendrán valores missing en determinados casos. En este punto, hemos de crear un proceso que cuente valores perdidos; podemos emplear el PROC SQL o bien el PROC FREQ definiendo primero un formato. Empleamos FREQ para crear una macro: ...

16 de marzo de 2009 · rvaquerizo

Monográficos. CALL SYMPUT imprescindible

He detectado que muchas búsquedas que llegan a Análisis y Decisión vienen por la palabra clave CALL SYMPUT. Por este motivo, me he decidido a escribir este rápido monográfico sobre esta instrucción. Con un par de ejemplos podemos familiarizarnos con su funcionamiento. CALL SYMPUT es una rutina de SAS que nos permite crear macrovariables durante la ejecución de un paso DATA; digamos que es un mecanismo que comunica el compilador del lenguaje macro de SAS con el propio lenguaje SAS. El ejemplo prototípico de su uso: determinar el número de observaciones de un dataset que cumplen determinada condición: ...

16 de febrero de 2009 · rvaquerizo

Trucos SAS. Lista de datasets en macrovariable

Un uso frecuente del PROC SQL es la generación de macrovariables. En este ejemplo, vamos a crear una macrovariable con el nombre de los datasets de una librería SAS que contengan un determinado patrón. También es un ejemplo bastante práctico del uso de las vistas de SASHELP. Para entender mejor el truco, vamos a generar 20 ficheros ficticios con variables aleatorias en el directorio C:\temp: libname temp "C:\temp"; * GENERAMOS 20 DATASETS ALEATORIOS; %macro tablas_aleatorias; %do i = 1 %to 20; data temp.aleat&i.; do j = 1 to 100; persona = ranpoi(8, 23); importe1 = int(rand("uniform") * 1000); importe2 = int(rand("uniform") * 1000); tae = ranpoi(34, 2) + round(rand("uniform"), .1); output; end; drop j; run; %end; %mend tablas_aleatorias; %tablas_aleatorias; Esta macro hace un bucle y genera 20 datasets. A continuación, necesitamos crear un dataset que sea la concatenación de los 20 generados anteriormente. Podríamos poner los 20 nombres a mano, pero esto no es elegante. Para automatizar esto debemos hacer lo siguiente: ...

5 de febrero de 2009 · rvaquerizo

Macros SAS. Asignar permisos en Unix

Hoy os presento una macro especialmente útil para aquellos que trabajéis con SAS en arquitecturas UNIX. En ocasiones, generamos tablas SAS que han de ser modificadas por otros usuarios y éstos no disponen de los permisos adecuados para modificarlas. La siguiente macro lo que hace es un «change mode», un chmod que modifica los permisos de las tablas SAS de una librería. Por defecto, la macro hace un chmod 777, lo que significa que owner, group y others tienen permiso de lectura, escritura y ejecución. Si pusiéramos chmod 766, significaría que el owner tiene todos los permisos y el group y others permiso de lectura y escritura. chmod 744 significaría que el owner tiene todos los permisos y group y others únicamente permiso de lectura. ...

13 de enero de 2009 · rvaquerizo

Transformar variables en SAS. Carácter a numérico

Muchas visitas a este sitio son búsquedas de Google que plantean la problemática que surge al transformar variables carácter a numéricas y viceversa con SAS. Las palabras habituales son “transformar texto a número SAS”, “cómo paso de variable string a numérica en SAS”, “pasar de carácter a fecha en SAS”, “SAS transformar fecha numérica en texto”… son todas búsquedas que han generado mucho tiempo de estancia en el sitio, a pesar de que no existía un mensaje específico. En el siguiente monográfico vamos a tratar estas conversiones. De esta forma, se crearán una serie de dos posts que pueden ser un interesante material de consulta para profesionales y estudiantes que trabajen con SAS. ...

3 de diciembre de 2008 · rvaquerizo

Macros SAS. Hacer 0 los valores missing de un dataset

La siguiente macro de SAS nos permite transformar los valores perdidos (missing) en valor 0 para todas las variables de un dataset. Para todas, para todas las numéricas. Esto es muy importante porque en ocasiones es necesario distinguir el valor 0 del valor missing (.). Pero puede ser muy práctica si vamos a emplear procedimientos que han de distinguir valores perdidos o, simplemente, si deseamos que nuestra tabla tenga otro aspecto. ...

27 de noviembre de 2008 · rvaquerizo