Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Análisis exploratorio

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from funciones_auxilares import *

1. Contexto

El conjunto de datos esta compuesto por 6 variables las cuales son las siguientes:

  • F - Frecuencia (Hertz Hz). La frecuencia a la que se mide/analiza el ruido aerodinámico generado por el perfil.

  • alpha - Ángulo de ataque (Grados º). El ángulo entre la cuerda del perfil y el flujo incidente.

  • c - Longiutd de cuerda (metros m). La cuerda del perfil.

  • U_infinity - Velocidad de la corriente libre (m/s). La velocidad de flujo lejos del perfil.

  • delta - Espesor de desplazamiento en la cara de succión (metros m). El espesor de desplazamiento de la capa límite en la cara de succión.

  • SSPL - Scaled Sound Pressure Level (dB). El nivel de presión sonora escalado.

NOTA: La variable a predecir será SSPL para conocer el sonido de la presión sonora que produce el avión según su inclinación.

OBJETIVO: El objetivo de este cuaderno es el de realizar el análisis exploratorio del conjuhto de datos para su posterior utilización en modelos de regresión para la identificación de contrafácticos mediante el uso del framework FUCO

2. Carga de datos y revisión básica de calidad

# Se realiza la carga de los datos
df = pd.read_csv("AirfoilSelfNoise.csv", sep=',')

print("--------------- VISUALIZACIÓN DE CABECERA ---------------")
print(df.head())

print()
print("--------------- RESUMEN BÁSICO ---------------")
print(df.info())
--------------- VISUALIZACIÓN DE CABECERA ---------------
      f  alpha       c  U_infinity     delta     SSPL
0   800    0.0  0.3048        71.3  0.002663  126.201
1  1000    0.0  0.3048        71.3  0.002663  125.201
2  1250    0.0  0.3048        71.3  0.002663  125.951
3  1600    0.0  0.3048        71.3  0.002663  127.591
4  2000    0.0  0.3048        71.3  0.002663  127.461

--------------- RESUMEN BÁSICO ---------------
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1503 entries, 0 to 1502
Data columns (total 6 columns):
 #   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
 0   f           1503 non-null   int64  
 1   alpha       1503 non-null   float64
 2   c           1503 non-null   float64
 3   U_infinity  1503 non-null   float64
 4   delta       1503 non-null   float64
 5   SSPL        1503 non-null   float64
dtypes: float64(5), int64(1)
memory usage: 70.6 KB
None

Como puede observarse el conjunto de datos está compuesto por 6 variables las cuales son 5 predictoras (f, alpha, c, U_infinity y delta) junto a la variable a predecir que es SSPL. Dentro del conjunto de datos podemos encontrar que la variable f es la única numérica entera mientras que el resto es numérica decimal. Adicionalmente, dentro de cada una de las variables del conjunto de datos, ninguna de ellas contiene elementos vacíos en los 1503 registros que componen el conjunto de datos.

3. Estadística descriptiva y análisis univariante

A través de este apartado se pasa a realizar la analítica descriptiva de cada una de las variables que componen el conjunto de datos para conocer sus distribuciones y los valores que estas almacenan.

3.1 Estadística descriptiva

print("--------------- MÉTRICAS ESTADÍSTICAS BÁSICAS ---------------")
print(df.describe())
--------------- MÉTRICAS ESTADÍSTICAS BÁSICAS ---------------
                  f        alpha            c   U_infinity        delta  \
count   1503.000000  1503.000000  1503.000000  1503.000000  1503.000000   
mean    2886.380572     6.782302     0.136548    50.860745     0.011140   
std     3152.573137     5.918128     0.093541    15.572784     0.013150   
min      200.000000     0.000000     0.025400    31.700000     0.000401   
25%      800.000000     2.000000     0.050800    39.600000     0.002535   
50%     1600.000000     5.400000     0.101600    39.600000     0.004957   
75%     4000.000000     9.900000     0.228600    71.300000     0.015576   
max    20000.000000    22.200000     0.304800    71.300000     0.058411   

              SSPL  
count  1503.000000  
mean    124.835943  
std       6.898657  
min     103.380000  
25%     120.191000  
50%     125.721000  
75%     129.995500  
max     140.987000  

