ML Atlas

01 · Podstawy · 4 min czytania · aktualizacja

Czym jest zmienna losowa i czym różni się rozkład dyskretny od ciągłego?

W skrócie

Zmienna losowa przypisuje liczbę wynikowi losowego zjawiska, a jej rozkład mówi, jak prawdopodobne są poszczególne wartości. To most między danymi a modelem.

Co to jest

Zmienna losowa to reguła przypisująca liczbę każdemu wynikowi losowego zjawiska: liczba orłów w dziesięciu rzutach, czas do awarii dysku, masa wylosowanego pingwina. Mimo nazwy nie jest ani „zmienną” w sensie programistycznym, ani sama w sobie „losowa” — to funkcja, a losowość pochodzi z tego, który wynik się zrealizuje. Rozkład zmiennej losowej mówi, jak prawdopodobne są jej poszczególne wartości.

Zmienne dzielą się na dwa główne typy. Dyskretne przyjmują wartości, które da się wyliczyć (0, 1, 2, …), a rozkład opisuje funkcja prawdopodobieństwa: P(X = k) dla każdego k. Ciągłe przyjmują dowolne wartości z przedziału, a rozkład opisuje gęstość f(x), z której prawdopodobieństwo dostaje się jako pole pod wykresem na danym przedziale.

W uczeniu maszynowym każda kolumna danych to próbka z jakiejś zmiennej losowej, a model to hipoteza o jej rozkładzie. Regresja liniowa zakłada (w wersji probabilistycznej), że błędy mają rozkład normalny. Regresja logistyczna — że etykieta ma rozkład Bernoulliego z prawdopodobieństwem zależnym od cech. Model językowy przewiduje rozkład nad słownikiem.

Mechanizm — dlaczego tak działa

Zmienna losowa robi jedną ważną rzecz: zamienia zdarzenia na liczby, a na liczbach można liczyć średnie, wariancje i odległości. „Pasażer przeżył” staje się wartością 1, „nie przeżył” — 0. Od tej chwili średnia tej zmiennej to odsetek ocalałych, a pytania o zdarzenia stają się pytaniami o rozkład.

Najogólniejszym opisem rozkładu jest dystrybuanta F(x) = P(X ≤ x), działająca jednakowo dla zmiennych dyskretnych i ciągłych. Rośnie od 0 do 1; dla zmiennej dyskretnej skacze w punktach, które mają dodatnie prawdopodobieństwo, dla ciągłej rośnie płynnie. Kwantyle (np. mediana, 95. percentyl) to po prostu odwrócona dystrybuanta.

Gęstość wymaga ostrożności. f(x) nie jest prawdopodobieństwem — może być większa od 1, jeśli rozkład jest bardzo wąski. Prawdopodobieństwo dowolnej pojedynczej wartości zmiennej ciągłej wynosi 0; sensowne pytania dotyczą przedziałów. Gęstość mówi, gdzie wartości są „stłoczone”.

Kilka rozkładów pojawia się tak często, że mają nazwy, bo wynikają z prostych mechanizmów. Bernoulli — jedna próba „tak/nie”. Dwumianowy — liczba sukcesów w n niezależnych próbach. Poissona — liczba rzadkich zdarzeń w ustalonym czasie. Normalny — suma wielu drobnych, niezależnych wpływów. Wykładniczy — czas oczekiwania na zdarzenie, które może nastąpić w każdej chwili z tą samą szansą. Wybór rozkładu to założenie o mechanizmie, który wygenerował dane.

Zastrzeżenie praktyczne: podział na dyskretne i ciągłe jest cechą modelu, nie pomiaru. Każdy zapis w komputerze ma skończoną precyzję, więc „ciągłe” dane są w praktyce zaokrąglone. Zwykle to bez znaczenia, ale gdy zaokrąglenie jest grube, pojawiają się sztuczne „stosy” identycznych wartości, które mogą zmylić metody zakładające ciągłość.

Na przykładzie

