Gráfico con eje secundario en ggplot2

Los gráficos con eje secundario o con dos ejes son un tema que ya he puesto en el blog en varias ocasiones, hay un ejemplo con R que tenía sus problemas y hay un ejemplo con Python y matplotlib que particularmente me gusta por elegancia y sencillez. En esta entrada vamos a repetir el ejercicio y vamos a realizar un gráfico de columnas y líneas con 2 ejes, primario y secundario pero con ggplot2. Este tipo de gráficos son muy utilizados por los actuarios para representar frecuencias o siniestralidades y exposición. Para ilustrar el ejercicio vamos a emplear los mismos datos que usamos en el ejemplo con matplotlib pero vemos paso a paso cómo realizaríamos el gráfico: ...

13 de febrero de 2019 · rvaquerizo

Simple tricks for `rstats`

In my Twitter account, I usually post some simple R tricks, things that come up when I’m working and don’t cost much to share in 2 minutes, in case I can help someone. I just realized that they are really useful and that having them scattered on Twitter is a problem, so I thought I’d collect them in a blog post to make them easier to find (even for me). Here are some of those tricks: ...

11 de febrero de 2019 · rvaquerizo

Porque no vamos a cobrar pensiones. Animación con R y pirámides de población

Estoy creando material para un módulo de un máster que voy a impartir y escribiendo sobre seguros de ahorro he llegado a crear esta animación: Se trata de una animación con las pirámides de población de España desde 1975 hasta 2018 de 5 en 5 años. El sistema de pensiones español se basa en cinco principios: Principio de proporcionalidad Principio de universalidad Principio de gestión pública Principio de suficiencia Principio de reparto La animación va directa contra el principio de reparto. En el sistema español nadie ha cotizado para garantizarse su pensión; los actuales trabajadores pagan las prestaciones de aquellos trabajadores jubilados. Si tras leer estas dos frases y mirar la animación sigues recelando de la migración de personas a España, espero que tengas un buen plan de ahorro privado. ...

9 de diciembre de 2018 · rvaquerizo

Data management con dplyr

Dos años con pandas y scikit-learn y ahora vuelvo a R. Y in mi regreso me propuse comenzar a trabajar con dplyr y mi productividad se está incrementando exponencialmente; creo que dplyr es LA HERRAMIENTA para el manejo de data.frames con R, ni me imagino cómo puede funcionar sparklyr… Para aquellos que estéis iniciando vuestra andadura con R o para los que no estéis acostumbrados a dplyr, he hecho una recopilación de las tareas más habituales que hago con esta librería. Se pueden resumir in: ...

22 de noviembre de 2018 · rvaquerizo

Crear una `RESTful` API con R con plumber

Podéis buscar info en la web acerca de lo que es una REST y una RESTful, pero el objetivo de este trabajo es la creación de una API para escorear unos datos a partir de un modelo que hemos creado en R. Vamos a hacer lo más sencillo: un modelo de regresión lineal creado por R será guardado y una API con datos podrá llamar a este modelo mediante un cliente RESTful para obtener una predicción. Esta será la primera de una serie de entradas que le voy a dedicar a Carlos, un antiguo compañero mío y que me ha enseñado a desaprender; el primer guiño a Carlos será abandonar mi subversión local para conectar mi RStudio con GitHub. Todo el trabajo que voy desarrollando lo tenéis en https://github.com/analisisydecision/Modelo1. Si echáis un vistazo al repositorio ya os podéis imaginar hacia dónde irán encaminadas esta serie de entradas. ...

7 de noviembre de 2018 · rvaquerizo

Libro de R de Carlos Gil

