Słownik metodologiczny · Wielkość efektu

Lambda Goodmana–Kruskala – o ile lepiej przewidzisz kategorię?

Lambda Goodmana–Kruskala mówi, o ile spada liczba błędnych przewidywań kategorii jednej zmiennej nominalnej, gdy znamy drugą. Pokazujemy wzór, wersje asymetryczne, pułapkę λ = 0, przykład w R i opis do pracy.

Strona główna / Słownik / Lambda Goodmana–Kruskala
W skrócie: Lambda Goodmana–Kruskala (λ) to miara związku dwóch zmiennych nominalnych oparta na proporcjonalnej redukcji błędu: mówi, o ile względnie maleje liczba błędnych przewidywań kategorii jednej zmiennej, gdy znamy kategorię drugiej. Przyjmuje wartości od 0 do 1 i ma wersje asymetryczne.

Co to jest lambda Goodmana–Kruskala?

Lambda Goodmana–Kruskala (λ, ang. Goodman–Kruskal's lambda) to miara związku dwóch zmiennych na skali nominalnej, zapisanych w tabeli krzyżowej. Należy do miar proporcjonalnej redukcji błędu: mówi, o ile rzadziej mylimy się, przewidując kategorię zmiennej Y, gdy znamy kategorię zmiennej X. Goodman i Kruskal (1954) postulowali właśnie takie miary – o jasnym sensie operacyjnym, a nie wybierane z przyzwyczajenia.

Wzór i wersje asymetryczne

λ(Y|X) = (E1 − E2)/E1,

gdzie E1 to liczba błędów, gdy zawsze zgadujemy najczęstszą kategorię Y, a E2 – gdy w każdej kategorii X zgadujemy najczęstszą tam kategorię Y. Zakres: od 0 do 1. Miara jest asymetryczna: λ(Y|X) zwykle różni się od λ(X|Y), a wersja symetryczna łączy oba kierunki. Przybliżone błędy standardowe i przedziały ufności podali Goodman i Kruskal (1963). Dla zmiennych porządkowych lepsza jest gamma lub d Somersa.

Przykład

240 studentów czterech kierunków (dane symulowane) wskazało preferowany tryb nauki. Najczęściej wybierano tryb zdalny (99 osób), więc bez znajomości kierunku mylimy się 141 razy. Gdy w każdym kierunku zgadujemy jego najczęstszy tryb, błędów jest 113. λ(tryb|kierunek) = (141 − 113)/141 = .20, 95% CI [.10, .30]. W drugą stronę λ = .18, a wersja symetryczna .19. Dla porównania χ²(6) = 56.32, p < .001, V Craméra = .34.

Jak opisać w pracy

Kierunek studiów wiązał się z preferowanym trybem nauki, χ²(6) = 56.32, p < .001, V Craméra = .34. Znajomość kierunku zmniejszała liczbę błędnych przewidywań trybu o 20%, λ = .20, 95% CI [.10, .30].

Na co uważać

  • λ = 0 nie oznacza niezależności. Gdy wszędzie dominuje ta sama kategoria Y, lambda wynosi zero mimo różnic w rozkładach. Sprawdź test chi-kwadrat niezależności.
  • Kierunek. Napisz, która zmienna jest przewidywana.
  • Silnie dominująca kategoria. Przy bardzo nierównych rozkładach brzegowych lambda bywa bliska zera.

Tabelę i test policzysz w kalkulatorze tabeli 2×2 i r×c.

Przykład reprodukowalny

Lambda Goodmana–Kruskala w R

Kod symuluje kierunek studiów i preferowany tryb nauki, liczy błędy przewidywania bez predyktora i z nim, wyznacza λ ręcznie i z pakietu DescTools w obu kierunkach oraz zestawia ją z V Craméra i testem chi-kwadrat.

Lambda dla tabeli 4×3

Dane wejściowe: kierunek studiów (4 kategorie) i preferowany tryb nauki (3 kategorie) dla 240 osób (dane symulowane, set.seed(3631)).

Co odczytać: liczby błędów bez znajomości kierunku i z nią, λ liczone ręcznie, λ z 95% CI dla obu kierunków ("column": tryb przewidywany z kierunku), wersję symetryczną, V Craméra i wynik testu chi-kwadrat.

R
suppressPackageStartupMessages(library(DescTools))
set.seed(3631)
kier <- sample(c("psychologia", "ekonomia", "informatyka", "pedagogika"), 240,
               replace = TRUE, prob = c(.30, .25, .25, .20))
p <- list(psychologia = c(.25, .45, .30), ekonomia = c(.20, .30, .50),
          informatyka = c(.15, .15, .70), pedagogika = c(.40, .45, .15))
tryb <- sapply(kier, function(k) sample(c("stacjonarny", "hybrydowy", "zdalny"), 1, prob = p[[k]]))
tab <- table(kierunek = kier, tryb = tryb)          # wiersze: kierunek, kolumny: preferowany tryb nauki
tab
bledy_bez <- sum(tab) - max(colSums(tab))           # błędy, gdy zawsze zgadujemy najczęstszy tryb
bledy_z <- sum(tab) - sum(apply(tab, 1, max))       # błędy, gdy zgadujemy najczęstszy tryb w każdym kierunku
c(bez_X = bledy_bez, z_X = bledy_z, lambda = round((bledy_bez - bledy_z) / bledy_bez, 3))
round(Lambda(tab, direction = "row", conf.level = 0.95), 3)      # kierunek przewidywany z trybu
round(Lambda(tab, direction = "column", conf.level = 0.95), 3)   # tryb przewidywany z kierunku
round(c(lambda_sym = Lambda(tab, direction = "symmetric"), V = CramerV(tab)), 3)
chisq.test(tab)
Wynik w R
             tryb
kierunek      hybrydowy stacjonarny zdalny
  ekonomia           20          14     30
  informatyka        13           5     49
  pedagogika         21          18      4
  psychologia        27          23     16
  bez_X     z_X  lambda 
141.000 113.000   0.199 
lambda lwr.ci upr.ci 
 0.185  0.101  0.269 
lambda lwr.ci upr.ci 
 0.199  0.096  0.301 
lambda_sym          V 
     0.191      0.343 

	Pearson's Chi-squared test

data:  tab
X-squared = 56.321, df = 6, p-value = 2.507e-10

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet DescTools). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. DescTools (wersja 0.99.60): Signorell, A. (2025). DescTools: Tools for descriptive statistics (R package version 0.99.60) [Computer software]. https://doi.org/10.32614/CRAN.package.DescTools

