Introducción a la Estadística para Científicos de Datos. Capítulo 16. Modelización estadística. Conociendo los datos

Establecer un método para la modelización estadística En el capítulo 3 del ensayo se hacía mención al universo tidyverse y las librerías de R que englobaba. Además de esas librerías, hay una publicación de Hadley Wickham y Garret Grolemund, R for Data Science, donde aparece la siguiente imagen: Esa imagen describe un método para realizar ciencia de datos con R. Como en la anterior figura, este capítulo se dedicará a describir e ilustrar un método de modelización que recoge todo lo trabajado con anterioridad en el ensayo; para ello se emplea el ejemplo que ha servido de hilo conductor en otros capítulos. El ya conocido modelo de venta cruzada en el sector asegurador: ...

16 de mayo de 2023 · rvaquerizo

Introducción a la Estadística para Científicos de Datos. Capítulo 15. Modelos GLM. Regresión logística y regresión de poisson

Motivación de los modelos GLM Hasta el momento se han planteado los siguientes modelos: Modelo de regresión lineal. Modelos factoriales en diseño de experimentos. Para ambos modelos, la variable respuesta ha de ser cuantitativa y distribuida normalmente, pero en el capítulo 10 se vio la siguiente figura: La respuesta normal o gaussiana aparece, pero existen otro tipo de situaciones a las que se enfrenta el científico de datos donde el evento a estudiar no se distribuye normally. Sin ir más lejos, en el ejercicio que está sirviendo de hilo conductor en el ensayo, una aseguradora española que opera en múltiples ramos quiere ofrecer seguro de automóviles a sus clientes del ramo de salud. Para ello se realizó un cuestionario a los clientes, de forma que se marcó quiénes de ellos estarían interesados en el producto de automóviles y quiénes no. La variable de interés es «sí» o «no», lo que plantea una clasificación binomial. ¿Qué sucede si se modelizan eventos sí/no mediante un modelo de regresión lineal? Siguiendo el propio ejemplo de trabajo al que se hace permanentemente referencia: ...

11 de abril de 2023 · rvaquerizo

Introducción a la Estadística para Científicos de Datos. Capítulo 11. Análisis bivariable

De nuevo se retoma el ejemplo que está sirviendo de hilo conductor para este ensayo, la campaña de marketing de venta cruzada en el sector asegurador que está disponible en Kaggle. Una aseguradora española que opera en múltiples ramos quiere ofrecer seguro de automóviles a sus clientes del ramo de salud. Para ello se realizó un cuestionario a los clientes de forma que se marcó quienes de ellos estarían interesados en el producto de automóviles y quienes no. Se identificaron posibles tareas: ...

8 de diciembre de 2022 · rvaquerizo

Evaluando la capacidad predictiva de mi modelo `tweedie`

Cuando tenemos que evaluar el comportamiento de un modelo de clasificación binomial, empleamos sensibilidad, especificidad… ya he hablado sobre ese tema, aunque volveré sobre ello. Sin embargo, si nuestro modelo estima un valor, es posible que no tengamos tan claro cómo está funcionando su capacidad predictiva. Lo que traigo hoy es un análisis muy básico, pero que entienden muy bien aquellas personas que no tienen grandes conocimientos en ciencia de datos; además, es una continuación de la entrada en la que se ilustraba un ejemplo de uso de los modelos Tweedie. ...

17 de diciembre de 2020 · rvaquerizo

Modelos tweedie con H2O. Mutualizar siniestralidad en base a factores de riesgo

Ya he escrito sobre la distribución tweedie en otra ocasión y hoy vuelvo a traeros un ejemplo de uso que además servirá para introducir un método, una forma de trabajar con modelos en H2O y R, además de emplear Gradient Boosting Machine (GBM) para la obtención de primas de riesgo. Ya hay buenos profesionales repartidos en el mercado laboral a los que les he mostrado cómo hacer modelos de riesgo para el sector asegurador con R y H2O dentro del Máster en Big Data de la UNED donde imparto el módulo de seguros. Pero hoy quiero traer al blog un resumen de otro tipo de modelos que nos pueden servir para segmentar una cartera de seguros en base a la siniestralidad esperada de un riesgo. ...

