domingo, 20 de agosto de 2017

Ejecución de procesos en SAS Grid

Una forma de mejorar el rendimiento de los procesos SAS es el uso del módulo SAS Grid (www.sas.com/grid). SAS Grid Computing es un entorno de computación distribuida que permite distribuir procesos entre un conjunto de nodos, balancear la carga de trabajo y reducir tiempos de ejecución de una forma transparente para los usuarios. SAS Grid manager provee una administración centralizada de la arquitectura. Permite planificar los procesos y manejar prioridades.



En este post vamos a ver un breve ejemplo de cómo modificar un proceso SAS Base para poder
ejecutarlo en Grid.

Tal y como se puede ver en el ejemplo, es necesario añadir la sentencia 'rsubmit' y 'endrsubmit'
para delimitar el código (subproceso) que se ejecutará en Grid. Igualmente hay que añadir una llamada a la función grdsvc_enable que indica a SAS que debe usar el Grid y  especifica un SAS aplication Server. SAS Grid Manager asigna los subprocesos a nodos del Grid. La sentencia signon permite inicar un sesión en Grid y signoff terminarla.

-------------

SAS Grid Computing (www.sas.com/grid), is a shared, general‐purpose computing environment for lots of SAS users running lots of different SAS applications, provides robust management capability.SAS Grid Manager does that job. You can greatly reduce the processing time for individual SAS jobs because jobs are load‐balanced across multiple resources and can even be split up. Because SAS Grid Manager provides a centrally administered environment, it works with policies that identify high‐priority users and/or jobs, and also designates which jobs get what portion of the computing resources.

In this post we show an example of how to run a piece of SAS Base code in a Grid environment.

To allow a particular SAS program to use distributed parallel processing,the user adds RSUBMIT and ENDRSUBMIT statements around each subtask, and also adds the GRDSVC_ENABLE function call, this function  tells SAS to use the grid and specifies the SAS application server. SAS Grid Manager automatically assigns each identified subtask to a grid node.The SIGNON and SIGNOFF statements start and end a session on the grid. The only required option is a session‐id


Ejemplo / Example:

options
metaserver=sasserver.demo.sas.com
metaport=8561 metapass=xxxxx
metauser=xxxxx;
%let rc=%sysfunc( grdsvc_enable(
_all_, server=SASApp ));
signon grid1;
%SYSLPUT mpg = 30;

rsubmit;
proc sql;
create table WORK.HIGHMPG as
select * from SASHELP.CARS
where mpg > &mpg;
quit;
PROC DOWNLOAD data=WORK.HIGHMPG
out=WORK.remote_results;
run;
endrsubmit;

signoff grid1;

Formación SAS

martes, 15 de agosto de 2017

Conectando SAS con MongoDB

MongoDB es una de las BBDD NoSQL más populares. Recomendamos en este post el uso de una macro que permite exportar tablas SAS a MongoDB, concretamente a colecciones de una base de datos MongoDB.



La macro se basa en la exportación a csv desde tabla SAS (procedimiento proc export) y el posterior uso de la utilidad de MongoDB mongoimport.exe. La información a indicar a la macro es: nombre del dataset SAS, nombre de
la base de datos y colección MongoDB donde alojar la información y el directorio raíz de MongoDB (por ejemplo en Windows :  C:\Program Files\MongoDB\Server\3.4\bin).

Más información y todo el detalle en este link: macro para conectar SAS y MongoDB

Formación SAS

------------

MongoDB is a well-known NoSQL database. In this post we recomend the use of a SAS macro that allows to export a SAS dataset to a MongoDB collection.

The macro does two steps: 1) export to csv from SAS dataset (proc export procedure), 2) call to mongoimport.exe utility of MongoDB. The arguments of the macro are: name of SAS dataset, the name of MongoDB database and collection and the path of the MongoDB installation (for example in Win environment: C:\Program Files\MongoDB\Server\3.4\bin).

More info in this link: macro to connect SAS and MongoDB

SAS training

jueves, 27 de julio de 2017

Felices vacaciones

Os deseo unas felices vacaciones, como las del data science del dibujo que a falta de pocas horas para empezar sus vacaciones, les cuesta empezar a desconectar y está planeando unas 'data driven holidays' ;-)..., no caigáis en el mismo error...



jueves, 20 de julio de 2017

Equivalencias SAS, R y SPSS (IV)

Incluímos otro post dentro de la serie de equivalencias entre SAS, R y SPSS, que esperamos puedan ser de utilidad ante la necesidad de conocer equivalencias entre un lenguaje y otro (migraciones, interpretación de procesos, etc..).



Los anteriores post de esta serie:

Equivalencias SAS, R y SPSS (I)

Equivalencias SAS, R y SPSS (II)

Equivalencias SAS, R y SPSS (III)

En este post incluímos ejemplos sobre tratamientos de datasets por grupos de registros (first y last de SAS) y una lista de casos de estadística descriptiva.



1) Uso de agrupaciones (first y last)

SAS:

/* Obtener el último registro de un grupo */

PROC SORT DATA=libsas.ventas;
  BY fecha;
RUN;

DATA libsas.ventas1;
  SET  libsas.ventas;
  BY   fecha;
  IF   last.fecha;
RUN;

R:

ventas <- read_delim("C:/temp/ventas.txt",
                     ";", escape_double = FALSE, trim_ws = TRUE)

myBys <- data.frame(ventas$fecha)
mylastList <- by( ventas,myBys,tail,n=1 )
mylastList

#Back into a data frame:
mylastDF <- do.call(rbind, mylastList)
mylastDF

SPSS:

GET FILE='ventas.sav'.

SORT CASES BY fecha.
MATCH FILES FILE=* /By ventas /LAST=ultventa.
SELECT IF ultventa.
LIST.


