Reunión Usuarios de R en Madrid. 26 de noviembre de 2014

R

El 26 de noviembre será la próxima reunión del grupo de usuarios de R en Madrid. En palabras de Carlos Ortega:

Estamos ultimando la agenda de la siguiente reunión del grupo de Madrid.
Si hay alguien interesado en presentar que se ponga en contacto conmigo,
todavía hay hueco para algo más.

Esta es la agenda tentativa:

*Fecha:* Miércoles 26-Noviembre
*Hora:* de 6:15pm a 8:30pm.
*Lugar:* Bar S-10 (¡se invitará a la primera ronda!)
*Agenda:*

- Presentaciones:
- Manuel Pérez: "Segmentación RFM (Recency - Frequency - Monetary
Value)".
- Alfonso de Uña: "Topology Data Analysis en R".
- Píldoras:
- Pedro Concejero: "Tratamiento de Fotos y sus metadatos en R".
- Otros temas internos del grupo.

Nota: Todavía no hemos actualizado el portal del grupo. Lo haremos en lo
que queda de semana.

Imprescindible en vuestra agenda y en la mía. Me veréis por allí despistado.

La mejor posición de R en tiobe

R

Ahí tenéis a R en la duodécima posición del ranking de tiobe nunca había estado tan arriba. Creo que proyectos como YHAT son los culpables de que esté pasando esto. De todas formas es importante estudiar la dispersión del rating. Habrá que ver que pasa con los siguientes rankings.

PROC FCMP para crear funciones en SAS

Unas pinceladas del PROC FCMP para SAS. Este procedimiento nos permite crear nuestras propias funciones que posteriormente podremos utilizar en nuestras sesiones de SAS. yo he programado mucho en SAS y tengo que decir que no utilizo mucho este procedimiento por la propia filosofía de SAS. Al final siempre se tiende a crear una macro antes que una función, pero hay que reconocer que el lenguaje macro de SAS en ocasiones no es sencillo y muchos olvidamos el PROC FCMP. En mi caso concreto hago unas macros muy enrevesadas antes que programarme una función. Para ilustrar el ejemplo de uso vamos a crear una función dif_anios para determinar la diferencia en años entre dos fechas SAS. El código es:

V de Cramer con R. Analizar la correlación de factores

Cómo calcular la V de Cramer con R , una pregunta que me han hecho recientemente. Sirve para medir la asociación entre factores. Además esta entrada es útil para retomar el paquete vcd de R que nos permite analizar y Visualizar Categorical Data. Partimos de un ejemplo muy sencillo:

datos = read.csv("http://www.businessandeconomics.mq.edu.au/our_departments/Applied_Finance_and_Actuarial_Studies/acst_docs/glms_for_insurance_data/data/car.csv")

summary(datos)
tabla = ftable(as.factor(datosagecat), datosarea,
dnn = c("Edad", "Valor"))
library(vcd)
assocstats(tabla)

Desconozco si existe una función que nos presente una matriz con las distintas medidas de asociación. Pero la función assocstats del paquete vcd nos ofrece:

Mapa del mundo en Excel

Unmapa del mundo en Excel preparado para poner datos de la Base de Datos de la UNESCO. Está sacado de una web, cuando encuentre el link os lo pongo porque lo he perdido. Además al César lo que es del César. Sobre el fichero Excel que me descargué realicé diversas modificaciones para mejorar los resultados y darle simplicidad. Hay una hoja de datos que es donde debéis pegar los datos (preferiblemente) por otro lado está la hoja Mapa que contiene el mapa sobre el que podéis realizar las modificaciones. En esta hoja están los datos sobre los que se hace la jerarquía. La gama de colores que utiliza este mapa es de gris a rojo. Esto podéis cambiarlo vosotros mismos, en esta web se han dado pistas sobre cómo hacerlo. No es correcto darlo todo hecho pero jugando con formatos condicionales y con esas pistas podéis obtener un mapa espectacular.

Medir la importancia de las variables en una red neuronal con R

Sigo a vueltas con esta gran web y hoy vamos a medir la importancia de las variables en una red neuronal. Al igual que sucede en un modelo de regresión los parámetros obtenidos pueden servirnos para determinar la importancia de una variable dentro del modelo. En el caso de una red neuronal los pesos de la red pueden ser utilizados para determinar cómo influye una variable en el modelo. Para ilustrar este tipo de tareas el gran @beckmw realizó esta entrada:

