Słownik metodologiczny · Modele SEM

Model bifactor – czynnik ogólny i czynniki specyficzne w jednym modelu

W modelu bifactor każda pozycja ładuje czynnik ogólny i czynnik swojej podskali. Pokazujemy, czym różni się od modelu drugiego rzędu, jak go oszacować w lavaan i jak opisać wynik.

Strona główna / Słownik / Model bifactor
W skrócie: Model bifactor zakłada, że każda pozycja ładuje nieskorelowane czynniki: ogólny i specyficzny dla swojej podskali. Pozwala sprawdzić, ile wariancji niesie czynnik ogólny, a ile zostaje podskalom. Lepsze dopasowanie niż w modelu drugiego rzędu nie wystarczy jako argument, bo model ma więcej parametrów.

Co to jest model bifactor?

Model bifactor (ang. bifactor model, model dwuczynnikowy) to model pomiaru, w którym każda pozycja ładuje jednocześnie czynnik ogólny, wspólny dla całego narzędzia, i jeden czynnik specyficzny swojej podskali. Czynniki są zwykle nieskorelowane, więc czynnik specyficzny opisuje tylko to, co zostaje po odjęciu czynnika ogólnego. Reise (2012) pokazuje, że model wrócił do psychometrii jako sposób oceny, czy narzędzie wielowymiarowe da się traktować jak jednowymiarowe.

Bifactor a model drugiego rzędu

W modelu drugiego rzędu czynnik ogólny działa na pozycje tylko przez podskale. W modelu bifactor działa na nie bezpośrednio, obok podskal. Chen i in. (2006) na danych o jakości życia stwierdzili lepsze dopasowanie modelu bifactor i łatwiejszą interpretację związków czynników specyficznych ze zmiennymi zewnętrznymi. W lavaan model bifactor to zwykła CFA z opcją orthogonal = TRUE.

Przykład

Skala zaangażowania w naukę ma 12 pozycji w trzech podskalach: energia, oddanie i pochłonięcie (N = 500, dane symulowane). Model bifactor dopasował się nieco lepiej niż model drugiego rzędu: χ²(42) = 44.75, CFI = .999, RMSEA = .011 wobec χ²(51) = 58.09, CFI = .997, RMSEA = .017. BIC wskazał jednak prostszy model drugiego rzędu (14459.9 wobec 14502.5). Podskala pochłonięcia prawie zniknęła po wydzieleniu czynnika ogólnego: jej ładunki specyficzne wyniosły .16–.41, a ładunki czynnika ogólnego .64–.74. ECV wyniosło .77.

Jak opisać w pracy

Strukturę skali sprawdzono w modelu bifactor z ortogonalnym czynnikiem ogólnym i trzema czynnikami specyficznymi. Model był dobrze dopasowany, χ²(42) = 44.75, CFI = .999, RMSEA = .011, ale BIC wskazał model drugiego rzędu (14459.9 wobec 14502.5). Czynnik ogólny wyjaśniał 77% wspólnej wariancji (ECV = .77), a ładunki specyficzne podskali pochłonięcia wyniosły .16–.41.

Na co uważać

  • Lepsze dopasowanie nie przesądza o strukturze. Model bifactor ma więcej parametrów niż model drugiego rzędu, więc zwykle lepiej odtwarza dane. Porównaj też kryteria informacyjne (AIC i BIC) i sens teoretyczny.
  • Słaby czynnik specyficzny bywa problemem technicznym. Przy bardzo niskich ładunkach model może się nie zbiegać albo dawać ujemne wariancje.
  • Policz wskaźniki modelu. Rodriguez i in. (2016) opisują ωH, ECV i omegę hierarchiczną podskal. Jak wykorzystać je przy decyzji o wyniku ogólnym, pokazuje hasło podskala i wynik ogólny.

Model bifactor można też szacować eksploracyjnie, np. w ESEM. Oba podejścia porównuje wpis model bifactor i ESEM.

Przykład reprodukowalny

Model bifactor w lavaan

Kod szacuje model drugiego rzędu i model bifactor na tych samych danych, porównuje dopasowanie i pokazuje ładunki podskali pochłonięcia oraz ECV.

Model drugiego rzędu a model bifactor

Dane wejściowe: 12 pozycji skali zaangażowania w trzech podskalach, N = 500 (dane symulowane, set.seed(197)).

Co odczytać: χ², df, CFI, RMSEA i BIC obu modeli, standaryzowane ładunki czynnika ogólnego i czynnika pochłonięcia oraz ECV.

