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
π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
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 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
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.170Bibliografia 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()).
- 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/
- 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ówBibliografia i dalsza literatura naukowa (APA 7)
- 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
- 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
- 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}}