**Analiza Zmiennych Kategorialnych i Brakujących Danych

Na dzisiejszej lekcji skupimy się na analizie zmiennych kategorialnych, czyli tych, które reprezentują kategorie lub grupy danych. Poznamy również techniki radzenia sobie z brakującymi danymi, co jest kluczowym elementem w przygotowaniu danych do dalszej analizy.

Learning Objectives

  • Zrozumienie definicji i typów zmiennych kategorialnych.
  • Nauczenie się metod wizualizacji zmiennych kategorialnych (wykresy słupkowe, kołowe).
  • Identyfikacja brakujących danych i zrozumienie ich wpływu na analizę.
  • Poznanie i zastosowanie podstawowych technik uzupełniania brakujących danych.

Lesson Content

Wprowadzenie do Zmiennych Kategorialnych

Zmienne kategorialne reprezentują dane, które można podzielić na kategorie lub grupy. Przykładami są: płeć (mężczyzna, kobieta), wykształcenie (podstawowe, średnie, wyższe), kolor oczu (niebieski, brązowy, zielony).

Rozróżniamy dwa główne typy zmiennych kategorialnych:

  • Nominalne: Kategorie bez naturalnego porządku (np. kolor oczu).
  • Porządkowe: Kategorie z logicznym porządkiem (np. wykształcenie).

Wizualizacja Zmiennych Kategorialnych

Wizualizacja jest kluczowa do zrozumienia rozkładu zmiennych kategorialnych. Najpopularniejsze metody to:

  • Wykresy słupkowe (Bar Charts): Idealne do pokazania liczby wystąpień każdej kategorii. Wykres słupkowy można łatwo utworzyć w Pythonie przy użyciu biblioteki matplotlib lub seaborn.
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

# Przykładowe dane (np. częstotliwość występowania koloru oczu)
data = {'Kolor_oczu': ['Niebieski', 'Brązowy', 'Zielony', 'Szary'], 'Liczba': [50, 75, 25, 10]}
df = pd.DataFrame(data)

# Wykres słupkowy
plt.figure(figsize=(8, 6))
sns.barplot(x='Kolor_oczu', y='Liczba', data=df)
plt.title('Rozkład Koloru Oczu')
plt.xlabel('Kolor Oczu')
plt.ylabel('Liczba osób')
plt.show()
  • Wykresy kołowe (Pie Charts): Dobrze nadają się do pokazania proporcji kategorii w całości. Jednak, w przypadku wielu kategorii, wykres kołowy może być trudny do interpretacji.
import matplotlib.pyplot as plt
import pandas as pd

# Przykładowe dane (np. częstotliwość występowania koloru oczu)
data = {'Kolor_oczu': ['Niebieski', 'Brązowy', 'Zielony', 'Szary'], 'Liczba': [50, 75, 25, 10]}
df = pd.DataFrame(data)

# Wykres kołowy
plt.figure(figsize=(6, 6))
plt.pie(df['Liczba'], labels=df['Kolor_oczu'], autopct='%1.1f%%', startangle=140)
plt.title('Procentowy Rozkład Koloru Oczu')
plt.show()

Brakujące Dane: Identyfikacja i Znaczenie

Brakujące dane (missing data) występują wtedy, gdy w zbiorze danych brakuje wartości dla pewnych obserwacji. Mogą one prowadzić do błędnych wniosków i zakłócać analizę. Przyczyny brakujących danych mogą być różne: błędy podczas wprowadzania danych, brak odpowiedzi w ankietach, awaria czujników itp.

Identyfikacja brakujących danych jest pierwszym krokiem. Możemy to zrobić na wiele sposobów, np. używając metody isnull() w bibliotece pandas.

import pandas as pd

# Przykładowy DataFrame z brakującymi danymi
df = pd.DataFrame({'A': [1, 2, None, 4, 5], 'B': [None, 7, 8, 9, None]})

# Sprawdzenie brakujących danych
print(df.isnull())

# Suma brakujących wartości w każdej kolumnie
print(df.isnull().sum())

Techniki Uzupełniania Brakujących Danych

