Hola muy buenos días , tardes o noches.
En el mundo del análisis de datos, es común encontrarse con la tarea de lidiar con datos ausentes. En este post, exploraremos cómo abordar el problema de los datos faltantes y presentaremos dos posibles soluciones: la eliminación de filas con datos ausentes y la imputación de datos. Utilizaremos un data set del desafío de análisis FP20 para ilustrar los pasos necesarios para resolver este problema. Antes de sumergirnos en las soluciones, es importante analizar las reglas y considerar la opinión del cliente para comprender mejor el contexto del negocio y brindar soluciones adecuadas.
Utilizaremos el data set de este maravilloso reto en el cual manejamos que es el numero 6 WELCOME TO THE FP20 ANALYTICS CHALLENGE.
Acá podrán encontrar el link del challenge con el data set.
https://fp20analytics.com/challenge
Ahora teniendo este presente para poder ejecutar lo que tenemos y así poder definir los pasos para dar solución.
Primero existen varias reglas en la cuales es correcto y prudente poder analizar antes de entrar directo a los datos
La primera opción reportar este tipo de anomalías a nuestro cliente fundamental obtener un estatus de las columnas para así reportarlas y consultar si es normal que vengan estos datos así , si es así como solían solucionar , o no lo tenían en cuenta para entender como tiene el modelo de negocio y luego brindar soluciones que se puedan ajustar a esta necesidad.
Ahora si luego de conversar con el cliente que pasos podemos seguir.
1) Eliminar las filas con datos faltantes (la más común que utilizan muchos): Si los registros con datos faltantes son relativamente pocos y no afectan significativamente tus análisis, puedes optar por eliminar esas filas. Esto garantiza que solo estés trabajando con datos completos, pero debes evaluar si la pérdida de datos es aceptable y no afecta tus resultados.
Pero este caso cabe analizar que solo si la cantidad de faltantes no representa variación importante en las métricas a analizar, esto quiere decir que en nuestro conjunto de datos, el cual tenemos 72.314 registros debemos verificar y tenemos 68 registros vacíos en las columnas Time order placed at restaurant, Time driver arrived at restaurant , la idea es tener menos o igual al 1% de los datos , que vamos no existe una regla general pero por que juegan varias opciones sobre este contexto y siempre siempre reporta esto al cliente
Calculemos primero dividendo (68/72.314)*100= 0.09403 no llega a al 1 % así que es un dato que podemos a tener en cuenta , así que podría ser una opción a contemplar para seguir analizando nuestro conjunto de datos
Así que si cumple con este paso , bueno mano a la obra , usemos el hermoso power query editor que es nuestro aliado para esto
Lo que debemos hacer estand en power query es quitar los nulos de las columnas afectadas con vacíos y ya no tendríamos mas vacíos.
Fácil rápido y sin complicaciones, recuerda que si tienes acceso al origen de datos y te vienen así siempre siempre siempre será mejor editar estos pasos de quitar vacíos desde origen.
Sigamos con el siguiente paso.
2) Imputación de datos: Si los datos faltantes son importantes y eliminar las filas no es una opción viable, puedes utilizar técnicas de imputación para estimar los valores faltantes. Esta es otra opción que he utilizado en varias opciones cuando el cliente no tiene claro que tipo de datos finales obtendrá.
Hay varios enfoques para imputar datos, como reemplazar los valores faltantes por la media, la mediana o utilizando modelos de aprendizaje automático más avanzados.
Power BI y en muchas otras herramientas ofrecen funciones para calcular estos datos para realizar este tipo de imputaciones.
Pero stop antes de seguir avanzado ojo que son media y mediana, y la pregunto que me hice muchas veces en la uni .fue media es igual que promedio, bueno acá viene algo de teoría de san Google (porque no quería redactar jajajajaj)
Media: La media, también conocida como promedio, es la suma de todos los valores en un conjunto de datos dividida por el número total de valores.
Y esto como se come bueno acá te explico cómo se hace el cálculo:
Se calcula sumando todos los valores y luego dividiendo esa suma por la cantidad de valores en el conjunto. La media es sensible a los valores extremos y puede verse afectada por valores atípicos, ya que se basa en la suma de todos los valores.
Mediana: La mediana es el valor medio de un conjunto de datos cuando estos se ordenan de forma ascendente o descendente.
Es el valor que divide al conjunto de datos en dos partes iguales, donde la mitad de los valores son mayores que la mediana y la otra mitad son menores. La mediana no se ve afectada por los valores atípicos, ya que solo se basa en el valor central o medio del conjunto.
Ahora ya vimos las teorías, analizando en frio nuestras columnas, noooo para nada cumple coloquemos a prueba , pero por que no cumple es dado que son de tipo fecha Si la columna es de tipo fecha y queremos nosotros imputar valores faltantes, el enfoque de utilizar la media o la mediana no es aplicable directamente, ya que estas medidas no tienen sentido en el contexto de las fechas.
Cuando realizamos una medida en dax y colocamos median nos indica que no permite ni valores cadenas , ni booleanos ni dates o fechas así que este enfoque teórico no va en nuestro caso.
Pero entonces no podemos usar esta opcions, bueno si pero es cambiando la manera de como interpretar la logia de solución , podemos Reemplazar con fechas adyacentes, Si si que se puede, es así :
Los registros con fechas faltantes están ordenados cronológicamente, puedes utilizar las fechas adyacentes para imputar los valores faltantes.
Por ejemplo, puedes tomar la fecha anterior o posterior disponible y utilizarla como sustituto para los registros faltantes.
Cambiando la lógica en este caso y ahora viendo posibilidades quien es nuestro mejor aliado si si que si power queryyyy es nuestra maravillosa solución , por que la columna date como vemos en la imagen esta ordenada cronológicamente así que pum podemos fiarnos de esta solución
Como digo nuestro aliado (power query) tiene una opciones en sus tranformaciones maravillosa que se llama (fill) que es completar así arriba o hacia abajo claro eso depende si le das clic «Rellenar hacia abajo» o «Rellenar hacia arriba», dependiendo de si deseas utilizar la fecha anterior o posterior como sustituto llenando el espacio en blanco.
Veámoslo en la imagen podemos darle clic derecho sobre la columna que deseamos aplicar esta imputación y así seleccionar cualquiera de las dos opciones yo elegire desde rellenar hacia abajo
Pero también para no hacer uno por uno podemos seleccionar las columnas ejemplo las dos afectadas en nuestro caso y en la cinta de opciones (arriba en lo inconos donde dice tranformar) sale la opción rellenar en este caso podrás aplicarlo para los dos
Tantan tenemos dos posibles soluciones tanto para este caso como muchos más casos en tu vida real siiiiiii.
Pero pero quiero resaltar que esto es un conjunto de datos de prueba ojito con esto , todos estos pasos son fundamental conversarlo con el cliente y por favor como consejo que te ahorraras noche de terror (que yo ya viví hace años) que documentes todo esto y envía un correo a tu cliente recibiendo el ok de estos cambios para que tu como analista te cuides tus espaldas.
Cerremos esto de manera elegante:
Manejar datos ausentes es una parte crucial del proceso de análisis de datos. En este post, hemos discutido dos enfoques comunes para abordar este problema: eliminar filas con datos ausentes y realizar imputaciones de datos. Cada enfoque tiene sus ventajas y desventajas, y la elección depende del contexto y las necesidades del análisis. Es fundamental comunicarse con el cliente, comprender el impacto de los datos faltantes en las métricas y obtener su aprobación antes de aplicar cualquier solución. Además, es recomendable documentar todos los pasos y obtener la confirmación por escrito para garantizar una sólida base de trabajo.
Esperamos que este post haya sido útil y te haya brindado una comprensión sólida sobre cómo manejar los datos ausentes en tus proyectos de análisis de datos.
¡Feliz sábado y éxito en tus análisis!
Vicente Antonio Juan Magallanes
Business Intelligence Technical.
Perfil linkedin.
Good blog you’ve got here.. It’s hard to find high quality writing like yours nowadays. I truly appreciate people like you! Take care!!
Thanks for your word i feel happy for your comment