Przejdź do treści

#004 Wykres gęstości (density plot)

  • Wykresy
  • 3 min read

Wykres gęstości wykorzystuje się do zaprezentowania rozkładu zmiennej numerycznej. Jest bardzo zbliżony do histogramu.

Wykorzystuje oszacowanie gęstości jądra, aby pokazać funkcję gęstości prawdopodobieństwa zmiennej. Głównie polega to na przedstawieniu bardziej płynnego rozkłady poprzez wygładzenie szumu. Dlatego możemy myśleć, że wykres gęstości to wygładzona wersja histogramu. Piki wykresu gęstości pomagają wyświetlić, gdzie wartości są skoncentrowane w przedziale.

Wykresy gęstości służą do badania rozkładu jednej lub kilku zmiennych. Sprawdzanie rozkładu zmiennych jeden po drugim jest prawdopodobnie pierwszym zadaniem, które powinieneś zrobić, gdy otrzymasz nowy zestaw danych. Dostarcza dużą ilość informacji. Istnieje kilka kształtów dystrybucji, oto ilustracja 6 najczęstszych:

Główną zaletą wykresów gęstości w porównaniu z histogramami jest to, że lepiej określają kształt rozkładu, ponieważ nie wpływa na nie liczba używanych pojemników (każdy słupek użyty w typowym histogramie). Histogram składający się tylko z 4 przedziałów nie dałby wystarczająco wyraźnego kształtu dystrybucji, tak jak zrobiłby to histogram 20-bin. Jednak w przypadku wykresów gęstości nie stanowi to problemu.

Warto również pobawić się argumentem odpowiadającym za wygładzenie (bandwith) by dokładniej zgłębić rozkład danych.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_csv('../data/pokemon.csv') #https://www.kaggle.com/rounakbanik/pokemon#pokemon.csv

f, axs = plt.subplots(3,2,figsize=(15,10))

i = 1
for bw in [0.5,1,2,5,10,20]:
    plt.subplot(3, 2, i)
    ax = sns.kdeplot(df['sp_attack'], shade=True, bw=bw, color = 'red').set_title(f'parametr bandwith:{bw}')
    i = i+1

I pamiętajcie, że jak najbardziej można porównać rozkłady zmiennych – jednak nie starajcie się umieścić więcej niż 3 na jednym rysunku 🙂

sns.kdeplot(df['hp'], shade=True, bw=5, color = 'gray')
sns.kdeplot(df['sp_attack'], shade=True, bw=5, color = 'red').set_title('Porównanie rozkładów');

Przypomnienie o dystrybuancie

Mówiąc o gęstości warto przypomnieć sobie czym jest dystrybuanta:

Brzmi skomplikowanie. A jest to prostsze niż się wydaje, bo dystrybuanta to po prostu skumulowany wykres gęstości.

sns.kdeplot(df['hp'], shade=True, bw=5, color='gray', cumulative=True)
sns.kdeplot(df['sp_attack'], shade=True, bw=5, color = 'red', cumulative=True).set_title('Dystrybuanta');

pozdrawiam Was serdecznie,

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Spodobało Ci się? Udostępnij ten post w social mediach! ❤️❤️❤️