Muchos de los lectores de esta bitácora conocéis https://www.datanalytics.com/, el blog de Carlos Gil. In él ha publicado un libro/manual de R de acceso libre para todos aquellos que necesitéis una guía que abarque desde lo más básico al tratamiento de datos con R, pasando por Shiny y análisis estadísticos de esos «viejunos» tan denostados últimamente. De todas formas, no sé cómo no deja este mundillo y se dedica plenamente a su https://martinacocina.es/. In palabras de mi hijo: «El mejor brunch de Madrid, un 10». Saludos.

10 de abril de 2018 · rvaquerizo

Pasando de SAS a R. Primer y ultimo elemento de un campo agrupado de un data frame

Las personas que están acostumbradas a trabajar con SAS emplean mucho los elementos FIRST., LAST. y BY; en el blog hay ejemplos al respecto. En R podemos hacer este trabajo con la librería “estrella” dplyr de un modo relativamente sencillo. A continuación se presenta un ejemplo para entender mejor cómo funciona; creamos un conjunto de datos aleatorio: id <- rpois(100, 20) mes <- rpois(100, 3) + 1 importe <- abs(rnorm(100)) * 100 df <- data.frame(id, mes, importe) Tenemos un identificador, una variable mes y un importe y deseamos obtener el menor importe por mes. El primer paso a realizar es ordenar el data frame de R por ese identificador, el mes y el importe en orden descendente: ...

19 de octubre de 2017 · rvaquerizo

¿Puede la información de Twitter servir para calcular el precio de tu seguro?

Debemos de ir introduciendo el concepto de Social Pricing en el sector asegurador; si recordamos el año pasado, Admiral y Facebook tuvieron un tira y afloja por el uso de la información de Facebook para el ajuste de primas de riesgo. Facebook alegaba a la sección 3.15 de su privacidad para no permitir emplear esta información a Admiral. Probablemente es un tema más económico. El caso es que tanto Facebook como Instagram, Twitter, LinkedIn, xVideos… tienen información muy interesante acerca de nosotros, información que se puede emplear para el cálculo de primas en el sector asegurador (por ejemplo). ...

9 de octubre de 2017 · rvaquerizo

Como me encuentro hoy, con rstats

Gráfico absurdo con R y un buen ejemplo de las cosas que hace $\pi$. Tras 2 meses de dolores intensos en mi hombro, hoy solo noto una molestia y, claro… plot(rep(10, 10), rep(10, 10), ann = FALSE, type = "n", xlim = c(-1, 1), ylim = c(-1, 1), axes = FALSE) radio <- 1 theta <- seq(0, 2 * pi, length = 200) lines(x = radio * cos(theta), y = radio * sin(theta)) radio <- 1.1 theta <- seq(-0.75, -3 * pi / 4, length = 100) lines(x = radio * cos(theta), y = radio * sin(theta) + 0.5) points(-0.5, 0.5, pch = 1, cex = 3) points(0.5, 0.5, pch = 1, cex = 3)

28 de marzo de 2017 · rvaquerizo

Ajuste de `splines` con R

El ajuste por polinomios, el ajuste por spline, es una técnica imprescindible dentro del análisis actuarial. Como siempre, la parte matemática y la parte debida al puro azar pueden arrojar discrepancias. ¿Dónde son mayores estas discrepancias cuando usamos métodos estadísticos clásicos? Donde siempre: donde tenemos pocos datos. El comportamiento errático que tiene una tendencia y que habitualmente achacamos a la falta de información, los actuarios gustan de corregirlo con ajuste por cúbicas, aunque es mejor emplear ajuste por polinomios, ya que no tienen que ser necesariamente polinomios de grado 3. In mi caso particular, tengo un Excel que no puedo poner a vuestra disposición porque no lo hice yo (creo que lo hizo alguna divinidad egipcia) y desde entonces circula por el mundo la función cubic_spline. Hoy quiero aprovechar el blog no solo para sugeriros cómo realizar splines con R, además quería pedir ayuda para crear una herramienta in Shiny que permita realizar este ajuste que voy a mostraros a continuación. ...

26 de enero de 2017 · rvaquerizo