Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Exploración y preparación de datos

11/17
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Función para detectar valores atípicos en el dataset:

def detect_otliers(x):
    Q3 = Datos[x].quantile(0.75)
    Q1 = Datos[x].quantile(0.25)
    IQR = Q3 - Q1
    superior = Q3 + (1.5 * IQR)
    inferior = Q1 - (1.5 * IQR)
    out_sup = Datos[Datos[x] > superior].index
    out_inf = Datos[Datos[x] < inferior].index
    outliers = []
    for i in out_sup:
        outliers.append(i)
        for j in out_inf:
            outliers.append(j)
    
    size = len(outliers)
        
    return (f'Hay {size} valores atípicos en la variable {x}, y corresponden a los índices: {outliers}')

detect_otliers('bmi')

'Hay 8 valores atípicos en la variable bmi, y corresponden a los índices: [115, 285, 400, 843, 856, 1043, 1084, 1310]'

Veo un error potencial que posiblemente en general no sea importante pero si algo a tener en cuenta. La consulta de valores atipicos es > 50000 y en el filtro se aplica < 50000, o se que se esta obviando los 50000.

df[df.charges>50000]
df = df[df.charges<50000]]

Supongo que habitualmente no suele ser importante pero conceptualmente se esta omitiendo informacion, es decir se encontraron 7 lineas mayora a 50000 ¿que pasaria si hubiera 10 lineas con exactamente 50000? ¿Seria importante o no incluirlos? Es decir, creo que a la hora de analizar esos detalles son importantes para tomar decisiones en base a todas las muestras.

Análisis de distribución par ala variable ‘bmi’, la cual, sigue una distribución normal, correr el siguiente código:

# Análisis de distribución variable "bmi"
sns.histplot(x= Datos['bmi'])
plt.title('Distribución de la variable BMI')
plt.show()

# QQ plot
stats.probplot(Datos['bmi'], dist='norm', plot=plt)
plt.title('Gráfico QQ para la variable BMI')
plt.show()

# Prueba shapiro para normalidad
st, p = stats.shapiro(Datos['bmi']) # La variable BMI sigue una distribución normal.
print(p)