Distribución de los datos

  • 6:58 min | Última modificación: Diciembre 13, 2021 | YouTube

[1]:
import warnings

warnings.filterwarnings("ignore")
[2]:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

Definición del problema

El conjunto de datos de la flor Iris contiene 150 muestras de las medidas del ancho y el largo del pétalo y del sépalo para las tres especies de esta flor (Iris setosa, Iris virginica e Iris versicolor). A partir de la muestra de datos se desean responder la siguiente pregunta:

  • P3.— ¿Cual es la distribución de probabilidades del ancho y largo del petalo y del sepalo para cada especie?

Carga de datos

[3]:
#
# Se cargan los datos y se realiza una inspección
# inicial de la tabla y los datos
#
iris = sns.load_dataset("iris")

display(iris.head(), iris.tail())
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
sepal_length sepal_width petal_length petal_width species
145 6.7 3.0 5.2 2.3 virginica
146 6.3 2.5 5.0 1.9 virginica
147 6.5 3.0 5.2 2.0 virginica
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica
[4]:
iris_melt = pd.melt(
    iris,
    id_vars="species",
    var_name="Variables",
    value_name="Values",
)

Histograma

[5]:
#
# Los histogramas permiten visualizar como se distribuyen los datos en un rango
# determinado.
#
#  ¿En que rango son más frecuentes mis datos?
#
sns.displot(
    iris_melt,
    x="Values",
    row="species",
    col="Variables",
)
plt.show()
../../../_images/ciencia_datos_estadistica_descriptiva_notebooks_1-04_distribution_9_0.png
[6]:
#
# Sesgo de interpretación: histogramas con diferente cantidad de particiones
# pueden llevar a que distintas personas puedan llegar a distintas
# interpretaciones
#
sns.displot(
    iris_melt,
    x="Values",
    row="species",
    col="Variables",
    bins=30,
)
plt.show()
../../../_images/ciencia_datos_estadistica_descriptiva_notebooks_1-04_distribution_10_0.png

Kernel density estimation

[7]:
sns.displot(
    iris_melt,
    x="Values",
    col="Variables",
    hue="species",
    bins=30,
    stat="density",
)
plt.show()
../../../_images/ciencia_datos_estadistica_descriptiva_notebooks_1-04_distribution_12_0.png

Diagrama de violin

[8]:
sns.catplot(
    x="species",
    y="Values",
    data=iris_melt,
    col="Variables",
    kind="violin",
    col_wrap=2,
)
plt.show()
../../../_images/ciencia_datos_estadistica_descriptiva_notebooks_1-04_distribution_14_0.png