Słownik metodologiczny · Analizy wielowymiarowe

Analiza profili latentnych (LPA) – co to jest i jak wybrać liczbę profili?

LPA szuka w danych nieobserwowanych podgrup osób o podobnym układzie wyników. Wyjaśniamy model, kryteria wyboru liczby profili (BIC, BLRT, entropia) i różnicę wobec metody k-średnich na przykładzie profili wypalenia policzonym w R.

Strona główna / Słownik / Analiza profili latentnych
W skrócie: Analiza profili latentnych (LPA) to model mieszaniny, który wyodrębnia w próbie nieobserwowane podgrupy o różnych średnich zmiennych ciągłych i każdej osobie przypisuje prawdopodobieństwa przynależności. Liczbę profili wybieraj według BIC i BLRT, a entropię traktuj jako opis pewności klasyfikacji.

Co to jest analiza profili latentnych?

Analiza profili latentnych (ang. latent profile analysis, LPA) to model mieszaniny rozkładów, który zakłada, że próba składa się z kilku nieobserwowanych podgrup – profili, czyli kategorii zmiennej ukrytej – o różnych średnich zmiennych ciągłych. To odpowiednik analizy klas ukrytych (LCA) dla wyników skal zamiast odpowiedzi kategorialnych. W psychologii służy do wyodrębniania profili motywacji, wypalenia czy strategii radzenia sobie.

W odróżnieniu od metody k-średnich, opisanej w haśle analiza skupień, LPA jest modelem statystycznym: każdej osobie przypisuje prawdopodobieństwa przynależności do profili, a liczbę profili wybiera się formalnymi kryteriami.

Model i wybór liczby profili

f(y) = Σk πk · φ(y | μk, Σk)

πk to udział profilu k, μk – średnie wskaźników w profilu, a Σk – macierz kowariancji (w klasycznej LPA te same wariancje i zerowe kowariancje w każdym profilu). Parametry szacuje się metodą największej wiarygodności, a modele z 1, 2, 3… profilami porównuje według:

  • BIC – mniejszy znaczy lepszy (zob. AIC i BIC);
  • BLRT – bootstrapowego testu ilorazu wiarygodności modelu z k profilami wobec modelu z k − 1;
  • entropii – pewności przydziału osób do profili (0–1).

W symulacjach Nylunda i in. (2007) dla modeli klas ukrytych i innych modeli mieszanin BIC był najlepszym kryterium informacyjnym, a BLRT bardzo spójnie wskazywał liczbę klas.

Przykład

W badaniu (dane symulowane) 360 studentów wypełniło skale wyczerpania, cynizmu i poczucia nieskuteczności (0–6). W klasycznej LPA (model EEI w pakiecie mclust) BIC był najmniejszy przy trzech profilach: 2959.48 wobec 3089.14 dla dwóch i 2975.27 dla czterech. BLRT potwierdził przewagę trzech profili nad dwoma (p = .001), a czwarty profil nie poprawił dopasowania (p = .170). Profile to: niskie wypalenie (50.0%), wyczerpanie przy niskim cynizmie (36.4%) i wysokie wyniki we wszystkich skalach (13.6%); entropia wyniosła .895.

Jak zapisać w pracy

Analiza profili latentnych (mclust, model EEI) wskazała rozwiązanie z trzema profilami: miało ono najniższe BIC (2959.48), w teście BLRT trzy profile opisywały dane lepiej niż dwa (p = .001), a cztery nie lepiej niż trzy (p = .170); entropia wyniosła .895, a najmniejszy profil liczył 49 osób (13.6%).

Na co uważać

  • Liczba profili według entropii. Tein i in. (2013) pokazali, że entropia, podobnie jak AIC, słabo wskazuje liczbę klas; traktuj ją jako opis jakości klasyfikacji.
  • Słabo rozdzielone profile. Przy małej i średniej separacji klas żadna z badanych metod nie miała wystarczającej mocy, by wskazać ich właściwą liczbę (Tein i in., 2013).
  • Odwrócony znak BIC w mclust. Pakiet liczy BIC jako 2·logL − ν·ln(n), gdzie ν to liczba parametrów, i wybiera wartość największą (Scrucca i in., 2016). W tabeli stosuj konwencję „mniej = lepiej” i zaznacz to w nocie.
  • Profile jako naturalne typy ludzi. Profil opisuje układ danych w próbie; jego trafność sprawdź na zmiennych zewnętrznych i w replikacji. Pułapki, m.in. nadmiarowe profile przy skośnych rozkładach, omawiamy w poradniku o segmentacji respondentów.
Przykład reprodukowalny

Przykład w R

Kod dopasowuje klasyczną LPA (model EEI) z jednym do pięciu profili, przelicza BIC na konwencję „mniej = lepiej”, liczy entropię i wykonuje bootstrapowy test ilorazu wiarygodności (999 prób) dla trzech i czterech profili. Obliczenia trwają około minuty.

Analiza profili latentnych w pakiecie mclust

Dane wejściowe: wyniki 360 studentów w trzech skalach wypalenia, 0–6 (dane symulowane, set.seed(90)).

Co odczytać: BIC dla 1–5 profili, entropię, liczebności i średnie profili oraz LRTS i p testu BLRT.

R
suppressPackageStartupMessages(library(mclust))
# Dane symulowane: 360 studentów, trzy wskaźniki wypalenia akademickiego (0–6)
set.seed(90)
profil <- sample(1:3, 360, replace = TRUE, prob = c(0.50, 0.35, 0.15))
srednie <- rbind(c(2.0, 1.2, 1.8), c(4.2, 2.0, 2.4), c(4.8, 4.0, 3.8))
dane <- pmin(pmax(round(srednie[profil, ] + matrix(rnorm(360 * 3, 0, 0.7), 360, 3), 1), 0), 6)
colnames(dane) <- c("wyczerpanie", "cynizm", "nieskutecznosc")

