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

Trucos Excel. Trasponer con la función indirecto

Una de las tareas más comunes en Excel es la de transponer filas. En ocasiones hemos de transformar columnas en filas o viceversa: Es muy habitual copiar y pegar transponiendo, pero esta labor es muy manual cuando manejamos hojas con gran cantidad de fórmulas y que pueden generar informes automáticos. Para transponer contamos con la ayuda de la función INDIRECTO de Excel. En la ayuda se define como: “Devuelve la referencia especificada por una cadena de texto. Las referencias se evalúan de inmediato para presentar su contenido. Use INDIRECTO cuando desee cambiar la referencia a una celda en una fórmula sin cambiar la propia fórmula.” ...

27 de febrero de 2009 · rvaquerizo

Estudiad idiomas

Análisisydecisión nació como un blog dedicado a la formación de profesionales en el mundo de la inteligencia de negocio y la minería de datos. Poco a poco se ha ido transformando y, junto con las secciones dedicadas a la formación sobre aplicaciones estadísticas y metodologías, hay breves artículos de opinión. Bueno, pues este mensaje es ambas cosas: un artículo de opinión y una sugerencia sobre el futuro de los buenos gestores de información: ...

23 de febrero 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

Experimento. Un préstamo personal para invertir en Bolsa.

¿Pedir un préstamo para invertir en bolsa? Sí. Vamos a crear este experimento. Evidentemente todo se quedará en eso, un experimento, porque no será este que escribe el que hará semejante (¿)locura(?). Los mercados están en mínimos históricos; en concreto el IBEX 35 a fecha 09.02.2009, a las 13:48 horas, está a 8.492,40. La evolución en el último año ha sido: Da miedo invertir en renta variable, pero nosotros planteamos un reto. La hipótesis de partida: la bolsa en 3 años sube más de un $15%$; confiamos en ello y solicitamos un préstamo personal de 10.000 euros a ese interés a pagar en 3 años. Con un $2%$ de comisión de apertura, la cuota mensual del préstamo a 36 meses que hemos de asumir será de 354 euros; el importe total a pagar será de 12.730 euros. Disponemos de 10.000 euros para nuestra cartera de acciones; no vamos a diversificar el riesgo para facilitar el seguimiento. Compramos acciones del Banco Santander que cotizan a 6,04 euros; compramos en total 1.600 títulos para quedarnos en cuenta con 336 euros para posibles gastos. ...

9 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

Si buscamos sexo no buscamos trabajo

«Internáuticamente» hablando, cuando buscamos sexo no buscamos trabajo; no lo digo yo, lo dice Google Trends. Observemos qué ocurre si comparamos las búsquedas de la palabra “sexo” frente a “trabajo”: Es más que evidente la alta correlación negativa entre las búsquedas de sexo y las búsquedas de trabajo. En 2009 se espera un baby boom. En 2009 todos estaremos buscando trabajo. ¿Una incongruencia? Por cierto, se busca mucho más sexo que trabajo. ...

27 de enero de 2009 · rvaquerizo

Manual. Curso introducción de R. Capítulo 14: Introducción al cálculo matricial con análisis de componentes principales

Para el trabajo con matrices vamos a emplear un análisis de componentes principales. El análisis de componentes principales puede encuadrarse dentro del conjunto de técnicas multivariantes conocidas como métodos factoriales (también se incluyen el análisis de factores y el análisis de correspondencias). Pretendemos sintetizar un gran conjunto de datos, crear estructuras de interdependencia entre variables cuantitativas para crear unas nuevas variables que son función lineal de las originales y de las que podemos hacer una representación gráfica. El objetivo del análisis de componentes principales será el reducir la dimensión de un conjunto de $p$ variables a un conjunto $m$ de menor número de variables para mejorar la interpretabilidad de los datos. ...

17 de enero 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

Manual. Curso introducción de R. Capítulo 13: Análisis de la varianza. Diseños anidados

Continuamos con ejemplos de análisis de la varianza con R. En este caso trabajaremos con diseño de experimentos anidados. Definimos que un factor B está anidado a un factor A si para cada nivel de B tenemos un único nivel de A asociado; es decir, A dos niveles, B tres niveles: $A_1 (B_1, B_2, B_3)$; $A_2 (B_4, B_5, B_6)$. En este caso se dice que el nivel B está anidado a A. El modelo matemático viene expresado como: ...

12 de enero de 2009 · rvaquerizo