Evita problemas con Excel desde R. De tocar el dato a un proceso

En estos días hemos vivido una situación con Excel y los datos de COVID de UK peculiar. Hemos aparecido todos en las redes sociales para reírnos de Excel y de los que usan Excel. De nuevo partidarios de Matlab, R, Python,… ¡a la gresca! Mi opinión la podéis leer en Twitter y creo que sobre este tema puedo opinar. En mi vida profesional me he especializado en cambiar equipos de negocio, por ese motivo tanto ir y venir de compañía. Uno de esos cambios consiste en transformar super usuarios de Excel a usuarios de herramientas más apropiadas para la gestión de la información.

Manejo de datos básico con Python datatable

Nueva entrada dedicada al data management con Python , esta vez con datatable. No voy a justificar el uso de datatable antes que pandas, en un vistazo rápido por la web encontráis numerosas ocasiones en las que datatable es más eficiente que pandas en el manejo de datos con Python. En cuanto a la complejidad en el uso de uno u otro mi opinión no es objetiva porque me cuesta mucho trabajar con Pandas.

Transformaciones de variables cuantitativas en modelos binomiales

Para mejorar la capacidad predictiva de nuestros modelos binomiales es recomendable transformar las variables independientes. Existen técnicas que lo hacen de modo automático pero hoy os quería mostrar en un video un método «casero» para agrupar una variable cuantitativa con respecto a una variable respuesta, todo muy orientado a que la transformación tenga un sentido de negocio.

El código empleado para hacer el video es el siguiente:

from urllib import urlretrieve
link = 'https://raw.githubusercontent.com/yhat/demo-churn-pred/master/model/churn.csv'
urlretrieve(link, "churn.txt")

import pandas as pd
import numpy as np
df = pd.read_csv("churn.txt")
df.head(5)

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

pd.crosstab(df['Churn?'], columns='count').plot(kind='bar')
plt.show();

df['churn'] = np.where(df['Churn?'] == 'True.', 1, 0)

pd.crosstab(df['churn'], columns='count')

df['Day Mins'].isnull().sum()
df['Day Mins'].describe()
plt.hist(df['Day Mins'], bins=20); plt.show();