Istnieje wiele technik uzupełniania brakujących danych (imputacji). Wybór metody zależy od charakteru danych i celu analizy:

  • Uzupełnianie średnią/medianą/modą: Najprostsza metoda. Dla danych numerycznych używamy średniej lub mediany (jeśli dane mają dużo wartości odstających). Dla danych kategorialnych używamy mody (najczęstszej kategorii).
import pandas as pd
import numpy as np

# Przykładowy DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5], 'B': [np.nan, 7, 8, 9, np.nan], 'C': ['A', 'B', np.nan, 'A', 'B']})

# Uzupełnianie średnią (kolumna A)
df['A'] = df['A'].fillna(df['A'].mean())

# Uzupełnianie modą (kolumna C)
df['C'] = df['C'].fillna(df['C'].mode()[0])

print(df)
  • Uzupełnianie wartością stałą: Przydatne, gdy chcemy wyraźnie zaznaczyć brakujące dane (np. wartością -999 lub 'Brak danych').

  • Imputacja oparta na modelach: Bardziej zaawansowane metody, takie jak użycie regresji do przewidywania brakujących wartości na podstawie innych zmiennych. Używane, gdy mamy wiele zmiennych wpływających na brakującą zmienną.

Deep Dive

Explore advanced insights, examples, and bonus exercises to deepen understanding.

Rozszerzona Analiza Zmiennych Kategorialnych i Brakujących Danych

Witajcie! Dzisiaj zagłębimy się w temat zmiennych kategorialnych i brakujących danych, budując na tym, czego nauczyliśmy się na poprzednich zajęciach. Celem jest pogłębienie zrozumienia i nabycie bardziej zaawansowanych umiejętności w eksploracyjnej analizie danych (EDA).

Głębokie Zanurzenie (Deep Dive)

Oprócz podstawowych wykresów słupkowych i kołowych, istnieją bardziej zaawansowane techniki wizualizacji dla zmiennych kategorialnych. Przyjrzyjmy się dwóm:

  • Wykresy mozaikowe: Idealne do wizualizacji relacji między dwiema lub więcej zmiennymi kategorialnymi. Rozmiar każdego prostokąta reprezentuje kombinację kategorii, a kolor może wskazywać na dodatkową zmienną lub miarę. Pomyślmy o badaniu preferencji wyborczych w różnych grupach wiekowych – wykres mozaikowy może pokazać, które grupy wiekowe preferują konkretne partie polityczne.
  • Wykresy cieplne (Heatmaps) dla zmiennych kategorialnych: Jeżeli kategoryzujemy dane i mamy wiele kombinacji, heatmapy mogą być przydatne. Na przykład, analizując wyniki ankiet z pytaniami typu "Zgadzam się", "Raczej się zgadzam", "Neutralny", "Raczej się nie zgadzam", "Nie zgadzam się", możemy użyć heatmapy do wizualizacji odpowiedzi w zależności od pytania i grupy respondentów.

Brakujące dane: Pamiętajmy, że uzupełnianie brakujących danych to tylko część równania. Ważne jest również zrozumienie, dlaczego te dane brakuje. Czy jest to losowe braki (MCAR – Missing Completely at Random), braki zależne od innych zmiennych (MAR – Missing at Random) czy braki, które zależą od wartości brakujących (MNAR – Missing Not at Random)? Różne typy braków wymagają różnych podejść, czasem nawet bardziej zaawansowanych metod jak imputacja wielokrotna (multiple imputation).

Dodatkowe Ćwiczenia

Wypróbujmy kilka ćwiczeń, aby utrwalić zdobytą wiedzę:

  1. Ćwiczenie 1: Znajdź zestaw danych z publicznego źródła (np. Kaggle) i zidentyfikuj zmienne kategorialne. Utwórz wykresy słupkowe i kołowe dla wybranych zmiennych. Spróbuj też stworzyć wykres mozaikowy dla dwóch zmiennych kategorialnych. Jakie wnioski możesz wyciągnąć?
  2. Ćwiczenie 2: W tym samym zestawie danych zidentyfikuj i zanalizuj brakujące dane. Ustal, jakiego typu braki występują (jeśli to możliwe do oceny). Wypróbuj różne metody uzupełniania braków, takie jak imputacja średnią lub najczęstszą wartością. Jakie zmiany w wynikach EDA zauważasz po imputacji?

