En este caso, la distribución pareciera bimodal pero se debe a que las 3 especies tienen distribuciones distintas, sin embargo, cada especie pareciera tener una distribución normal.
Las lineas rojas y azules marcan la media y desviación estandar de toda la población:
Muy buen aporte.
¿Cuál es el valor Freedman-Diaconis?
Después de la función la declaramos.
Para Flipper_length_mm: 3.3 :point_down:
Muy buen aporte. Resolvio mi duda!
Excelente, Gracias!
El profesor en el minuto 5:20 indica que el valor del cuartil 50% es igual al valor de la media, pero creo que se refiere a la mediana. Porque esos valores corresponde a la mediana.
Sí, se refiere a la mediana o median. Todavía no se ha evaluado si las distribuciones son simétricas o no.
Las gráficas boxenplot nos ayudan a identificar un poco mejor la distribución de nuestros datos sin necesidad de hacer un histplot. Es tan versatil que podemos ajustar la cantidad de quantiles que queremos relfejar.
Aunque es más útil cuando hay mayor cantidad de datos puede influir en una mejor interpretación:
sns.histplot( data=processed_penguins_df, x='flipper_length_mm')x_stats =[[processed_penguins_df.flipper_length_mm.mean(),'r',2],[processed_penguins_df.flipper_length_mm.median(),'g',2],[processed_penguins_df.flipper_length_mm.mode().max(),'y',2],[processed_penguins_df.flipper_length_mm.quantile(0.75),'k',2],[processed_penguins_df.flipper_length_mm.quantile(0.25),'k',1]][plt.axvline( x=value[0], color=value[1], linestyle='dashed', linewidth=value[2])for value in x_stats]heigth =75plt.text(processed_penguins_df.flipper_length_mm.quantile(0.25)+0.25,heigth,'Q(25%)', fontsize=12)plt.text(processed_penguins_df.flipper_length_mm.mode().max()+0.25,heigth-3,'mode', fontsize=12, color='y')plt.text(processed_penguins_df.flipper_length_mm.median()+0.25,heigth-6,'median', fontsize=12, color='g')plt.text(processed_penguins_df.flipper_length_mm.mean()+0.25,heigth-9,'mean', fontsize=12, color='r')plt.text(processed_penguins_df.flipper_length_mm.quantile(0.75)+0.25,heigth,'Q(75%)', fontsize=12)
Con la longitud del pico pingüinesco:
*La Isla Biscoe es la más densamente poblada: En ella, los pingüinos suelen tener una longitud del pico promedio, también es donde podemos encontrar la mayor cantidad de pingüinos con el pico más grande, aunque no es una cantidad significativa
Determinación el tamaño de binwidth del histograma mediante la regla de Freedman-Diaconis
Los histogramas se utilizan para estimar la distribución de probabilidad de una variable aleatoria continua. Se utilizan con frecuencia como punto de partida del análisis exploratorio de datos y proporcionan información sobre la forma y la variabilidad de los datos en cuestión. Uno de los desafíos en la construcción de histogramas es seleccionar el número óptimo de contenedores (o, análogamente, el ancho de cada contenedor). Para ayudar a determinar un ancho de intervalo razonable, podemos aprovechar la regla de Freedman-Diaconis, que fue diseñada para minimizar la diferencia entre el área bajo la distribución de probabilidad empírica y el área bajo la distribución de probabilidad teórica.
Formalmente, la regla toma como entrada el rango intercuartílico IQR(x) y el número de observaciones n en el conjunto de datos empíricos, y devuelve una estimación del ancho del intervalo. La regla se puede expresar como:
$$Bin~width = 2 \frac{IQR(x)}{\sqrt{n}}$$
sns.histplot(data=penguins_df_final, x="flipper_length_mm", kde=True, binwidth=freedman_diaconis_bindwidth(penguins_df_final.bill_length_mm));plt.axvline(x=penguins_df_final.flipper_length_mm.mean(), color ='red', linestyle='dashed', linewidth=2);
Para complementar el ultimo comentario de la clase, les comparto el Anscombe's Quartet:
Never trust summary statistics alone; always visualize your data
Aquí mi histograma con bins=3 y haciendo hue='species':
sns.histplot( data = preprocess_penguins_df, x='flipper_length_mm', hue='species', palette=penguin_color, binwidth=3)plt.axvline( x=preprocess_penguins_df.flipper_length_mm.mean(), color ='red', linestyle ='dashed', linewidth=3)plt.axvline( x=preprocess_penguins_df.flipper_length_mm.median(), color ='green', linestyle ='dashed', linewidth=3)plt.text(preprocess_penguins_df.flipper_length_mm.median(),30,'median', fontsize=12, color='g')plt.text(preprocess_penguins_df.flipper_length_mm.mean(),30,'mean', fontsize=12, color='r')plt.show()```
Medidas de Dispersion Notebook
max() arroja los valores maximos de las variables del dataset. Utiliza el parametro numeric_only para obtener el maximo solo de las variables numericas
dataFrame.max(numeric_only=True)
min() arroja los valores minimos de las variables del dataset
dataFrame.min(numeric_only=True)
Calculo del rango intercuartil mostrado en una tabla
#histogramasns.histplot( data=preprocessed_penguins_df, x='flipper_length_mm')#trazar la media en la graficaplt.axvline( x=preprocessed_penguins_df.flipper_length_mm.mean(), color='red', linestyle='dashed', linewidth=2)
Funcion Freedman Diaconis. Permite calcular el bin mas adecuado basados en el rango intercuartil
¿Por qué no es posible calcular la moda?
<ValueError:The truth value of a Series is ambiguous.Use a.empty, a.bool(), a.item(), a.any() or a.all().sns.histplot( data=processed_penguins_df, x='flipper_length_mm', binwidth=1, hue='species')#Medianplt.axvline( x=processed_penguins_df.flipper_length_mm.median(), color='red', linestyle='dashed', linewidth=1)#Meanplt.axvline( x=processed_penguins_df.flipper_length_mm.mean(), color='green', linestyle='dashed', linewidth=1)#Modeplt.axvline( x=processed_penguins_df.flipper_length_mm.mode(), color='grey', linestyle='dashed', linewidth=1)>
Bueno, pues creo síes posible, este es mi resultado:
Luego, hice un hist para comparar la masa en cada isla.
Al parecer también muchas comparaciones serán bimodales ya que serán pinguinos de islas distintas, pero al parecer los pinguinos en la isla biscoe son más gorditos
Con plotly en un solo grafico podemos visualizar ambas graficas y ver los valores de los quartiles, media, min, max, sin necesidad de agregar lineas adicionales. Ademas podemos desmarcar en la legenda las distintas especies y ver como se comportan en solitario, de esta manera podemos apreciar que cada especie tiene su campana de gauss en solitario.
Por cierto hay un Swapping entre la clase 12 y 13.
También si corregimos el boxplot por especie da lo siguiente:
Una distribución bimodal es aquella que presenta dos picos o máximos en su representación gráfica. Esto puede indicar que los datos provienen de dos grupos distintos que tienen características diferentes, lo que puede suceder en contextos como:
Variación en las poblaciones: Dos subgrupos dentro de un conjunto de datos, como edades de estudiantes en diferentes niveles educativos.
Factores externos: Influencias externas que afectan a los datos, como estacionalidad en ventas.
Múltiples causas: Fenómenos que pueden ser impulsados por diferentes factores subyacentes.
Es importante analizar el contexto para entender su origen.