R
library(lavaan)
set.seed(197)
n <- 500
G <- rnorm(n); S <- matrix(rnorm(n * 3), n)
lg <- c(.60, .65, .55, .60,  .60, .55, .65, .60,  .70, .65, .60, .70)   # czynnik ogólny
ls <- c(.45, .40, .50, .40,  .40, .45, .35, .45,  .25, .20, .30, .25)   # specyficzne; trzeci słaby
X <- sapply(1:12, function(j) lg[j] * G + ls[j] * S[, ceiling(j / 4)] +
              rnorm(n, 0, sqrt(1 - lg[j]^2 - ls[j]^2)))
dane <- as.data.frame(X); names(dane) <- paste0("p", 1:12)
podskale <- 'energia =~ p1 + p2 + p3 + p4;  oddanie =~ p5 + p6 + p7 + p8
             pochl =~ p9 + p10 + p11 + p12'
m_2rz <- paste(podskale, '\n ogolny =~ energia + oddanie + pochl')
m_bif <- paste(podskale, '\n ogolny =~ p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10 + p11 + p12')
f_2rz <- cfa(m_2rz, data = dane, std.lv = TRUE)
f_bif <- cfa(m_bif, data = dane, std.lv = TRUE, orthogonal = TRUE)
round(rbind(drugi_rzad = fitMeasures(f_2rz, c("chisq", "df", "cfi", "rmsea", "bic")),
            bifactor   = fitMeasures(f_bif, c("chisq", "df", "cfi", "rmsea", "bic"))), 3)
L <- lavInspect(f_bif, "std")$lambda
round(L[L[, "pochl"] != 0, c("ogolny", "pochl")], 2)   # pozycje podskali „pochłonięcie”
round(c(ECV = sum(L[, "ogolny"]^2) / sum(L^2)), 2)
Wynik w R
            chisq df   cfi rmsea      bic
drugi_rzad 58.094 51 0.997 0.017 14459.88
bifactor   44.749 42 0.999 0.011 14502.47
    ogolny pochl
p9    0.74  0.16
p10   0.64  0.41
p11   0.65  0.23
p12   0.69  0.22
 ECV 
0.77 

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 z pakietem lavaan 0.7.2.

  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. lavaan: Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1–36. https://doi.org/10.18637/jss.v048.i02

Najczęstsze pytania

Czym model bifactor różni się od modelu drugiego rzędu?

W modelu drugiego rzędu czynnik ogólny wpływa na pozycje tylko przez podskale. W modelu bifactor wpływa na nie bezpośrednio, a czynniki specyficzne opisują wariancję, która zostaje po nim.

Dlaczego model bifactor się nie zbiega?

Często dlatego, że któryś czynnik specyficzny ma bardzo niskie ładunki albo za mało pozycji. Sprawdź ładunki i rozważ model z mniejszą liczbą czynników specyficznych.

Czy czynniki w modelu bifactor mogą być skorelowane?

W standardowej wersji nie: ortogonalność pozwala rozdzielić wariancję ogólną i specyficzną. Korelacje między czynnikami specyficznymi utrudniają identyfikację i interpretację modelu.

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. Chen, F. F., West, S., & Sousa, K. (2006). A comparison of bifactor and second-order models of quality of life. Multivariate Behavioral Research, 41(2), 189–225. https://doi.org/10.1207/s15327906mbr4102_5
  2. Reise, S. P. (2012). The rediscovery of bifactor measurement models. Multivariate Behavioral Research, 47(5), 667–696. https://doi.org/10.1080/00273171.2012.715555 ● Otwarty dostęp
  3. Rodriguez, A., Reise, S. P., & Haviland, M. G. (2016). Evaluating bifactor models: Calculating and interpreting statistical indices. Psychological Methods, 21(2), 137–150. https://doi.org/10.1037/met0000045

Cytowania BibTeX

@article{chen2006comparison, author={Chen, Fang Fang and West, Stephen and Sousa, Karen}, title={{A comparison of bifactor and second-order models of quality of life}}, journal={Multivariate Behavioral Research}, year={2006}, volume={41}, number={2}, pages={189--225}, doi={10.1207/s15327906mbr4102_5}}
@article{reise2012rediscovery, author={Reise, Steven P.}, title={{The rediscovery of bifactor measurement models}}, journal={Multivariate Behavioral Research}, year={2012}, volume={47}, number={5}, pages={667--696}, doi={10.1080/00273171.2012.715555}}
@article{rodriguez2016evaluating, author={Rodriguez, Anthony and Reise, Steven P. and Haviland, Mark G.}, title={{Evaluating bifactor models: Calculating and interpreting statistical indices}}, journal={Psychological Methods}, year={2016}, volume={21}, number={2}, pages={137--150}, doi={10.1037/met0000045}}
R