Realne Zastosowania

Umiejętności, które nabywamy, mają szerokie zastosowanie w różnych dziedzinach. Oto kilka przykładów:

  • Marketing: Analiza preferencji klientów na podstawie danych demograficznych (kategoria: wiek, płeć, region) i zachowań zakupowych (kategoria: rodzaj produktu, częstotliwość zakupu). Identyfikacja grup docelowych i dostosowanie kampanii reklamowych.
  • Medycyna: Analiza danych pacjentów (kategoria: płeć, historia chorób, styl życia) w celu identyfikacji czynników ryzyka chorób. Uzupełnianie brakujących danych w kartach pacjentów (np. wyniki badań).
  • Finanse: Analiza danych transakcyjnych (kategoria: rodzaj transakcji, region, pora dnia) do wykrywania oszustw. Uzupełnianie braków w informacjach o klientach.

Wyzwanie dla Ciebie

Spróbuj:

  • Zaimplementować prostą imputację wielokrotną (np. za pomocą biblioteki `mice` w R lub odpowiednika w Pythonie) dla brakujących danych w wybranym zestawie danych. Porównaj wyniki z prostszymi metodami imputacji.
  • Przeprowadzić analizę wrażliwości, aby sprawdzić, jak różne metody imputacji wpływają na wyniki analizy.

Dalsza Nauuka

Jeśli chcesz pogłębić swoją wiedzę, rozważ:

  • Zaawansowane techniki wizualizacji: Wizualizacje interaktywne (np. z użyciem bibliotek `Plotly` w Pythonie lub `Shiny` w R), wykresy geolokalizacyjne.
  • Zaawansowane metody imputacji: Imputacja k-NN, modelowanie bayesowskie.
  • Analiza danych z wykorzystaniem bibliotek: `pandas` i `seaborn` w Pythonie, `dplyr` i `ggplot2` w R.

Interactive Exercises

Ćwiczenie 1: Wizualizacja Zmiennej Kategorialnej

Masz zestaw danych o klientach sklepu internetowego, zawierający kolumnę 'Kraj_pochodzenia'. Narysuj wykres słupkowy pokazujący rozkład krajów pochodzenia klientów. Użyj bibliotek `pandas` i `matplotlib` lub `seaborn`.

Ćwiczenie 2: Identyfikacja Brakujących Danych

Wczytaj plik CSV (np. `dane_z_brakami.csv`) do DataFrame. Sprawdź i wyświetl, które kolumny mają brakujące dane, oraz ile brakujących wartości występuje w każdej kolumnie. Użyj metody `isnull()` i `sum()`.

Ćwiczenie 3: Uzupełnianie Brakujących Danych

Uzupełnij brakujące dane w kolumnach numerycznych DataFrame'a (np. użyj średniej), a w kolumnach kategorialnych (np. użyj mody). Następnie sprawdź, czy nadal istnieją brakujące dane (powinny być usunięte).

Knowledge Check

Question 1: Który z poniższych przykładów jest zmienną nominalną?

Question 2: Który wykres najlepiej nadaje się do wizualizacji rozkładu zmiennej kategorialnej?

Question 3: Która funkcja w Pandas służy do sprawdzenia występowania brakujących danych?

Question 4: Jak nazywa się proces zastępowania brakujących danych rzeczywistymi wartościami?

Question 5: Jaka technika jest najlepsza do uzupełniania brakujących danych w zmiennej kategorialnej?

Practical Application

Wyobraź sobie, że jesteś analitykiem danych w dużej firmie e-commerce. Otrzymujesz dane o zamówieniach, w których brakuje informacji o wieku klientów (brak danych w kolumnie 'Wiek'). Twoim zadaniem jest zbadanie, czy wiek wpływa na wartość zamówienia. Musisz najpierw zidentyfikować brakujące dane w kolumnie 'Wiek' i zdecydować, jak je uzupełnić, zanim przystąpisz do analizy.

Key Takeaways

Next Steps

Przygotuj się na następną lekcję, gdzie przejdziemy do eksploracji zmiennych numerycznych i analizy zależności między zmiennymi.

Your Progress is Being Saved!

We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.

Next Lesson (Day 5)