¿6 grados de separación? Una simulación poco seria con R

R

Me pregunto si puedo demostrar la teoría de los seis grados de separación. Tengo muy oxidados los bucles con R. Ganas de probar Amazon Web Services.Pues manos a la obra. ¿Es posible con R establecer que una persona esté enlazada con otra en menos de 6 pasos? Hoy no voy a probrar Amazon Web Services, me voy a limitar a mostraros que se me ha ocurrido para demostrar esta teoría.

Dentro de una población un individuo manda una carta. Creamos una red de cartas y buscamos en que punto de esa red le devuelven la carta. No me atrevo a determinar el número de amigos que puede tener un individuo. Tampoco tengo tiempo para realizar una simulación con los 5.000 millones de habitantes del planeta. Así que os planteo una simulación muy poco seria con R. Muy sencillo:
######################################################
#La población es de 5.000.000 personas
poblacion = 5000000

Haciendo ventanas con %WINDOW en SAS

No es habitual emplear SAS BASE para crear menús o ventanas, aunque con el PROC PMENU se han hecho maravillas. Hoy vamos a poner un ejemplo sencillo de uso de %WINDOW para hacer el menú más simple posible con SAS BASE, nuestro objetivo es consultar los datos de un cliente sobre una tabla. Creamos unos datos aleatorios para ilustrar el ejemplo y una macro para hacer consultas:

data aleatorio(index=(id_cliente));
do id_cliente=1 to 11000;
	importe=ranuni(56)*450;
	output;
end;
run;
%macro selecciona(cli=);
proc sql;
select a.*
from aleatorio a
where id_cliente=&cli.;
quit;
%mend;

Partimos de una tabla con 2 variables id_cliente e importe y deseamos crear un menú en el que nos liste los datos para un id_cliente. Lo más sencillo que podemos hacer con SAS BASE es:

Data mining vs Bigdata. De momento con Google Trends

Bigdata por aquí bigdata por allá y resulta que en Google sigue habiendo muchas más búsquedas sobre data mining. Este dato tiene importancia porque el bigdata no tiene sentido sin el data mining. Incluso podríamos prescindir del bigdata porque lo importante es lo que queremos hacer no como lo queramos hacer. Saludos.

Representación de redes neuronales con R

En la última entrada realizamos un modelo de regresión con redes neuronales. Hoy quería mostraros como representar gráficamente la red neuronal creada en esa entrada. A la modelización con redes neuronales siempre se le ha achacado un comportamiento de “caja negra”, nosotros pasamos unas variables de entrada por una capa oculta y obtenemos una salida. No hay parámetros ni inferencia sobre los mismos, no sabemos lo que hace la red por dentro. En el caso concreto de R y continuando con la entrada anterior si hacemos summary(bestnn):

Regresión con redes neuronales en R

La última técnica que me estoy estudiando este verano es la regresión con redes neuronales. El ejemplo que os voy a poner es completamente análogo a este: http://heuristically.wordpress.com/2011/11/17/using-neural-network-for-regression/ Vamos a trabajar con el paquete nnet, si dispusiera de tiempo replicaría este ejemplo en otra entrada con neuranet. Para realizar el ejemplo tenemos el conjunto de datos housing que contiene el censo de 1970 de 506 hogares de Boston. Empecemos a trabajar con la consola de RStudio (¡!)

Modelos lineales dinámicos (DLM) con R

Otro de los modelos que está tocando estudiar este verano son los Dinamic Linear Models (DLM). Para estudiar este tipo de modelos es imprescindible leer este documento. Estos métodos parten de una idea: «la vida no es fácil cuando tienes que hacer estimaciones sobre una serie temporal». Una serie temporal es un vector de datos aleatorios, una sucesión de observaciones de la forma Yt con t=1,2,.. Si sobre esta sucesión tenemos una característica que puede influir estamos ante un modelo de espacio estado. Estos modelos tienen una cadena de Markov (http://es.wikipedia.org/wiki/Cadena_de_M%C3%A1rkov) porque esa característica que afecta a la serie es una cadena de Markov y eso nos permite que los Yt sean independientes ya que dependen sólo de esa característica. El más importante modelo de espacio estado es el modelo lineal dinámico.