df['minutos'] = np.where(df['Day Mins'] >= 270, 270, (df['Day Mins']//10)*10)
df['minutos'] = np.where(df['minutos'] <= 70, 70, df['minutos'])

pd.crosstab(df['minutos'], columns='count')
plt.hist(df['minutos']); plt.show();

churn =  pd.DataFrame((df['churn']).groupby(df['minutos']).mean())
clientes = pd.DataFrame((df['churn']).groupby(df['minutos']).count())

fig = plt.figure()
ax = clientes['churn'].plot(kind='bar', grid=True)
ax2 = ax.twinx()
ax2.plot(churn['churn'].values, linestyle='-', linewidth=2.0,color='red')
plt.show();

Variables categóricas en cajas, treemap con R

La representación de variables categóricas en cajas es uno de los gráficos que más utilizo, empezaron a gustarme debido al uso de Qlik Sense y sus gráficos de cajas, me permitían comparar variables categóricas en un periodo frente a otro. En R podemos usar la librería treemap para realizar estos gráficos y comparar variables categóricas. En este caso interesa comparar una variable dentro de dos grupos.

Para ilustrar el ejemplo nos suministran un conjunto de datos con información de un seguro de responsabilidad civil de motocicletas de una compañía sueca. Este conjunto de datos está en la librería CASdatasets de R:

Nueva edición del Programa en Big Data y Data Science de la UNED

Ya está abierta la convocatoria para el Programa Modular en Big Data y Data Science aplicados a la Economía y a la Administración y Dirección de Empresas. Es un programa que se imparte 100% en línea y tiene el mejor balance entre la visión teórica y la visión práctica en ciencia de datos. Si escogéis el módulo de seguros allí nos veremos.

En el siguiente enlace podréis encontrar más información:

Mapa España por Comunidades Autónomas con Google Studio

Continúo evaluando métodos para crear mapas con software que no sea de pago e intentando que la dificultad sea mínima. En este caso quería mostraros y poner a vuestra disposición un mapa de España por Comunidades Autónomas, además os dejo acceso libre a los datos que usa el mapa para que vosotros mismos podáis realizar el trabajo. Voy a pasaros 2 enlaces uno con los datos donde tenemos datos de pruebas PCR por 100.000 habitantes a nivel de Comunidad Autónoma (por representar algo) es ahí donde incluís los datos que deseáis representar gráficamente. Y el otro enlace es el dashboard simple hecho con Data Studio que véis al inicio de la entrada que contiene un mapa con el formato que en este momento necesito. Este trabajo es meramente experimental porque pongo a disposición de todos tanto mapa como Hoja de Google, veremos lo que tarda en dejar de funcionar.

Leer fichero de texto de ancho fijo con Python Pandas

Es muy habitual trabajar con archivos csv pero en ocasiones disponemos de ficheros de texto con determinado formato o con ancho fijo para las columnas. Hace tiempo ya escribí sobre la lectura de archivos csv con Python y Pandas pero en esta ocasión vamos a leer archivos que no tienen un separador. Evidentemente tienen que darnos el formato del archivo, en este caso, para ilustrar el ejemplo, vamos a pasar un código en R a un código en Python. Necesitamos leer unos datos usados en el libro Non-Life Insurance Pricing with GLM , con R teníamos el siguiente programa:

Leer una tabla en PDF con Excel (a través de R)

Hay situaciones en las que tenemos datos en pdf y los necesitamos exportar a Excel para graficar o cruzar esos datos. En ocasiones es mejor meter esos datos a mano, otras veces disponemos de un software de pago que nos permite realizar esa tarea y también hay páginas web que nos permiten cambiar el formato del pdf. En nuestro caso simplemente necesitamos una tabla que está en formato pdf para disponer de esos datos en Excel, más sencillo, copiar del pdf y pegar en Excel esa tabla. Si está en texto el pdf se puede complicar y si está en modo imagen más. Si empleas windows en tu esta entrada puede ser de utilidad ya que usando de R podrás hacer está tarea de copiar pdf y pegar Excel de un modo más rápido, te cuento paso por paso en video.

Trucos Excel. Convertir texto en un resultado o fórmula

Es posible que en Excel tengamos fórmulas que provengan de la concatenación de algunas celdas y necesitemos ejecutar o crear una fórmula. En este caso he encontrado una función muy sencilla que podemos añadir a nuestro libro de macros personal o directamente a nuestro libro. La función es genial y sencilla y proviene de este foro:

https://www.mrexcel.com/board/threads/eval-function-without-the-morefunc-add-in.62067/

Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function

Tiene muchos años pero podéis comprobar que funciona perfectamente. Esta solución me parece más elegante que otras, aunque es probable que MS haya optado por incluir una función que haga esta labor, lo desconozco. Saludos.

La importancia del valor predictivo positivo en las pruebas diagnósticas

El valor predictivo positivo es un dato olvidado cuando realizamos una prueba diagnóstica o (mejor dicho) cuando empleamos este método de medir la potencia de mi modelo. En ocasiones un modelo parece excepcional, pero, cabe preguntarse si un buen modelo puede hacernos perder dinero. Además incidir en la necesidad de calibrar los modelos y medir su comportamiento predictivo y su «comportamiento económico».

Imagen de previsualización de YouTube

Este video es continuación del que tenemos en la anterior entrada del blog. Espero despertar alguna conciencia e incidir sobre la importancia de medir económicamente el comportamiento de un modelo. La historia que se cuenta es real y supuso un buen proyecto para la compañía en la que trabajaba, no haciendo modelos, pero si instalando un nuevo entorno de detección de fraude. Saludos.

Principales elementos en las pruebas diagnósticas

Primer video que subo. Ilustro de modo sencillo algunos elementos de las pruebas diagnósticas con un ejemplo sencillo que podéis reproducir en cualquier hoja de cálculo. No soy precisamente un experto en este tipo de análisis pero me han sido útiles en algunos momentos de mi vida profesional, además, esa visión «simplista» de las cosas puede ayudar a muchos a comprender conceptos más complejos.

Imagen de previsualización de YouTube

Si tiene éxito continuaré hablando sobre razones de probabilidad. Gracias.

Tratamiento y procesado de imágenes con R y magick

Estoy preparando la batalla entre geometría e inteligencia artificial, batalla que está perdida porque tengo que dar de comer a mis chavales y si tengo que ir a vender un producto queda más comercial contar lo que se supone que hace la inteligencia artificial y no contar lo que hacen vectores, direcciones, puntos en el espacio,… eso lo cuentan en la educación secundaria y no es «disruptivo». Sin embargo, aprovecho para contar historia del abuelo, el único proyecto serio basado en inteligencia artificial en el que he estado involucrado se resolvió gracias a la geometría y a las mejoras que se propusieron en el reconocimiento óptico, las redes convolucionales nos provocaron un problema. Inicialmente es mejor plantear una solución sencilla.

Expandir un data frame de R con tidyr

En alguna entrada del blog ya he tratado sobre la expansión de un conjunto de datos pero quería tener una entrada específica. Es algo que se puede programar mediante bucles (tarda una vida) o bien podemos usar la función expand del paquete tydyr. Viendo un ejemplo y los conjuntos de datos generados vais a entender el propósito de la expansión de tablas, se trata de un inicio y un fin y deseamos que se genere una secuencia de observaciones sucesivas dado ese inicio y ese fin. A modo de ejemplo ilustrativo: