Analiza jednowymiarowa
Wykresy rozkładu, histogramy, wykresy pudełkowe i wykresy liczności do analizy pojedynczych cech.
Analiza jednowymiarowa to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Czym jest analiza jednowymiarowa
Analiza jednowymiarowa bada jedną zmienną naraz, aby zrozumieć jej rozkład: tendencję centralną, rozproszenie, kształt i nietypowe wartości.
Wybór odpowiedniego wykresu zależy od typu zmiennej:
- Liczbowa → histogram, KDE, wykres pudełkowy, wykres skrzypcowy
- Kategoryczna → wykres zliczeń (wykres słupkowy częstości)
Konfigurowanie bibliotek do tworzenia wykresów
Używamy bibliotek Matplotlib (plt) i Seaborn (sns). Seaborn bazuje na Matplotlib i oferuje lepsze wartości domyślne dla wykresów statystycznych.
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
sns.set_theme(style="whitegrid")
df = pd.read_csv("data.csv")Histogramy za pomocą plt.hist
Histogram dzieli wartości liczbowe na przedziały i zlicza, ile wartości przypada na każdy z nich. Pokazuje ogólny kształt rozkładu.
Argument bins określa szczegółowość — zbyt mała liczba przedziałów ukrywa strukturę, a zbyt duża wprowadza szum.
plt.hist(df["age"], bins=30, edgecolor="black")
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age Distribution")
plt.show()Wykresy KDE — wygładzona gęstość
Estymator gęstości jądrowej (sns.kdeplot) rysuje gładką krzywą przybliżającą rozkład, która może być łatwiejsza do odczytania niż poszarpane słupki histogramu.
Oba podejścia można połączyć za pomocą sns.histplot(..., kde=True), nakładając gładką krzywą na słupki.
sns.kdeplot(df["age"], fill=True)
plt.show()
sns.histplot(df["age"], bins=30, kde=True)
plt.show()Wykrywanie skośności
Skośność mierzy asymetrię. Długi ogon po prawej stronie oznacza skośność prawostronną (dodatnią), a długi ogon po lewej stronie — skośność lewostronną (ujemną).
Dochody, ceny i liczności zwykle mają rozkład prawostronnie skośny. Skośność można zmierzyć za pomocą df[col].skew() — wartości znacznie różniące się od 0 wskazują na skośność.
print(df["income"].skew()) # e.g. 2.3 -> strong right skew
sns.histplot(df["income"], bins=40, kde=True)
plt.show()Wykrywanie dwumodalności
Rozkład dwumodalny ma dwa wierzchołki, co często oznacza, że połączono w nim dwie odrębne grupy (np. dwa typy produktów w jednej kolumnie z cenami).
Wykresy KDE wyraźnie pokazują dwumodalność — należy szukać dwóch wzniesień. Może to wskazywać, że za podział odpowiada ukryta zmienna kategoryczna.
sns.kdeplot(df["price"], fill=True)
plt.title("Two peaks suggest two subpopulations")
plt.show()Wykresy pudełkowe za pomocą sns.boxplot
Wykres pudełkowy pokazuje medianę (linia pośrodku), rozstęp międzykwartylowy (IQR, pudełko) oraz wąsy sięgające około 1,5 × IQR. Punkty poza wąsami są oznaczane jako wartości odstające.
sns.boxplot(x=df["income"])
plt.title("Income — box plot")
plt.show()Wartości odstające i reguła IQR
Wykres pudełkowy korzysta z reguły IQR: punkt jest wartością odstającą, jeśli leży poniżej Q1 - 1.5*IQR lub powyżej Q3 + 1.5*IQR.
Granice można obliczyć samodzielnie, aby odfiltrować wartości skrajne lub ograniczyć ich zakres.
q1 = df["income"].quantile(0.25)
q3 = df["income"].quantile(0.75)
iqr = q3 - q1
low, high = q1 - 1.5*iqr, q3 + 1.5*iqr
outliers = df[(df["income"] < low) | (df["income"] > high)]
print(len(outliers), "outliers")Wykresy skrzypcowe za pomocą sns.violinplot
Wykres skrzypcowy łączy wykres pudełkowy z lustrzanym odbiciem wykresu KDE. Szerokość na każdej wysokości pokazuje gęstość, dzięki czemu jednocześnie widać kształt i statystyki podsumowujące.
Wykresy skrzypcowe świetnie pokazują skośność lub dwumodalność, które zwykły wykres pudełkowy mógłby ukryć.
sns.violinplot(x=df["age"])
plt.title("Age — violin plot")
plt.show()Wykresy zliczeń dla zmiennych kategorycznych
W przypadku kolumn kategorycznych należy użyć sns.countplot — wykresu słupkowego częstości kategorii. Jest to wizualna forma wyniku value_counts().
Aby ułatwić odczyt, można uporządkować słupki według częstości za pomocą argumentu order.
order = df["city"].value_counts().index
sns.countplot(y="city", data=df, order=order)
plt.title("Records per city")
plt.show()Wybór odpowiedniego wykresu jednowymiarowego
Krótki przewodnik wyboru:
- Kształt kolumny liczbowej → histogram lub KDE
- Wartości odstające i kwartyle → wykres pudełkowy
- Kształt i podsumowanie jednocześnie → wykres skrzypcowy
- Częstości kategorii → wykres zliczeń
Szybkie sprawdzenie: wybór wykresu
Chcą Państwo zobaczyć medianę, kwartyle i wartości odstające dla jednej kolumny liczbowej.
Podsumowanie: analiza jednowymiarowa
Nauczyli się Państwo analizować jedną zmienną naraz:
plt.histisns.kdeplotdo badania kształtu rozkładu.skew()do pomiaru asymetrii; wzniesienia na wykresie KDE do wykrywania dwumodalnościsns.boxploti reguła IQR do wykrywania wartości odstającychsns.violinplotdo jednoczesnego przedstawiania kształtu i statystyk podsumowującychsns.countplotdo badania częstości kategorii
W następnym kroku przyjrzymy się zależnościom między dwiema lub większą liczbą zmiennych.
Często zadawane pytania
Czy lekcja „Analiza jednowymiarowa” jest bezpłatna?
Tak — pełny tekst „Analiza jednowymiarowa” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Analiza jednowymiarowa”?
Wykresy rozkładu, histogramy, wykresy pudełkowe i wykresy liczności do analizy pojedynczych cech. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Analiza jednowymiarowa”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Przepływ EDA i profilowanie danych
- Analiza jednowymiarowa
- Analiza dwu- i wielowymiarowa
- Analiza rozkładu cech i zmiennej docelowej