0Pricing
Learn AI with Python · Lekcja

Korelacja i kowariancja

Korelacja Pearsona i Spearmana, macierz kowariancji oraz interpretowanie korelacji w kontekście ML.

Korelacja i kowariancja to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 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.

Pomiar zależności

Kowariancja i korelacja określają ilościowo, jak dwie zmienne zmieniają się wspólnie. Stanowią podstawę wyboru cech, teorii portfelowej i analizy eksploracyjnej.

Kowariancja

Kowariancja jest dodatnia, gdy zmienne rosną razem, a ujemna, gdy jedna rośnie, podczas gdy druga maleje. Jej wartość zależy od jednostek, dlatego surowa kowariancja jest trudna do interpretacji.

import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 6])
print(np.cov(x, y, ddof=1))   # 2x2 covariance matrix

Macierz kowariancji

np.cov zwraca macierz: na przekątnej znajdują się wariancje, a poza przekątną — kowariancje między parami zmiennych. Można ją uogólnić na wiele zmiennych; leży też u podstaw PCA.

data = np.array([[1, 2, 3], [2, 4, 5], [3, 6, 7]], dtype=float)
print(np.cov(data.T))   # 3x3 covariance matrix of the columns

Korelacja: skalowana kowariancja

Korelacja Pearsona skaluje kowariancję do zakresu od -1 do 1, dzieląc ją przez iloczyn odchyleń standardowych, dzięki czemu jest niezależna od jednostek i umożliwia porównania.

print(np.corrcoef(x, y))   # 2x2 correlation matrix, diagonal is 1

Odczytywanie korelacji

+1 oznacza doskonałą dodatnią zależność liniową, -1 — doskonałą ujemną, a 0 — brak zależności LINIOWEJ. Wartości bliskie 0 mogą nadal ukrywać silny wzorzec nieliniowy.

Korelacja w pandas

df.corr() oblicza korelacje parami dla wszystkich kolumn numerycznych jednocześnie i jest najszybszym sposobem przeglądania zbioru danych pod kątem zależności.

import pandas as pd
df = pd.DataFrame({"a": [1,2,3,4,5], "b": [2,4,5,4,6], "c": [9,7,6,5,3]})
print(df.corr())   # Pearson by default

Pearson czy Spearman

Pearson mierzy zależność LINIOWĄ na surowych wartościach. Spearman działa na RANGACH, więc wykrywa dowolną zależność monotoniczną i jest odporny na wartości odstające.

from scipy import stats
x = np.array([1, 2, 3, 4, 100])
y = np.array([1, 2, 3, 4, 5])
print(stats.pearsonr(x, y).statistic)    # distorted by outlier
print(stats.spearmanr(x, y).statistic)   # 1.0 (perfectly monotonic)

Wybór metody

df.corr(method="spearman") przełącza pandas na korelację rangową. Należy preferować Spearmana w przypadku wartości odstających lub nieliniowych, lecz monotonicznych zależności; Pearsona należy stosować dla czystych danych o zależności liniowej.

print(df.corr(method="spearman"))

Korelacja NIE oznacza przyczynowości

Silna korelacja nie oznacza, że jedna zmienna powoduje drugą. Na obie zmienne może wpływać ukryty czynnik zakłócający. Należy zawsze zastanowić się, co jeszcze mogłoby wyjaśniać tę zależność.

Pozorna korelacja

Przy dostatecznie dużej liczbie zmiennych niektóre z nich będą skorelowane przez czysty przypadek. Sprzedaż lodów i liczba utonięć są skorelowane, ponieważ na obie te zmienne wpływa letni upał, a nie dlatego, że wpływają na siebie nawzajem. Do nieoczekiwanych korelacji należy podchodzić sceptycznie.

Wizualizacja za pomocą mapy cieplnej

Mapa cieplna korelacji uwydatnia wzorce. Pary silnie skorelowanych cech mogą być redundantne i można rozważyć ich usunięcie przed modelowaniem.

# import seaborn as sns
# sns.heatmap(df.corr(), annot=True, cmap="coolwarm")

Szybki test

Sprawdź swoją wiedzę na temat korelacji.

Podsumowanie

Narzędzia do analizy korelacji:

  • Kowariancja pokazuje kierunek, ale zależy od jednostek; np.cov zwraca macierz
  • Korelacja przeskalowuje wartości do zakresu -1..1: np.corrcoef, df.corr()
  • Pearson (liniowa) a Spearman (rangowa, odporna, monotoniczna)
  • Korelacja nie oznacza przyczynowości; należy uważać na czynniki zakłócające i pozorne zależności

Często zadawane pytania

Czy lekcja „Korelacja i kowariancja” jest bezpłatna?

Tak — pełny tekst „Korelacja i kowariancja” 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 „Korelacja i kowariancja”?

Korelacja Pearsona i Spearmana, macierz kowariancji oraz interpretowanie korelacji w kontekście ML. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Korelacja i kowariancja”?

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

  1. Statystyki opisowe i rozkłady
  2. Prawdopodobieństwo i twierdzenie Bayesa
  3. Testowanie hipotez
  4. Korelacja i kowariancja
← Powrót do Learn AI with Python