Najczęstsze pytania

Dlaczego lambda wyszła 0, choć test chi-kwadrat jest istotny?

Lambda liczy tylko trafienia przy zgadywaniu najczęstszej kategorii. Jeśli w każdej kategorii zmiennej niezależnej dominuje ta sama kategoria zmiennej zależnej, znajomość predyktora nie zmienia przewidywania i λ = 0, mimo że rozkłady wyraźnie się różnią. Wtedy opisz związek V Craméra.

Którą lambdę podać: asymetryczną czy symetryczną?

Asymetryczną, gdy jedna zmienna jest wyraźnie przewidywana z drugiej, np. preferowany tryb nauki z kierunku studiów. Napisz wtedy, która zmienna jest zależna. Wersję symetryczną podaj, gdy żadnej zmiennej nie traktujesz jako zależnej.

Jak policzyć lambdę Goodmana–Kruskala w R?

W pakiecie DescTools: Lambda(tab, direction = "column", conf.level = 0.95) przewiduje kategorię kolumn z kategorii wierszy, direction = "row" – odwrotnie, a "symmetric" daje wersję symetryczną.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Goodman, L. A., & Kruskal, W. H. (1954). Measures of association for cross classifications. Journal of the American Statistical Association, 49(268), 732–764. https://doi.org/10.1080/01621459.1954.10501231
  2. Goodman, L. A., & Kruskal, W. H. (1963). Measures of association for cross classifications III: Approximate sampling theory. Journal of the American Statistical Association, 58(302), 310–364. https://doi.org/10.1080/01621459.1963.10500850

Cytowania BibTeX

@article{goodman1954measures, author={Goodman, Leo A. and Kruskal, William H.}, title={{Measures of association for cross classifications}}, journal={Journal of the American Statistical Association}, year={1954}, volume={49}, number={268}, pages={732--764}, doi={10.1080/01621459.1954.10501231}}
@article{goodman1963measures, author={Goodman, Leo A. and Kruskal, William H.}, title={{Measures of association for cross classifications III: Approximate sampling theory}}, journal={Journal of the American Statistical Association}, year={1963}, volume={58}, number={302}, pages={310--364}, doi={10.1080/01621459.1963.10500850}}
R