Co to jest skalowany chi-kwadrat Satorry–Bentlera?
Skalowany chi-kwadrat Satorry–Bentlera (ang. Satorra–Bentler scaled chi-square, SB χ²) to poprawiona statystyka dopasowania modelu SEM dla danych, które nie mają rozkładu normalnego. Zwykły χ² (CMIN) metody największej wiarygodności dzieli się przez współczynnik skalujący c, oszacowany z momentów czwartego rzędu, czyli z kurtozy danych: SB χ² = χ²ML/c. Liczba stopni swobody się nie zmienia. Przy danych normalnych c jest bliskie 1, a przy grubych ogonach rośnie powyżej 1. Curran i in. (1996) pokazali w symulacji CFA, że zwykły χ² rośnie wraz z nienormalnością, a skalowany pozostaje nieobciążony.
Jak go używać
W lavaan SB χ² daje estymator MLM. Estymator MLR zwraca skalowany test Yuana–Bentlera, asymptotycznie równoważny i dostępny także przy brakach danych. Odporne wersje mają też CFI, TLI i RMSEA.
Skalowanych χ² nie wolno po prostu odejmować. Satorra i Bentler (2001) podali skalowany test różnicy: współczynnik różnicy to cd = (df₀c₀ − df₁c₁)/(df₀ − df₁), a statystyka to różnica zwykłych χ² podzielona przez cd. Gdy cd wychodzi ujemne, użyj wersji z 2010 roku (Satorra i Bentler, 2010).
Przykład
W danych symulowanych 300 osób odpowiedziało na osiem pozycji dwóch czynników. Odpowiedzi miały grube ogony, a model był poprawny. Zwykły test odrzucał model: χ²(19) = 34.44, p = .016. Skalowany go nie odrzucał: SB χ²(19) = 23.93, p = .199, c = 1.439. Po nałożeniu równych ładunków w każdym czynniku skalowany test różnicy dał Δχ²(6) = 13.76, p = .032. Błędne odjęcie skalowanych χ² dało 16.14 (p = .013), a różnica zwykłych χ² aż 31.15 (p < .001).
Jak opisać w pracy
Na co uważać
- Poprawka nie naprawia złego modelu. Koryguje tylko wpływ nienormalności na test i błędy standardowe.
- Raportuj, którą statystykę podajesz. W tabeli dopasowania podaj SB χ², c i odporne CFI oraz RMSEA.
- Pozycje porządkowe z małą liczbą kategorii lepiej modelować estymatorem WLSMV (wpis Kategorialna CFA dla skal Likerta).
Skalowany chi-kwadrat Satorry–Bentlera w R
Kod szacuje model dwuczynnikowy i model z równymi ładunkami estymatorem MLM, pokazuje zwykły i skalowany χ² oraz porównuje poprawny skalowany test różnicy z błędnym odejmowaniem.
SB χ² i skalowany test różnicy w lavaan
R
suppressPackageStartupMessages(library(lavaan))
set.seed(3061)
n <- 300
f1 <- rnorm(n); f2 <- 0.4 * f1 + rnorm(n, 0, sqrt(1 - 0.4^2)) # dwa czynniki, r = .40
poz <- function(f, l) l * f + rnorm(n, 0, sqrt(1 - l^2))
dane <- data.frame(a1 = poz(f1, .7), a2 = poz(f1, .7), a3 = poz(f1, .6), a4 = poz(f1, .6),
b1 = poz(f2, .7), b2 = poz(f2, .7), b3 = poz(f2, .6), b4 = poz(f2, .6))
dane <- dane * sqrt(6 / rchisq(n, 8)) # grube ogony: wielowymiarowy rozkład t (df = 8)
m2 <- "A =~ a1 + a2 + a3 + a4
B =~ b1 + b2 + b3 + b4"
m1 <- "A =~ a*a1 + a*a2 + a*a3 + a*a4
B =~ b*b1 + b*b2 + b*b3 + b*b4" # zagnieżdżony: równe ładunki
fit2 <- cfa(m2, data = dane, estimator = "MLM")
fit1 <- cfa(m1, data = dane, estimator = "MLM")
round(fitMeasures(fit2, c("chisq", "df", "pvalue", "chisq.scaled", "pvalue.scaled",
"chisq.scaling.factor")), 3)
lavTestLRT(fit1, fit2, method = "satorra.bentler.2001") # skalowany test różnicy
bledna <- unname(fitMeasures(fit1, "chisq.scaled") - fitMeasures(fit2, "chisq.scaled")) # błędne odejmowanie
ml_diff <- unname(fitMeasures(fit1, "chisq") - fitMeasures(fit2, "chisq")) # różnica zwykłych χ² ML
round(c(bledna = bledna, p_bledna = pchisq(bledna, 6, lower.tail = FALSE),
ml_diff = ml_diff, p_ml = pchisq(ml_diff, 6, lower.tail = FALSE)), 3)Wynik w R
chisq df pvalue
34.442 19.000 0.016
chisq.scaled pvalue.scaled chisq.scaling.factor
23.933 0.199 1.439
Scaled Chi-Squared Difference Test (method = “satorra.bentler.2001”)
lavaan->lavTestLRT():
lavaan NOTE: The “Chisq” column contains standard test statistics, not the
robust test that should be reported per model. A robust difference test is
a function of two standard (not robust) statistics.
Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
fit2 19 6414.2 6477.2 34.442
fit1 25 6433.4 6474.1 65.596 13.76 0.098798 6 0.03243 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
bledna p_bledna ml_diff p_ml
16.136 0.013 31.154 0.000Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje cfa() i lavTestLRT() pakietu lavaan). 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/
- lavaan (wersja 0.7-2): 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
Co oznacza współczynnik skalujący większy niż 1?
Że dane mają grubsze ogony niż rozkład normalny i zwykły χ² jest zawyżony. W przykładzie c = 1.439, więc skalowany χ² był o około 30% mniejszy od zwykłego.
Czym estymator MLM różni się od MLR?
MLM daje skalowany χ² Satorry–Bentlera i wymaga pełnych danych. MLR daje asymptotycznie równoważny test Yuana–Bentlera i działa także z brakami danych (FIML).
Jak policzyć skalowany test różnicy Satorry–Bentlera w R?
Dopasuj oba modele z estimator = "MLM" i wywołaj lavTestLRT(m_ograniczony, m_pelny, method = "satorra.bentler.2001"). Gdy wynik jest ujemny, użyj method = "satorra.bentler.2010".
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Kategorialna CFA: WLSMV w lavaan
Kiedy pozycje Likerta są porządkowe, jak czytać progi, ML, MLR i WLSMV na tych samych danych, indeksy robust, rzadkie kategorie i opis APA.
Czytaj →PoradnikCB-SEM w R (lavaan)
Kompletny przykład w lavaan 0.7 na danych do pobrania: CFA z MLR i FIML, dopasowanie, omega i AVE, efekt pośredni z bootstrapem i tabela APA.
Czytaj →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)
- Curran, P. J., West, S. G., & Finch, J. F. (1996). The robustness of test statistics to nonnormality and specification error in confirmatory factor analysis. Psychological Methods, 1(1), 16–29. https://doi.org/10.1037/1082-989x.1.1.16
- Satorra, A., & Bentler, P. M. (2001). A scaled difference chi-square test statistic for moment structure analysis. Psychometrika, 66(4), 507–514. https://doi.org/10.1007/bf02296192
- Satorra, A., & Bentler, P. M. (2010). Ensuring positiveness of the scaled difference chi-square test statistic. Psychometrika, 75(2), 243–248. https://doi.org/10.1007/s11336-009-9135-y ● Otwarty dostęp: pełny tekst
Cytowania BibTeX
@article{curran1996robustness, author={Curran, Patrick J. and West, Stephen G. and Finch, John F.}, title={{The robustness of test statistics to nonnormality and specification error in confirmatory factor analysis}}, journal={Psychological Methods}, year={1996}, volume={1}, number={1}, pages={16--29}, doi={10.1037/1082-989x.1.1.16}}@article{satorra2001scaled, author={Satorra, Albert and Bentler, Peter M.}, title={{A scaled difference chi-square test statistic for moment structure analysis}}, journal={Psychometrika}, year={2001}, volume={66}, number={4}, pages={507--514}, doi={10.1007/bf02296192}}@article{satorra2010ensuring, author={Satorra, Albert and Bentler, Peter M.}, title={{Ensuring positiveness of the scaled difference chi-square test statistic}}, journal={Psychometrika}, year={2010}, volume={75}, number={2}, pages={243--248}, doi={10.1007/s11336-009-9135-y}}