1 de diciembre de 2020 · rvaquerizo

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. ...

8 de octubre de 2020 · rvaquerizo

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 vídeo 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 vídeo es el siguiente: from urllib.request import urlretrieve import pandas as pd import numpy as np import matplotlib.pyplot as plt link = 'https://raw.githubusercontent.com/yhat/demo-churn-pred/master/model/churn.csv' urlretrieve(link, "churn.csv") df = pd.read_csv("churn.csv") df.head(5) # Visualización de la variable objetivo pd.crosstab(df['Churn?'], columns='count').plot(kind='bar') plt.show() # Creación de la variable target numérica df['churn_num'] = np.where(df['Churn?'] == 'True.', 1, 0) # Análisis de la variable 'Day Mins' print(df['Day Mins'].describe()) plt.hist(df['Day Mins'], bins=20) plt.show() # Transformación casera: agrupamiento por tramos de 10 minutos con límites df['minutos_cat'] = np.where(df['Day Mins'] >= 270, 270, (df['Day Mins'] // 10) * 10) df['minutos_cat'] = np.where(df['minutos_cat'] <= 70, 70, df['minutos_cat']) # Cálculo de tasa de churn por tramo churn_rate = df.groupby('minutos_cat')['churn_num'].mean() counts = df.groupby('minutos_cat')['churn_num'].count() # Gráfico de doble eje: volumen de clientes y tasa de churn fig, ax1 = plt.subplots() ax1.bar(counts.index.astype(str), counts.values, color='skyblue', label='Clientes') ax1.set_xlabel('Tramos de Minutos') ax1.set_ylabel('Número de Clientes') ax1.grid(True, axis='y') ax2 = ax1.twinx() ax2.plot(churn_rate.values, linestyle='-', linewidth=2.0, color='red', label='Tasa de Churn') ax2.set_ylabel('Tasa de Churn') plt.title('Transformación de variable Day Mins') plt.show()

2 de octubre de 2020 · rvaquerizo

Obteniendo los parámetros de mi modelo `GAM`

Vimos cómo los modelos GAM iban más allá del GLM porque, en el momento de obtener los parámetros asociados al modelo de un factor, nos proponían en vez de una función lineal una función de suavizado no paramétrica para aquellos factores susceptibles de transformar en variables numéricas ordinales con un sentido determinado. Se trabajó con un modelo de riesgo con una sola variable como era la edad y, al sumarizar el modelo, no era posible obtener los parámetros en la salida. En último término nuestra intención con este tipo de modelos es obtener esos parámetros para transformarlos en relatividades. ¿Qué sentido tiene obtener un buen modelo para negocio si su resultado no se puede expresar en términos de incrementos o descuentos, en términos de relatividades? ...

21 de noviembre de 2019 · rvaquerizo

Modelos GAM con R. Dejando satisfechos a los equipos de negocio

Los modelos GAM (Generalized Additive Model) son el conjunto de modelos que tenemos los estadísticos, actuarios, data scientists o como nos denominen en el momento que leas esto para dejar a nuestros equipos de negocio contentos con los resultados de nuestro modelo GLM. No voy a entrar en los aspectos teóricos de este tipo de modelos, hay documentación como esta que os puede ayudar. ¿Por qué se quedan contentos los equipos de negocio? Porque nos ayudan a dar sentido a los modelos. Retomemos un ejemplo que vimos en otra entrada del blog; en esta entrada presentamos cómo el resultado de un modelo GLM se transforma en una relatividad, en un mecanismo para ofrecer recargos y descuentos. ...

10 de noviembre de 2019 · rvaquerizo

Inteligencia Arficial frente a un juego de niños. La partícula tonta de Nicolás

Pablo Picasso decía que en aprender a pintar como los pintores del Renacimiento tardó unos años, pero pintar como los niños le llevó toda la vida; y en ocasiones creo que hacemos las cosas difíciles porque nos creemos que hacemos cosas difíciles, y entonces llega un niño de nueve años y dice: “Papá, un punto que primero vaya a la izquierda y luego a la derecha no es tan difícil”. ...

16 de julio de 2019 · rvaquerizo