Histograma
Los histogramas representan la frecuencia o la distribución de probabilidad de una variable utilizando barras verticales de igual ancho, comúnmente denominadas barras.
El módulo pyplot
proporciona la función hist
para crear histogramas. El parámetro requerido es el dato (x
), que puede ser un arreglo o una secuencia de arreglos. Si se pasan varios arreglos, cada uno se muestra en un color diferente.
import pandas as pd import matplotlib.pyplot as plt # Loading the dataset with the average yearly temperatures in Boston and Seattle url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Creating a histogram plt.hist(weather_df['Seattle']) plt.show()
Intervalos y Altura
Se pasó un objeto Series
que contiene las temperaturas medias anuales en Seattle a la función hist()
. Por defecto, los datos se dividen en 10 intervalos iguales que van desde el valor mínimo hasta el máximo. Sin embargo, solo son visibles 9 barras porque el segundo intervalo no contiene ningún dato.
La altura de cada barra, por defecto, es igual a la frecuencia de los valores en ese intervalo (número de veces que ocurren).
Número de Barras
Otro parámetro importante, aunque opcional, es bins
, que acepta tanto el número de barras (entero) como una secuencia de números que especifican los límites de las barras o una cadena de texto. La mayoría de las veces, indicar el número de barras es suficiente.
Existen varios métodos para determinar el ancho de las barras del histograma. En este ejemplo, se utilizará la fórmula de Sturges, que calcula el número óptimo de barras en función del tamaño de la muestra:
Aquí, n
es el tamaño del arreglo de datos.
Puede explorar métodos adicionales para el cálculo de intervalos aquí.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Specifying the number of bins plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df)))) plt.show()
El número de filas en el DataFrame
es 26 (el tamaño de la Series
), por lo que el número resultante de intervalos es 5.
Aproximación de la Densidad de Probabilidad
Para visualizar una aproximación de la densidad de probabilidad, establece el parámetro density
en True
en la función hist
.
Ahora, la altura de cada barra se calcula usando:
donde:
- el número total de valores en el conjunto de datos;
- el número de valores en la barra;
- el ancho de la barra.
Esto asegura que el área total bajo el histograma sea 1, lo que coincide con la propiedad clave de una función de densidad de probabilidad (PDF).
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Making a histogram a probability density function approximation plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df))), density=True) plt.show()
Esto proporciona una aproximación de la función de densidad de probabilidad para los datos de temperatura.
Si desea explorar más sobre los parámetros de hist()
, puede consultar la documentación de hist()
.
Swipe to start coding
Crear una aproximación de una función de densidad de probabilidad utilizando una muestra de la distribución normal estándar:
- Utilizar la función correcta para crear un histograma.
- Usar
normal_sample
como los datos para el histograma. - Especificar el número de intervalos como segundo argumento utilizando la fórmula de Sturges.
- Hacer que el histograma sea una aproximación de una función de densidad de probabilidad especificando correctamente el argumento más a la derecha.
Solución
¡Gracias por tus comentarios!