De estadístico a minero de datos a científico de datos…

Hace unos meses estuve en un data beers que organizó Accenture, que más parecía una reunión de viejas glorias de Neo Metrics, y hablé sobre la transformación de un dinosaurio a un científico de datos; por cierto, me llamó la atención cómo el resto de compañeros hicieron sus presentaciones con software del siglo pasado, y eso que yo era el dinosaurio… Hoy ha salido una noticia sobre el uso de la información de Facebook para tarificar en seguros que define hacia dónde quiero ir y los problemas con los que he de lidiar. Así que hoy voy a escribir sobre mí y la transformación del dinosaurio al científico de datos. ...

3 de noviembre de 2016 · rvaquerizo

Truco SAS. Limpieza de tabuladores con expresiones regulares

Un lector necesita eliminar tabuladores de una cadena de texto y no le están funcionando las funciones habituales; sugiero emplear expresiones regulares. En mi entorno de SAS sí está funcionando: data ejemplo; length frase $50.; input frase $50.; cards; Hola este es un ejemplo"""""" Hola es te es un ejemplo_________ Hola este es un ejemplo++++++++ ; run; data ejemplo_limpio; set ejemplo; call prxchange(prxparse('s/([A-ZÑa-zñ 0-9]*)([^A-Za-zÑñ 0-9]*)/$1/'), -1, frase); run; Como se ve en el ejemplo, también se carga los caracteres especiales; tened en cuenta eso. Saludos.

3 de noviembre de 2016 · rvaquerizo

El parámetro gamma, el coste, la complejidad de un SVM

Cuando clasificamos datos con SVM (Support Vector Machines), es necesario fijar un margen de separación entre observaciones. Si no fijamos este margen adecuadamente, nuestro modelo podría estar sobrestimando (overfitting), lo que significa que funcionaría muy bien con los datos de entrenamiento pero fallaría con datos nuevos. El coste C y el parámetro gamma son los dos elementos fundamentales con los que contamos en los SVM. El parámetro C es el peso que le damos a cada observación a la hora de clasificar: un mayor coste implicaría un mayor peso de cada observación individual y el SVM sería más estricto. Si tuviéramos un modelo que clasificara observaciones en el plano formando una letra “O”, podemos ver cómo se modifica la estimación al variar el coste: ...

13 de octubre de 2016 · rvaquerizo

Jueves 13 de octubre nueva reunión del Grupo de usuarios de R de Madrid

Para más información: http://madrid.r-es.org/38-jueves-13-de-octubre-2016/ Si no llueve (cosas de las motos), por allí me veréis.

11 de octubre de 2016 · rvaquerizo

Truco Excel. Pasar un rango de varias columnas a una

Macro de Excel que nos permite pasar de varias columnas a una sola. De momento no es una función; es un código que sorprende por su sencillez: Sub rango_columnas() Dim rango As Variant Dim i As Long, j As Long, k As Long Dim col As Long rango = Selection.Value ' Esta es la parte que permite ubicar la salida col = Selection.Column k = Selection.Row ' Esto recorre el rango y realiza la trasposición For i = 1 To UBound(rango, 1) For j = 1 To UBound(rango, 2) Cells(k, col + UBound(rango, 2)).Value = rango(i, j) k = k + 1 Next j Next i End Sub Este código lo ponéis tal cual en vuestro Excel y os ilustro a continuación sobre su funcionamiento. Lo primero es seleccionar el rango de columnas que deseamos transponer: ...

5 de octubre de 2016 · rvaquerizo

Cuando te sale un modelo

Modelo lineal siempre… Saludos.

30 de septiembre de 2016 · rvaquerizo

Trucos Excel. Mapa de Colombia por departamentos

El mapa para Excel de Colombia por departamentos era tarea pendiente; el modo en el que se ha hecho es el habitual y por ello lo primero que hay que hacer es citar al usuario de Wikipedia Shadowxfox – CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=44930910. Es importante comentar que seleccioné éste por el tamaño; en Excel se ve bien poniendo el zoom al 35% (¡!) y es que cada vez veo menos. El mapa puede representar cinco grupos y estos grupos se pondrán en la columna C, donde podemos cruzar por nombre. Comentar que falta el departamento de las islas de San Andrés y Providencia porque no sabía muy bien cómo ubicarlas y cómo representarlas en el mapa. ...

28 de septiembre de 2016 · rvaquerizo

Como salva la linealidad una `red neuronal`

En los últimos tiempos estoy empeñado en usar redes neuronales para la tarificación en seguros. Históricamente, la tarificación de seguros, el pricing, se ha basado en modelos lineales generalizados (GLM por sus siglas en inglés) porque su estructura es sencilla, se interpreta bien y, no olvidemos, el sector asegurador está regulado y es necesario elaborar una nota detallada de cómo se articula una tarifa; el GLM nos ofrece una estructura multiplicativa que se comprende y con la que los reguladores se sienten muy cómodos. Sin embargo, una red neuronal es el paradigma de “caja negra”; ¿cómo podemos saber qué hace esa caja negra? Estoy trabajando en ello: la descripción del funcionamiento de las ponderaciones de una red está muy arriba en la lista de mis tareas pendientes. ...

27 de septiembre de 2016 · rvaquerizo

Mapas municipales de Argentina con R

En respuesta a un lector del blog he elaborado de forma rápida una nueva entrada que nos permite realizar mapas por municipalidades para Argentina. Ya hay entradas similares, pero está bien que este mapa tenga su propia entrada para facilitar las búsquedas. El ejemplo es rápido y es probable que el código tenga algún fallo o error; si es así, lo comentáis y lo solvento. Como es habitual, nos dirigimos a la web del proyecto Global Administrative Areas (http://www.gadm.org/country) y nos descargamos el mapa de Argentina por municipios, que es el nivel 2. Una vez descargado, pocas líneas de R: ...

5 de septiembre de 2016 · rvaquerizo

El brexit con rstats o como mover spatial data con R

Animación con R para ilustrar el uso de la función elide del paquete maptools, con un código “insultantemente” sencillo: library(maptools) library(animation) # Mapa descargado de: # http://www.arcgis.com/home/item.html?id=6d611f8d87d54227b494d4c3becef6a0 ub_shp <- "/Users/raulvaquerizo/Desktop/R/mapas/world/MyEurope.shp" europa <- readShapeSpatial(ub_shp) plot(europa) europa_sin_uk <- europa[europa$FIPS_CNTRY != "UK", ] uk <- europa[europa$FIPS_CNTRY == "UK", ] saveGIF({ for (i in seq(0, 5, by = 0.1)) { plot(europa_sin_uk) uk_desplazado <- elide(uk, shift = c(-i, 1)) plot(uk_desplazado, add = TRUE) } }, interval = 0.3, movie.name = "/Users/raulvaquerizo/Desktop/R/animaciones/brexit/bye_england.gif") Nos descargamos el mapa del link que os pongo y poco más que leer el shape con readShapeSpatial y crear dos objetos: uno con Europa sin la isla y otro con la isla. elide nos permite desplazar un objeto de spatial data dentro del gráfico; lo metemos en un bucle y bye England. Ahora, el que me mueva las Canarias en un shapefile con más de 2 líneas de código me paga una cervecita. Saludos.

10 de agosto de 2016 · rvaquerizo