Histograma
Histogramas representam a frequência ou distribuição de probabilidade de uma variável utilizando intervalos verticais de largura igual, frequentemente chamados de barras.
O módulo pyplot
fornece a função hist
para criar histogramas. O parâmetro obrigatório é o dado (x
), que pode ser um array ou uma sequência de arrays. Se múltiplos arrays forem passados, cada um será exibido em uma cor diferente.
import pandas as pd import matplotlib.pyplot as plt # Loading the dataset with the average yearly temperatures in Boston and Seattle url = 'https://staging-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 e Altura
Um objeto Series
contendo as temperaturas médias anuais em Seattle foi passado para a função hist()
. Por padrão, os dados são divididos em 10 intervalos iguais, variando do valor mínimo ao máximo. No entanto, apenas 9 intervalos são visíveis porque o segundo intervalo não contém pontos de dados.
A altura de cada intervalo, por padrão, é igual à frequência dos valores nesse intervalo (número de vezes que ocorrem).
Número de Intervalos
Outro parâmetro importante, porém opcional, é bins
, que pode receber tanto o número de intervalos (inteiro), quanto uma sequência de números especificando as bordas dos intervalos ou uma string. Na maioria das vezes, informar o número de intervalos é suficiente.
Existem vários métodos para determinar a largura dos intervalos do histograma. Neste exemplo, será utilizada a fórmula de Sturges, que calcula o número ideal de intervalos com base no tamanho da amostra:
Aqui, n
é o tamanho do array de dados.
Você pode explorar métodos adicionais para cálculo de bins aqui.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://staging-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()
O número de linhas no DataFrame
é 26 (o tamanho da Series
), portanto o número resultante de bins é 5.
Aproximação da Densidade de Probabilidade
Para visualizar uma aproximação da densidade de probabilidade, defina o parâmetro density
como True
na função hist
.
Agora, a altura de cada barra é calculada usando:
onde:
- o número total de valores no conjunto de dados;
- o número de valores na barra;
- largura da barra.
Isso garante que a área total sob o histograma seja 1, o que corresponde à principal propriedade de uma função densidade de probabilidade (PDF).
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://staging-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()
Isso fornece uma aproximação da função densidade de probabilidade para os dados de temperatura.
Se desejar explorar mais sobre os parâmetros do hist()
, consulte a documentação do hist()
.
Swipe to start coding
Criação de uma aproximação de uma função densidade de probabilidade utilizando uma amostra da distribuição normal padrão:
- Utilizar a função correta para criar um histograma.
- Utilizar
normal_sample
como os dados para o histograma. - Especificar o número de bins como segundo argumento utilizando a fórmula de Sturges.
- Tornar o histograma uma aproximação de uma função densidade de probabilidade especificando corretamente o argumento mais à direita.
Solução
Obrigado pelo seu feedback!