Contenido de este artículo
- 0
- 0
- 0
- 0
Actualizado el 24 de noviembre de 2022, por Dereck Amesquita.
Un valor atípico es una observación que se encuentra anormalmente alejada de otros valores en un conjunto de datos. Los valores atípicos pueden ser problemáticos porque pueden afectar los resultados de un análisis.
Este tutorial explica cómo identificar y eliminar valores atípicos en Python.
¿Cómo identificar valores atípicos en Python?
Antes de poder eliminar los valores atípicos, primero debe decidir qué es lo que considera un valor atípico. Hay dos formas habituales de hacerlo:
Utilice el rango intercuartílico
El rango intercuartil (IQR) es la diferencia entre el percentil 75 (Q3) y el percentil 25 (Q1) en un conjunto de datos. Mide la dispersión del 50% medio de los valores.
Puede definir una observación como un valor atípico si es 1,5 veces el rango intercuartílico mayor que el tercer cuartil (Q3) o 1,5 veces el rango intercuartílico menor que el primer cuartil (Q1).
Valores atípicos = Observaciones> Q3 + 1.5 * IQR o Q1 – 1.5 * IQR
Utilice puntuaciones z
Un puntaje z le dice cuántas desviaciones estándar tiene un valor dado de la media. Usamos la siguiente fórmula para calcular una puntuación z:
z = (X – μ) / σ
dónde:
- X es un único valor de datos sin procesar
- μ es la media de la población
- σ es la desviación estándar de la población
Puede definir una observación como un valor atípico si tiene una puntuación z menor que -3 o mayor que 3.
Valores atípicos = observaciones con puntuaciones z> 3 o <-3
IMPORTANTE: Si no entendiste esto, no hay problema. A continuamos aplicaremos todos estos conceptos para que puedas replicarlos en tu propia información.
¿Cómo eliminar valores atípicos en Python?
Una vez que decida lo que considera un valor atípico, puede identificarlos y eliminarlos de un conjunto de datos. Para ilustrar cómo hacerlo, usaremos el siguiente DataFrame de pandas:
import numpy as np import pandas as pd import scipy.stats as stats # Creamos un Data Frame con 3 columnas 'A', 'B', 'C' np.random.seed(10) data = pd.DataFrame(np.random.randint(0, 10, size=(100, 3)), columns=['A', 'B', 'C']) # Mostramos los 10 primeros elementos data[:10] A B C 0 13.315865 7.152790 -15.454003 1 -0.083838 6.213360 -7.200856 2 2.655116 1.085485 0.042914 3 -1.746002 4.330262 12.030374 4 -9.650657 10.282741 2.286301 5 4.451376 -11.366022 1.351369 6 14.845370 -10.798049 -19.777283 7 -17.433723 2.660702 23.849673 8 11.236913 16.726222 0.991492 9 13.979964 -2.712480 6.132042
Luego, podemos definir y eliminar valores atípicos utilizando el método de puntuación z o el método de rango intercuartílico:
Método de puntuación Z para eliminar valores atípicos
# Encontramos el valor z-score de cada observación z = np.abs(stats.zscore(data)) # Solo mantenemos las filas con puntuación z menor que el valor absoluto de 3 data_clean = data[(z<3).all(axis=1)] # Calculamos cuantas filas quedan data_clean.shape (99,3) En este caso solo quedo 99 filas de 100
Método de rango intercuartílico para eliminar valores atípicos
# Encontramos el Q1, Q3, y el rango intercuartílico para cada columna Q1 = data.quantile(q=.25) Q3 = data.quantile(q=.75) IQR = data.apply(stats.iqr) # Solo mantenemos filas que esten dentro de 1.5*IQR de Q1 y Q3 data_clean = data[~((data < (Q1-1.5*IQR)) | (data > (Q3+1.5*IQR))).any(axis=1)] # Calculamos cuantas filas desaparecerian data_clean.shape (89,3) Solo quedan 89 de 100 filas.
Podemos ver que el método de puntuación z identificó y eliminó una observación como valor atípico, mientras que el método de rango intercuartílico identificó y eliminó 11 observaciones totales como valores atípicos.
¿Cuándo eliminar valores atípicos?
Si uno o más valores atípicos están presentes en sus datos, primero debe asegurarse de que no sean el resultado de un error de entrada de datos. A veces, una persona simplemente ingresa el valor de datos incorrecto al registrar datos.
Si el valor atípico resulta ser el resultado de un error de entrada de datos, puede decidir asignarle un nuevo valor, como la media o la mediana del conjunto de datos.
Si el valor es un valor atípico verdadero, puede optar por eliminarlo si tendrá un impacto significativo en su análisis general. Solo asegúrese de mencionar en su informe o análisis final que eliminó un valor atípico.
Recursos adicionales
Si está trabajando con varias variables a la vez, es posible que desee utilizar la distancia de Mahalanobis para detectar valores atípicos.
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: