Kalkulator przedziału Monte Carlo dla efektu pośredniego
Czy efekt pośredni ab jest różny od zera?
Wpisz oszacowania ścieżek a i b z ich błędami standardowymi. Ułamki wpisuj z kropką albo z przecinkiem. Domyślne wartości to przykład omówiony niżej. Obliczenia wykonuje Twoja przeglądarka: wpisane liczby nie są nigdzie wysyłane ani zapisywane.
Kalkulator wymaga włączonej obsługi JavaScriptu. Wyniki dla wartości domyślnych znajdziesz w przykładzie poniżej.
Tu pojawi się histogram wylosowanych wartości ab.
Gotowy opis do pracy
Jak używać kalkulatora
Kalkulator przyda się, gdy masz już oszacowany model mediacji, ale nie masz surowych danych albo programu z bootstrapem. Tak bywa przy recenzji cudzego artykułu, przy ponownej analizie opublikowanych wyników i w modelach, w których bootstrap jest trudny. Potrzebujesz tylko czterech liczb, które podaje każdy program: dwóch współczynników i ich błędów standardowych.
- Ścieżka a to niestandaryzowany współczynnik regresji mediatora M na zmienną niezależną X. Ścieżka b to współczynnik M w regresji Y na M i X, czyli przy kontroli X. Ich iloczyn to efekt pośredni. Obie wartości i ich SE odczytasz z wydruku PROCESS, z dwóch zwykłych regresji albo z tabeli parametrów w lavaan.
- Kowariancja oszacowań a i b. Gdy ścieżki pochodzą z dwóch osobnych równań MNK, wynosi zero i tak zostaw to pole. W modelu SEM ze zmiennymi latentnymi może być różna od zera. Odczytasz ją wtedy z macierzy
vcov(fit)w lavaan. Jeśli znasz tylko korelację oszacowań r, wpisz r × SE(a) × SE(b). - Liczba losowań i ziarno. Domyślne 20 000 losowań wystarcza do opisu w pracy. Gdy granica przedziału leży tuż przy zerze, zwiększ ją do 100 000 lub więcej. Ziarno sprawia, że ten sam zestaw liczb daje zawsze ten sam przedział, więc wynik można odtworzyć.
Po kliknięciu „Policz” zobaczysz efekt pośredni, przedział Monte Carlo, wynik testu Sobela dla porównania i histogram wylosowanych iloczynów. Wykres możesz pobrać jako plik SVG. Jak dojść do ścieżek a i b od surowych danych, pokazuje poradnik analiza mediacji krok po kroku.
Wzory
Efekt pośredni w prostym modelu mediacji to iloczyn dwóch ścieżek:
Iloczyn dwóch zmiennych o rozkładzie normalnym sam nie ma rozkładu normalnego: jest skośny, i to tym bardziej, im mniejsze są ilorazy a/SE(a) i b/SE(b) (Aroian, 1947). Dlatego przedział ufności „oszacowanie ± 1.96 × SE” bywa tu źle wyważony. MacKinnon i in. (2004) pokazali w symulacjach, że takie przedziały są niezrównoważone, a dokładniejsze są metody, które uwzględniają rozkład iloczynu.
Przedział Monte Carlo omawiają Preacher i Selig (2012). Procedura ma trzy kroki:
- Wylosuj R par (a*, b*) z dwuwymiarowego rozkładu normalnego o średnich a i b, odchyleniach SE(a) i SE(b) oraz kowariancji cov(a, b).
- W każdej parze policz iloczyn a* × b*.
- Granice przedziału to percentyle rozkładu iloczynów: 2.5. i 97.5. dla 95% CI, ogólnie α/2 i 1 − α/2.
Kalkulator losuje generatorem Mulberry32 z ziarnem i zamienia pary liczb jednostajnych u1, u2 na normalne transformacją Boxa–Mullera:
Następnie a* = a + SE(a) × z1, a b* = b + SE(b) × (ρz1 + √(1 − ρ²) × z2), gdzie ρ = cov(a, b) / [SE(a) × SE(b)]. Percentyle liczone są tak jak domyślna funkcja quantile() w R. Test Sobela opiera się na błędzie standardowym z metody delta pierwszego rzędu (Sobel, 1982):
Przy zerowej kowariancji to klasyczny wzór Sobela. Kalkulator podaje też symetryczny przedział ab ± z1−α/2 × SEab, żeby było widać, czym różni się od przedziału Monte Carlo.
Przykład liczbowy
Badaczka sprawdza, czy wsparcie przełożonego (X) obniża intencję odejścia z pracy (Y) przez większe zaangażowanie w pracę (M). Zbadała 120 pracowników (dane symulowane). Z dwóch regresji otrzymała a = 0.3011 (SE = 0.0868) i b = −0.2385 (SE = 0.1049). Te wartości są domyślnie wpisane w kalkulator.
| Metoda | 95% CI dla ab = −0.072 | Czy obejmuje zero? |
|---|---|---|
| Test Sobela (przedział normalny) | [−0.146, 0.002]; z = −1.90, p = .057 | tak |
| Monte Carlo – kalkulator (20 000 losowań, ziarno 2012) | [−0.159, −0.008] | nie |
| Monte Carlo – kalkulator (20 000 losowań, ziarno 1) | [−0.158, −0.008] | nie |
Monte Carlo – bazowy R, rnorm() | [−0.159, −0.008] | nie |
Monte Carlo – semTools::monteCarloCI() | [−0.157, −0.008] | nie |
| Bootstrap percentylowy z danych (5000 prób) | [−0.152, −0.014] | nie |
Test Sobela nie odrzuca hipotezy zerowej, a wszystkie przedziały Monte Carlo i bootstrap nie obejmują zera. Powód widać na histogramie w kalkulatorze. Rozkład iloczynów jest skośny: dolna granica leży 0.087 od oszacowania, a górna tylko 0.064. Przedział Sobela jest symetryczny, więc jego górna granica „wystaje” poza zero. Różnice między wersjami przedziału Monte Carlo w trzecim miejscu po kropce to błąd losowania, a nie błąd obliczeń. Przy 20 000 losowań błąd Monte Carlo granic wynosi około 0.001 dla dolnej i 0.0005 dla górnej.
Ten sam przykład w R
Kod symuluje dane, szacuje ścieżki dwiema regresjami, liczy test Sobela, przedział Monte Carlo w bazowym R i w semTools oraz bootstrap percentylowy dla porównania.
Ścieżki a i b, test Sobela, przedział Monte Carlo i bootstrap
R
library(semTools)
set.seed(1640)
n <- 120 # pracownicy jednej firmy
wsparcie <- round(rnorm(n, 3.4, 0.8), 2) # X: wsparcie przełożonego
zaang <- 2.0 + 0.30 * wsparcie + rnorm(n, 0, 0.85) # M: zaangażowanie w pracę
intencja <- 4.2 - 0.30 * zaang - 0.10 * wsparcie + rnorm(n, 0, 0.9) # Y: intencja odejścia
dane <- data.frame(wsparcie, zaang, intencja)
# Ścieżki a i b z dwóch regresji
m_a <- lm(zaang ~ wsparcie, data = dane)
m_b <- lm(intencja ~ zaang + wsparcie, data = dane)
a <- coef(m_a)[["wsparcie"]]; se_a <- sqrt(vcov(m_a)["wsparcie", "wsparcie"])
b <- coef(m_b)[["zaang"]]; se_b <- sqrt(vcov(m_b)["zaang", "zaang"])
round(c(a = a, se_a = se_a, b = b, se_b = se_b, ab = a * b), 4)
# Test Sobela (dla porównania)
se_sobel <- sqrt(b^2 * se_a^2 + a^2 * se_b^2)
z <- a * b / se_sobel
round(c(se_sobel = se_sobel, z = z, p = 2 * pnorm(-abs(z)),
dolna = a * b - qnorm(.975) * se_sobel, gorna = a * b + qnorm(.975) * se_sobel), 4)
# Przedział Monte Carlo w bazowym R: 20 000 losowań a i b, kwantyle iloczynu
set.seed(2012)
ab_mc <- rnorm(20000, a, se_a) * rnorm(20000, b, se_b)
q <- quantile(ab_mc, c(.025, .975))
round(c(q, sd = sd(ab_mc)), 4)
round(c(od_ab_do_dolnej = a * b - q[[1]], od_ab_do_gornej = q[[2]] - a * b), 4) # asymetria przedziału
# Błąd Monte Carlo granic przy 20 000 losowań: sqrt(p(1 - p) / R) / f(q)
f <- density(ab_mc)
round(sqrt(.025 * .975 / 20000) / approx(f$x, f$y, q)$y, 4)
# To samo funkcją semTools::monteCarloCI (kowariancja a i b = 0, bo ścieżki pochodzą z dwóch równań)
set.seed(2012)
monteCarloCI(expr = c(ab = "a*b"), coefs = c(a = a, b = b),
ACM = matrix(c(se_a^2, 0, 0, se_b^2), 2, dimnames = list(c("a", "b"), c("a", "b"))),
nRep = 20000)
# Dla porównania: bootstrap percentylowy z surowych danych (5000 prób)
set.seed(2013)
ab_boot <- replicate(5000, {
d <- dane[sample(n, replace = TRUE), ]
coef(lm(zaang ~ wsparcie, data = d))[["wsparcie"]] * coef(lm(intencja ~ zaang + wsparcie, data = d))[["zaang"]]
})
round(quantile(ab_boot, c(.025, .975)), 4)Wynik w R
a se_a b se_b ab
0.3011 0.0868 -0.2385 0.1049 -0.0718
se_sobel z p dolna gorna
0.0378 -1.9021 0.0572 -0.1458 0.0022
2.5% 97.5% sd
-0.1586 -0.0076 0.0389
od_ab_do_dolnej od_ab_do_gornej
0.0868 0.0642
[1] 1e-03 5e-04
est ci.lower ci.upper
ab -0.072 -0.157 -0.008
2.5% 97.5%
-0.1516 -0.0137 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet semTools oraz funkcje lm(), rnorm(), quantile() i density() z pakietu stats). Zgodność kalkulatora z R sprawdzono na 47 przypadkach testowych. Wartości z kalkulatora w tabeli (ziarna 2012 i 1) policzono w R tym samym generatorem co w przeglądarce, odtworzonym na liczbach całkowitych.
- 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, ładowany przez semTools): 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
- semTools (wersja 0.5-8): Jorgensen, T. D., Pornprasertmanit, S., Schoemann, A. M., & Rosseel, Y. (2026). semTools: Useful tools for structural equation modeling (Version 0.5-8) [R package]. https://doi.org/10.32614/CRAN.package.semTools
Jak interpretować wynik
O istotności efektu pośredniego decyduje to, czy przedział obejmuje zero. Przedział [−0.159, −0.008] nie obejmuje zera, więc dane są zgodne z ujemnym efektem pośrednim: wyższe wsparcie wiąże się z wyższym zaangażowaniem, a ono z niższą intencją odejścia. Wielkość efektu odczytuj w jednostkach Y. Różnica jednego punktu we wsparciu przekłada się przez zaangażowanie na intencję odejścia niższą średnio o 0.072 punktu.
- Dlaczego Sobel i Monte Carlo się nie zgadzają? Test Sobela zakłada normalny rozkład iloczynu. MacKinnon i in. (2002) pokazali, że testy oparte na ilorazie ab / SE są przez to zbyt zachowawcze. Hayes i Scharkow (2013) zauważają, że metody zgadzają się znacznie częściej, niż się różnią, ale rozbieżności są częstsze wtedy, gdy efekt pośredni istnieje. Nasz przykład to właśnie taki przypadek.
- Monte Carlo czy bootstrap? Hayes i Scharkow (2013) polecają przedział Monte Carlo, gdy ważniejsza jest kontrola błędu I rodzaju. Bootstrap z korektą obciążenia polecają, gdy najważniejsza jest moc. Bootstrap percentylowy uznają za dobry kompromis. Przewagą metody Monte Carlo jest to, że wystarczą jej oszacowania i błędy standardowe (Preacher i Selig, 2012). Wybierz metodę przed analizą i nie zmieniaj jej po zobaczeniu wyników.
- Błąd losowania. Granica przedziału Monte Carlo to też oszacowanie. Jej błąd maleje jak 1/√R, więc stukrotnie więcej losowań daje dziesięciokrotnie mniejszy błąd. Gdy granica leży blisko zera, sprawdź wynik dla innego ziarna i większej liczby losowań. Wniosek nie powinien zależeć od ziarna.
- Kowariancja. Wpisanie dodatniej albo ujemnej kowariancji zmienia szerokość przedziału. Ma to znaczenie w modelach SEM. Tofighi i MacKinnon (2016) rozszerzają metodę Monte Carlo na dowolne funkcje parametrów modelu SEM, np. iloczyn kilku ścieżek albo iloraz kontrastów efektów pośrednich, i polecają ją do testowania takich złożonych funkcji.
Przedział nie mówi nic o przyczynowości. Efekt pośredni z danych przekrojowych to związek statystyczny, a o tym, czy proces naprawdę przebiega przez mediator, decyduje plan badania. Piszemy o tym w poradniku o analizie mediacji.
Ograniczenia
- Normalność oszacowań a i b. Metoda zakłada, że a i b mają w przybliżeniu rozkład normalny z podanymi SE. W bardzo małych próbach i przy nienormalnych danych to założenie słabnie. Wtedy lepszy jest bootstrap z surowych danych.
- Tylko iloczyn dwóch ścieżek. Kalkulator obsługuje prosty efekt pośredni X → M → Y. Dla mediacji szeregowej (a1d21b2) albo kontrastów użyj funkcji
monteCarloCI()na modelu z lavaan, tak jak we wpisie o mediacji równoległej i szeregowej. - Dane zagnieżdżone. W mediacji wielopoziomowej trzeba rozdzielić efekty wewnątrz i między grupami, zanim policzysz przedział. Pokazujemy to we wpisie o mediacji wielopoziomowej w R.
- Wartości zaokrąglone. Gdy przepisujesz liczby z artykułu z dwoma miejscami po kropce, granice przedziału mogą się nieco różnić od oryginału. Wpisuj możliwie dokładne wartości.
- Współczynniki standaryzowane. Przedział dla iloczynu współczynników standaryzowanych wymaga ich SE i kowariancji z modelu (w lavaan:
standardized = TRUEwmonteCarloCI()). Nie dziel SE niestandaryzowanych przez odchylenia standardowe zmiennych.
Narzędzia do tych samych obliczeń w R opisują też Tofighi i MacKinnon (2011): pakiet RMediation liczy przedziały metodą rozkładu iloczynu, metodą Monte Carlo i przybliżeniem normalnym.
Zapis w pracy (APA)
Podaj oszacowanie efektu pośredniego, rodzaj przedziału, poziom ufności, liczbę losowań i źródło metody. Do odtworzenia wyniku przyda się też ziarno. Współczynniki niestandaryzowane zapisuj z zerem wiodącym, a p bez zera. Gdy raportujesz kilka efektów, zbierz je w tabeli mediacji w stylu APA, obok efektu bezpośredniego.
Wynik testu Sobela możesz dodać w przypisie (z = −1.90, p = .057), z uwagą, że test zakłada normalny rozkład iloczynu. Jeśli recenzent pyta o wybór metody albo chcesz sprawdzić cały model mediacji przed wysłaniem artykułu, zajrzyj do oferty analiz dla badaczy. Ogólne zasady czytania przedziałów opisuje hasło przedział ufności, a inne przedziały policzysz w kalkulatorze przedziału ufności.
Najczęstsze pytania
Jak policzyć przedział ufności dla efektu pośredniego bez surowych danych?
Wystarczą oszacowania ścieżek a i b oraz ich błędy standardowe, np. z tabeli w artykule. Losujesz tysiące par ścieżek z rozkładu normalnego, mnożysz je i bierzesz 2.5. i 97.5. percentyl iloczynów. Tak działa przedział Monte Carlo opisany przez Preachera i Seliga (2012), a kalkulator na tej stronie wykonuje to w przeglądarce.
Czym różni się przedział Monte Carlo od bootstrapu w analizie mediacji?
Bootstrap losuje ze zwracaniem osoby z surowych danych i za każdym razem dopasowuje model od nowa. Przedział Monte Carlo losuje same parametry z ich rozkładu, więc potrzebuje tylko oszacowań i SE i liczy się w ułamku sekundy. Hayes i Scharkow (2013) polecają Monte Carlo, gdy ważniejsza jest kontrola błędu I rodzaju, a bootstrap percentylowy uznają za dobry kompromis.
Ile losowań wybrać w przedziale Monte Carlo dla efektu pośredniego?
Do opisu w pracy zwykle wystarcza 20 000 losowań; tyle domyślnie przyjmuje też funkcja monteCarloCI() z pakietu semTools. W przykładzie na tej stronie błąd losowania granic wynosi wtedy około 0.001. Gdy granica leży tuż przy zerze, zwiększ liczbę losowań do 100 000 lub więcej i sprawdź, czy wniosek nie zależy od ziarna.
Dlaczego test Sobela jest nieistotny, a przedział Monte Carlo nie obejmuje zera?
Test Sobela zakłada, że iloczyn ab ma rozkład normalny, a w rzeczywistości jest on skośny. Symetryczny przedział Sobela może więc obejmować zero, choć asymetryczny przedział Monte Carlo go nie obejmuje. W przykładzie na tej stronie Sobel daje p = .057, a 95% przedział Monte Carlo wynosi [−0.159, −0.008]. Raportuj metodę wybraną przed analizą, a nie tę, która dała istotny wynik.
Skąd wziąć kowariancję ścieżek a i b do przedziału Monte Carlo?
Gdy a i b pochodzą z dwóch osobnych regresji MNK, ich kowariancja wynosi zero. W modelu SEM odczytaj ją z macierzy kowariancji oszacowań, w lavaan poleceniem vcov(fit). Jeśli znasz tylko korelację oszacowań, pomnóż ją przez SE(a) i SE(b).
Powiązane hasła
Przeczytaj też
Analiza mediacji krok po kroku
Hipoteza, ścieżki a, b, c′, efekt pośredni z bootstrapem, PROCESS w SPSS, lavaan w R, dwa mediatory, moc i gotowy opis APA – na jednym przykładzie.
Czytaj →PoradnikMediacja równoległa i szeregowa
Trzy mediatory i łańcuch dwóch mediatorów w lavaan: efekty pośrednie szczegółowe, kontrasty, bootstrap i wzór opisu w pracy.
Czytaj →PoradnikMediacja wielopoziomowa (1-1-1 i 2-1-1) w R
Efekty pośrednie wewnątrz i między grupami, centrowanie, przedział Monte Carlo, lme4 i dwupoziomowy SEM w lavaan na przykładzie oddziałów szpitalnych.
Czytaj →Recenzent pyta o test efektu pośredniego?
Pomożemy dobrać i uzasadnić metodę testowania efektu pośredniego, policzyć przedziały Monte Carlo lub bootstrap w całym modelu mediacji i wyjaśnić wyniki tak, żebyś mógł(a) je samodzielnie opisać i obronić.
Oferta dla badaczyPorozmawiaj o projekcieBibliografia i dalsza literatura naukowa (APA 7)
- Aroian, L. A. (1947). The probability function of the product of two normally distributed variables. The Annals of Mathematical Statistics, 18(2), 265–271. https://doi.org/10.1214/aoms/1177730442 ● Otwarty dostęp
- Hayes, A. F., & Scharkow, M. (2013). The relative trustworthiness of inferential tests of the indirect effect in statistical mediation analysis: Does method really matter? Psychological Science, 24(10), 1918–1927. https://doi.org/10.1177/0956797613480187
- MacKinnon, D. P., Lockwood, C. M., & Williams, J. (2004). Confidence limits for the indirect effect: Distribution of the product and resampling methods. Multivariate Behavioral Research, 39(1), 99–128. https://doi.org/10.1207/s15327906mbr3901_4 ● Otwarty dostęp
- MacKinnon, D. P., Lockwood, C. M., Hoffman, J. M., West, S. G., & Sheets, V. (2002). A comparison of methods to test mediation and other intervening variable effects. Psychological Methods, 7(1), 83–104. https://doi.org/10.1037/1082-989x.7.1.83 ● Otwarty dostęp: pełny tekst
- Preacher, K. J., & Selig, J. P. (2012). Advantages of Monte Carlo confidence intervals for indirect effects. Communication Methods and Measures, 6(2), 77–98. https://doi.org/10.1080/19312458.2012.679848
- Sobel, M. E. (1982). Asymptotic confidence intervals for indirect effects in structural equation models. Sociological Methodology, 13, 290–312. https://doi.org/10.2307/270723
- Tofighi, D., & MacKinnon, D. P. (2011). RMediation: An R package for mediation analysis confidence intervals. Behavior Research Methods, 43(3), 692–700. https://doi.org/10.3758/s13428-011-0076-x ● Otwarty dostęp
- Tofighi, D., & MacKinnon, D. P. (2016). Monte Carlo confidence intervals for complex functions of indirect effects. Structural Equation Modeling: A Multidisciplinary Journal, 23(2), 194–205. https://doi.org/10.1080/10705511.2015.1057284
Cytowania BibTeX
@article{aroian1947probability, author={Aroian, Leo A.}, title={{The probability function of the product of two normally distributed variables}}, journal={The Annals of Mathematical Statistics}, year={1947}, volume={18}, number={2}, pages={265--271}, doi={10.1214/aoms/1177730442}}@article{hayes2013relative, author={Hayes, Andrew F. and Scharkow, Michael}, title={{The relative trustworthiness of inferential tests of the indirect effect in statistical mediation analysis: Does method really matter?}}, journal={Psychological Science}, year={2013}, volume={24}, number={10}, pages={1918--1927}, doi={10.1177/0956797613480187}}@article{mackinnon2004confidence, author={MacKinnon, David P. and Lockwood, Chondra M. and Williams, Jason}, title={{Confidence limits for the indirect effect: Distribution of the product and resampling methods}}, journal={Multivariate Behavioral Research}, year={2004}, volume={39}, number={1}, pages={99--128}, doi={10.1207/s15327906mbr3901_4}}@article{mackinnon2002comparison, author={MacKinnon, David P. and Lockwood, Chondra M. and Hoffman, Jeanne M. and West, Stephen G. and Sheets, Virgil}, title={{A comparison of methods to test mediation and other intervening variable effects}}, journal={Psychological Methods}, year={2002}, volume={7}, number={1}, pages={83--104}, doi={10.1037/1082-989x.7.1.83}}@article{preacher2012advantages, author={Preacher, Kristopher J. and Selig, James P.}, title={{Advantages of Monte Carlo confidence intervals for indirect effects}}, journal={Communication Methods and Measures}, year={2012}, volume={6}, number={2}, pages={77--98}, doi={10.1080/19312458.2012.679848}}@article{sobel1982asymptotic, author={Sobel, Michael E.}, title={{Asymptotic confidence intervals for indirect effects in structural equation models}}, journal={Sociological Methodology}, year={1982}, volume={13}, pages={290--312}, doi={10.2307/270723}}@article{tofighi2011rmediation, author={Tofighi, Davood and MacKinnon, David P.}, title={{RMediation: An R package for mediation analysis confidence intervals}}, journal={Behavior Research Methods}, year={2011}, volume={43}, number={3}, pages={692--700}, doi={10.3758/s13428-011-0076-x}}@article{tofighi2016monte, author={Tofighi, Davood and MacKinnon, David P.}, title={{Monte Carlo confidence intervals for complex functions of indirect effects}}, journal={Structural Equation Modeling: A Multidisciplinary Journal}, year={2016}, volume={23}, number={2}, pages={194--205}, doi={10.1080/10705511.2015.1057284}}