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

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

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

Calendario de días laborales con Pandas

Es habitual escuchar que un científico de datos es un estadístico que trabaja con Python. En parte, tiene razón. Sin embargo, quien ha trabajado dentro del mundo académico sabe que para un estadístico las vacas son esféricas y los meses tienen 365,25/12 días. En cambio, en el mundo real, ni hay dos vacas iguales ni un mes igual a otro. Sirva esta entrada para poner en valor todo aquel trabajo adicional y tiempo dedicado por aquellos que trabajan con datos y huyen de simplificaciones estadísticas, ya se denominen científicos de datos o cómo quieran llamarse. ...

1 de julio de 2019 · Paco Gárate

Recopilación Data Science Cheat Sheet

No sé cómo me ha llegado esta recopilación de Cheat Sheets para la Ciencia de Datos, pero viendo el trabajo que realizan algunas personas aún es posible creer en la humanidad. Disfrutad del enlace y ya estamos todos siguiendo el git de este gran tipo: https://github.com/abhat222/Data-Science–Cheat-Sheet

2 de abril de 2019 · rvaquerizo

¿Qué nos pasa con R? (de nuevo)

Hace años ya sorprendió R situándose muy arriba en la lista TIOBE de lenguajes de programación; subió en los años siguientes y ahora nos encontramos con una sorprendente bajada en el índice: ¿Volvemos a tener complejo por usar R? A veces tengo la sensación de que no eres un “pro” si no usas Python. Debe ser que determinados frameworks funcionan mejor en otros lenguajes, o no, pero nos da vergüenza usar R (de nuevo). Saludos.

9 de marzo de 2019 · rvaquerizo

Truco Python. Seleccionar o eliminar variables de un data frame en base a un prefijo, sufijo o si contienen un caracter

A la hora de seleccionar las características de un data frame, es posible que nos encontremos con la necesidad de seleccionar o eliminar características del data frame y que el nombre de esas características tenga un determinado patrón. Esta labor la podemos realizar mediante selección de elementos en listas; en esta entrada del blog vamos a tener tres tipos de selecciones: Seleccionar o eliminar aquellas variables que empiezan por un determinado prefijo. Seleccionar o eliminar aquellas variables que contienen una cadena de caracteres. Seleccionar o eliminar aquellas variables que finalizan con un sufijo. Para ilustrar este trabajo, generamos un data frame con datos aleatorios y 10 columnas: ...

22 de mayo de 2018 · rvaquerizo

Machine learning. Análisis gráfico del funcionamiento de algunos algoritmos de clasificacion

De forma gráfica os voy a presentar algunas técnicas de clasificación supervisada de las más empleadas in Machine Learning y podremos ver cómo se comportan de forma gráfica en el plano. Como siempre, prefiero ilustrarlo a entrar in temas teóricos y, para esta tarea, se me ha ocurrido pintar una letra O y comenzar a trabajar con Python, así de simple. Lo primero es tener los datos; evidentemente serán puntos aleatorios en el plano donde pintamos una variable dependiente con forma de O: ...

3 de mayo de 2017 · rvaquerizo