2) Procedimientos estadísticos:

SAS:

/* Estadisticos básicos */
PROC MEANS data=tabla1;
VAR var1;
RUN;

/* Distribuciones */
PROC UNIVARIATE data=tabla1;
VAR var2;
RUN;

/* Tabla de frecuencias */
PROC FREQ data=tabla1;
TABLES var1;
RUN;

/* Correlaciones */
PROC CORR data=tabla1;
VAR var1 var3;
RUN;

/* Regresion lineal */
PROC REG data=tabla1;
  MODEL var3= var1 var2;
 RUN;

R:

/* estadisticos básicos */

summary(tabla1$var1)

/* Distribuciones y frecuencias */

table(tabla1$var1)
hist(tabla1$var2)

/* Correlaciones */

cor(tabla1$var3, tabla1$var1)

/* Regresión lineal */

lm( var3 ~ var1 + var2, data=tabla1)


SPSS:

GET FILE='tabla1.sav'.
DATASET NAME tabla1 WINDOW=FRONT

/* estadisticos basicos */
DESCRIPTIVES VARIABLES=var1
  /STATISTICS=MEAN STDDEV VARIANCE
   MIN MAX SEMEAN .

/* frecuencias */
FREQUENCIES VARIABLES=workshop TO q4.

/* correlaciones */
CORRELATIONS
  /VARIABLES=var3 TO var1.

/* Regresion lineal */
REGRESSION
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS R ANOVA
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN
  /DEPENDENT var3
  /METHOD=ENTER var1 var2.


Formación SAS

lunes, 10 de julio de 2017

Videotutorial: ordenación de datos y gestión de duplicados

Os dejo un video donde se explica paso a paso como ordenar tablas de SAS en base a una clave determinada y como detectar y gestionar registros duplicados en base a esa clave:



Formación SAS

Videotutorial: consultas parametrizadas con SAS

Os dejo un video donde se explica paso a paso cómo realizar consultas parametrizadas con SAS:





jueves, 1 de junio de 2017

SAS Forum 2017

El pasado martes 30 de Mayo tuvo lugar el SAS Forum en IFEMA. Es  uno de los eventos de analytics más importantes de España. Hubo una gran afluencia a pesar de las dificultades para moverse por Madrid por la huelga de taxis. 





Los temas principales sobre los que giraron las ponencias fueron:

  • La nueva normativa europea de protección de datos (GDPR)
  • Inteligencia artificial y Machine learning
  • Experiencias de cliente sobresalientes
  • Prevención del fraude y optimización de riesgos


Tuvimos ponentes de primer nivel entre los que destacó Neil Harbisson, que es un conocido innovador.  Neil , tiene una antena implantada en su cabeza que le permite escuchar el espectro de color, incluyendo los infrarrojos y ultravioletas. Es la primera persona reconocida como cíborg en el mundo y su ponencia no defraudó.



Tuvimos una agenda muy interesante en la que empresas líderes en su sector mostraron sus proyectos y experiencias con SAS:
https://www.sas.com/es_es/events/sfe/sas-forum-spain-2017.html#agenda

Iniciamos con un interesante debate sobre computación cognitiva en el que intervinieron:

Javier Rodríguez Zapatero (Executive Chairman. ISDI)
Pier Paolo Rossi, Dr. Inteligencia y Desarrollo de Negocio. BANCO SABADELL
José Manuel Pérez, Director de Inteligencia de Negocio. BANKIA
Fritz Lehman, Executive Vice President & Chief Customer Officer. SAS



Tuvimos ponencias temáticas que se centraron en diferentes áreas de interés:

- Personalizar la oferta de cliente en real-time a cargo de Accenture
- Innova-TSN, SAS y AON nos contaron su experiencia optimizando la experiencia de cliente
- Conocimos la experiencia de Gas Natural Fenosa en previsión de la demanda utilizando datos procedentes de contadores inteligentes
- Muy interesante Dr. Valdivieso (Hospital La Fe)  hablando de Medicina de Precisión para cambiar el paradigma de cuidados a uno más preciso y productivo
- Interesantes ponencias entorno al IoT , inteligencia artificial y conocimiento de cliente a cargo de Correos, Intel y SAS
- Siempre interesantes las ponencias sobre gestión del Riesgo, optimización pricing, modelos de propensión y prevención del fraude en esta ocasión de la mano de SAS, Bankia, Banco Santander, Brico Depot, Caser y BPER



- El sector de la consultoría y partners SAS muy presente con diferentes charlas en la sala de 'Analytics Eveywhere'. Donde las empresas Tinámica, Cognodata, Ibertech, Saima, Enzyme, Logicalis, BBC y M2C nos mostraron sus experiencias en diferentes campos algunos más maduros como optimización de precios,  Visual Analytics aplicado a sector financiero, marketing relacional, analytics para datos de movilidad y otros más innovadores como IoT para mantenimiento predictivo, transformación digital y smart booking para sector turismo.

Igualmente pudimos ver demos de las últimos soluciones de SAS entre las que cabe destacar SAS Viya.  https://www.sas.com/en_us/software/viya.html

Interesante la oferta académica en el ámbito de B.I. y Big Data ofrecida por MBIT School y MSMK.

En este evento Bankia recibió el premio a la excelencia en Business Analytics: https://www.sas.com/es_es/news/press-releases/locales/2017/bankia-premio-business-analytics.html

Será interesante ver las entrevistas realizadas por Juan Merodio (conocido blogger y speaker sobre innovación digital)  en el TV set durante el evento cuando estén disponibles. https://www.juanmerodio.com/2017/la-importancia-de-la-analitica-en-el-sas-forum-espana/



En resumen, interesante evento para conocer de primera mano las tendencias del analytics.