W zbiorze Titanic zdefiniujmy zmienną X = liczba członków rodziny na pokładzie (rodzeństwo lub małżonek plus rodzice lub dzieci). To zmienna dyskretna. Jej rozkład empiryczny wśród 891 pasażerów: P(X = 0) = 0,603, P(X = 1) = 0,181, P(X = 2) = 0,115, a P(X ≥ 4) = 0,070. Dystrybuanta w punkcie 2 wynosi 0,898 — prawie 90% podróżowało z co najwyżej dwojgiem bliskich. Mediana to 0, ale średnia 0,905, bo długi prawy ogon (do 10 osób) ciągnie średnią w górę. Zmienna „przeżył” to Bernoulli z p = 0,384.

Masa ciała w zbiorze pingwinów (342 ptaki z pomiarem) jest zmienną ciągłą o średniej 4202 g. Prawdopodobieństwo przedziału ma sens: masa od 3500 do 4500 g dotyczy 45,6% ptaków. Tymczasem w danych każda masa jest wielokrotnością 25 g i występują tylko 94 różne wartości; dokładnie 4000 g waży 1,5% ptaków. To ilustracja tezy, że „ciągłość” jest własnością modelu, a nie zapisanych liczb.

Dane: Titanic Palmer Penguins (pingwiny z Antarktydy)

W praktyce

  • scipy.stats zawiera dziesiątki rozkładów (norm, binom, poisson, expon) z metodami pmf/pdf, cdf, ppf (kwantyl) i rvs (losowanie).
  • W pandas rozkład empiryczny zmiennej dyskretnej to s.value_counts(normalize=True).sort_index(), a dystrybuanta — jego .cumsum().
  • Do oglądania rozkładu ciągłego używaj histogramu z sensowną liczbą przedziałów albo estymatora jądrowego (scipy.stats.gaussian_kde, seaborn.kdeplot).
  • W PyTorch rozkłady są w torch.distributions (np. Normal, Categorical) z metodą log_prob, używaną do budowy funkcji straty.
  • Typowy błąd: traktowanie gęstości jak prawdopodobieństwa i dziwienie się, że wychodzi więcej niż 1.

Najczęstsze pytania

Czym różni się rozkład empiryczny od teoretycznego?
Empiryczny to częstości policzone z próby — dokładnie to, co widzisz w danych. Teoretyczny to model (np. rozkład normalny o danych parametrach), który zakładamy, że wygenerował dane. Empiryczny zbliża się do teoretycznego wraz ze wzrostem próby, jeśli model jest trafny.
Czy cecha typu „liczba dzieci” jest ciągła czy dyskretna?
Dyskretna, bo przyjmuje tylko wartości całkowite. W wielu modelach traktuje się ją jednak jak liczbową i to zwykle działa; problemy pojawiają się przy bardzo małej liczbie różnych wartości albo przy modelowaniu samych liczników, gdzie lepszy bywa rozkład Poissona.
Do czego w ML potrzebna jest znajomość rozkładów?
Do wyboru funkcji straty (błąd średniokwadratowy odpowiada rozkładowi normalnemu, entropia krzyżowa — Bernoulliemu lub kategorycznemu), do wykrywania anomalii, do symulacji i do rozumienia, kiedy założenia modelu są złamane.

Źródła

  • Blitzstein, Hwang „Introduction to Probability”, 2nd ed., CRC Press, 2019, rozdz. 3 i 5.
  • Wasserman „All of Statistics”, Springer, 2004, rozdz. 2 (Random Variables).
  • Murphy „Probabilistic Machine Learning: An Introduction”, MIT Press, 2022, rozdz. 2.
  • Goodfellow, Bengio, Courville „Deep Learning”, MIT Press, 2016, rozdz. 3.2–3.3 i 3.9.
  • Dokumentacja SciPy: Statistical functions (scipy.stats), https://docs.scipy.org/doc/scipy/reference/stats.html

Zobacz też