lpa <- Mclust(dane, G = 1:5, modelNames = "EEI", verbose = FALSE)   # klasyczna LPA: równe wariancje, zerowe kowariancje
round(-lpa$BIC[, "EEI"], 2)                        # BIC w konwencji „mniej = lepiej” (mclust podaje −BIC)
z <- lpa$z                                         # prawdopodobieństwa przynależności
round(1 + sum(z * log(z), na.rm = TRUE) / (nrow(z) * log(ncol(z))), 3)   # entropia względna
tab <- table(lpa$classification)
rbind(n = tab, procent = round(100 * prop.table(tab), 1))              # liczebności profili
round(t(lpa$parameters$mean), 2)                                       # średnie profili

# BLRT: k − 1 vs k profili (mclustBootstrapLRT() w mclust 6.1.2 przerywa się błędem dla modelu EEI)
dopasuj <- function(y, g) Mclust(y, G = g, modelNames = "EEI", verbose = FALSE)
blrt <- function(y, k, B = 999) {
  m0 <- dopasuj(y, k - 1); lrts <- 2 * (dopasuj(y, k)$loglik - m0$loglik)
  boot <- replicate(B, { s <- sim(m0$modelName, m0$parameters, n = nrow(y))[, -1]
                         2 * (dopasuj(s, k)$loglik - dopasuj(s, k - 1)$loglik) })
  c(LRTS = lrts, p = (1 + sum(boot >= lrts)) / (B + 1))
}
set.seed(2026)
round(sapply(c(`3 vs 2` = 3, `4 vs 3` = 4), function(k) blrt(dane, k)), 3)
Wynik w R
      1       2       3       4       5 
3399.70 3089.14 2959.48 2975.27 2997.53 
[1] 0.895
           1   2     3
n       49.0 180 131.0
procent 13.6  50  36.4
     wyczerpanie cynizm nieskutecznosc
[1,]        4.67   3.94           3.84
[2,]        1.99   1.22           1.83
[3,]        4.18   2.09           2.40
      3 vs 2 4 vs 3
LRTS 153.210  7.755
p      0.001  0.170

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3. 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. mclust (wersja 6.1.2): Scrucca, L., Fraley, C., Murphy, T. B., & Raftery, A. E. (2023). Model-based clustering, classification, and density estimation using mclust in R. Chapman and Hall/CRC. https://doi.org/10.1201/9781003277965

Najczęstsze pytania

Co to jest analiza profili latentnych (LPA)?

To model mieszaniny rozkładów, który dzieli próbę na nieobserwowane podgrupy (profile) o różnych średnich zmiennych ciągłych, np. wyników skal. Każda osoba dostaje prawdopodobieństwo przynależności do każdego profilu.

Czym analiza profili latentnych różni się od analizy klas ukrytych (LCA)?

Logika jest ta sama – model mieszaniny z kategorialną zmienną ukrytą – ale LPA używa wskaźników ciągłych, np. wyników skal, a LCA kategorialnych, np. odpowiedzi tak/nie albo obecności objawów.

Ile osób potrzeba do analizy profili latentnych?

Nie ma jednej liczby. Moc wskazania właściwej liczby profili zależy od ich separacji, liczby wskaźników i liczebności próby; przy małej i średniej separacji żadna metoda nie miała wystarczającej mocy (Tein i in., 2013).

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. Nylund, K. L., Asparouhov, T., & Muthén, B. O. (2007). Deciding on the number of classes in latent class analysis and growth mixture modeling: A Monte Carlo simulation study. Structural Equation Modeling: A Multidisciplinary Journal, 14(4), 535–569. https://doi.org/10.1080/10705510701575396
  2. Scrucca, L., Fop, M., Murphy, T. B., & Raftery, A. E. (2016). mclust 5: Clustering, classification and density estimation using Gaussian finite mixture models. The R Journal, 8(1), 289–317. https://doi.org/10.32614/RJ-2016-021 ● Otwarty dostęp
  3. Tein, J.-Y., Coxe, S., & Cham, H. (2013). Statistical power to detect the correct number of classes in latent profile analysis. Structural Equation Modeling: A Multidisciplinary Journal, 20(4), 640–657. https://doi.org/10.1080/10705511.2013.824781 ● Otwarty dostęp: pełny tekst

Cytowania BibTeX

@article{nylund2007deciding, author={Nylund, Karen L. and Asparouhov, Tihomir and Muthén, Bengt O.}, title={{Deciding on the number of classes in latent class analysis and growth mixture modeling: A Monte Carlo simulation study}}, journal={Structural Equation Modeling: A Multidisciplinary Journal}, year={2007}, volume={14}, number={4}, pages={535--569}, doi={10.1080/10705510701575396}}
@article{scrucca2016mclust, author={Scrucca, Luca and Fop, Michael and Murphy, T. Brendan and Raftery, Adrian E.}, title={{mclust 5: Clustering, classification and density estimation using Gaussian finite mixture models}}, journal={The R Journal}, year={2016}, volume={8}, number={1}, pages={289--317}, doi={10.32614/rj-2016-021}}
@article{tein2013statistical, author={Tein, Jenn-Yun and Coxe, Stefany and Cham, Heining}, title={{Statistical power to detect the correct number of classes in latent profile analysis}}, journal={Structural Equation Modeling: A Multidisciplinary Journal}, year={2013}, volume={20}, number={4}, pages={640--657}, doi={10.1080/10705511.2013.824781}}
R