Como puede ser observado el conjunto de datos cuenta con 6 variables las cuales dan información a 1503 registros. Entre las varaibles puede observarse como existe una alta diferencia en cuanto a las escalas de los valores como a los rangos de estas. Por otro lado, se puede observar como para f y delta su media se encuentra muy por encima de su mediana por lo que existe un sesgo hacia la derecha. Por último, con respecto a la variable objetivo puede ser observado como la distribución de valores se encuentra dentro de un rango aceptable.

3.2 Análisis univariante

Con respecto al análisis univeriante, destaca lo siguiente:

  • Variable f. Existen valores atípicos por encima por lo que hay que revisar la situación y evaluar si es necesario eliminarlos.

  • Variabel delta. Existen valores atípicos por encima por lo que hay que revisar la situación y evaluar si es necesario eliminarlos.

# Ejemplo de uso:
for col in df.columns:
    visualizacion_uni_hist_boxplot(df, col)
    print()
=== ESTADISTICA DESCRIPTIVA 'f' ===
count     1503.000000
mean      2886.380572
std       3152.573137
min        200.000000
25%        800.000000
50%       1600.000000
75%       4000.000000
max      20000.000000
<Figure size 1200x400 with 2 Axes>

=== ESTADISTICA DESCRIPTIVA 'alpha' ===
count    1503.000000
mean        6.782302
std         5.918128
min         0.000000
25%         2.000000
50%         5.400000
75%         9.900000
max        22.200000
<Figure size 1200x400 with 2 Axes>

=== ESTADISTICA DESCRIPTIVA 'c' ===
count    1503.000000
mean        0.136548
std         0.093541
min         0.025400
25%         0.050800
50%         0.101600
75%         0.228600
max         0.304800
<Figure size 1200x400 with 2 Axes>

=== ESTADISTICA DESCRIPTIVA 'U_infinity' ===
count    1503.000000
mean       50.860745
std        15.572784
min        31.700000
25%        39.600000
50%        39.600000
75%        71.300000
max        71.300000
<Figure size 1200x400 with 2 Axes>

=== ESTADISTICA DESCRIPTIVA 'delta' ===
count    1503.000000
mean        0.011140
std         0.013150
min         0.000401
25%         0.002535
50%         0.004957
75%         0.015576
max         0.058411
<Figure size 1200x400 with 2 Axes>

=== ESTADISTICA DESCRIPTIVA 'SSPL' ===
count    1503.000000
mean      124.835943
std         6.898657
min       103.380000
25%       120.191000
50%       125.721000
75%       129.995500
max       140.987000
<Figure size 1200x400 with 2 Axes>

3.2 Análisis correlaciones

A través de este apartado se pasa a realizar el análisis de correlaciones entre las variables que componen el cojunto de datos con el fin de conocer las relaciones y tendencias que existen entre ellas.

3.2.1 Correlación de pearson

plot_corr_matrix(df, method="pearson")
<Figure size 800x600 with 2 Axes>

Como se puede observar en la matriz de correlaciones, existe una alta correlación positiva entre la variable alpha y la variable delta mientras que la correlación de alpha con la variable C es alta pero de manera negativa. Por otro lado, puede ser observado como que con respecto a la variable a predecir (SSPL) la correlación con el resto de variables es negativa a excepción de la variable U_infinity. Adicionalmente, puede ser observado como entre el resto de variables no se observar correlaciones altamente reseñables.

3.2.2 Correlación de Spearman

plot_corr_matrix(df, method="spearman")
<Figure size 800x600 with 2 Axes>

Como se puede observar en la matriz de correlaciones, existe una alta correlación positiva entre la variable alpha y la variable delta mientras que la correlación de alpha con la variable C es alta pero de manera negativa. Por otro lado, puede ser observado como que con respecto a la variable a predecir (SSPL) la correlación con el resto de variables es negativa a excepción de la variable U_infinity. Adicionalmente, puede ser observado como entre el resto de variables no se observar correlaciones altamente reseñables.

3.2.3 Relaciones bivariantes

Con respecto a las relaciones de las variables predictoras con la variables a predecir, no se observan situaciones ni elemento reseñables.

for col in df.columns:
    scatter_feature_vs_target(df, feature=col, target="SSPL")
<Figure size 700x500 with 1 Axes>
<Figure size 700x500 with 1 Axes>
<Figure size 700x500 with 1 Axes>
<Figure size 700x500 with 1 Axes>
<Figure size 700x500 with 1 Axes>
<Figure size 700x500 with 1 Axes>