Kalkulatory · Analiza mediacji

Kalkulator efektu pośredniego: przedział ufności Monte Carlo i test Sobela

Wpisz ścieżki a i b z błędami standardowymi, a kalkulator policzy efekt pośredni, przedział ufności Monte Carlo z histogramem losowań i – dla porównania – test Sobela. Bez surowych danych i bez instalowania programów.

Strona główna / Blog / Kalkulator efektu pośredniego
W skrócie: Przedział Monte Carlo dla efektu pośredniego powstaje z losowania tysięcy par ścieżek a* i b* z rozkładu normalnego o średnich a, b i odchyleniach SE(a), SE(b); granice to percentyle iloczynów a* × b*. Uwzględnia skośność rozkładu iloczynu, której nie widzi test Sobela, i wymaga tylko oszacowań oraz ich SE (Preacher i Selig, 2012). Gdy przedział nie obejmuje zera, efekt pośredni jest istotny na wybranym poziomie; w opisie podaj liczbę losowań i ziarno.

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

Opis wyniku pojawi się tutaj po obliczeniu.

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.

  1. Ś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.
  2. 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).
  3. 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:

efekt pośredni = a × b

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:

  1. 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).
  2. W każdej parze policz iloczyn a* × b*.
  3. Granice przedziału to percentyle rozkładu iloczynów: 2.5. i 97.5. dla 95% CI, ogólnie α/2 i 1 − α/2.
95% CIMC = [Q.025(a* × b*), Q.975(a* × b*)]

Kalkulator losuje generatorem Mulberry32 z ziarnem i zamienia pary liczb jednostajnych u1, u2 na normalne transformacją Boxa–Mullera:

z1 = √(−2 ln u1) × cos(2πu2)     z2 = √(−2 ln u1) × sin(2πu2)

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):

SEab = √(b² SEa² + a² SEb² + 2ab covab)     z = ab / SEab

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.

Efekt pośredni wsparcia przełożonego na intencję odejścia przez zaangażowanie: porównanie metod
Metoda95% CI dla ab = −0.072Czy obejmuje zero?
Test Sobela (przedział normalny)[−0.146, 0.002]; z = −1.90, p = .057tak
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.

Przykład reprodukowalny

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

Dane wejściowe: 120 pracowników; wsparcie przełożonego (X), zaangażowanie w pracę (M) i intencja odejścia (Y), dane symulowane, set.seed(1640).

Co odczytać: a, b i ich SE, wynik testu Sobela, granice przedziału Monte Carlo z ich błędem losowania oraz granice bootstrapu.

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.

  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 (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
  3. 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 = TRUE w monteCarloCI()). 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.

Efekt pośredni wsparcia przełożonego na intencję odejścia z pracy przez zaangażowanie w pracę oszacowano jako iloczyn ścieżek a = 0.301 (SE = 0.087) i b = −0.238 (SE = 0.105): ab = −0.072. 95% przedział ufności Monte Carlo (20 000 losowań, ziarno 2012; Preacher i Selig, 2012) wyniósł [−0.159, −0.008] i nie obejmował zera. Wyższe wsparcie wiązało się z wyższym zaangażowaniem, a ono z niższą intencją odejścia.

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ż

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 projekcie

Bibliografia i dalsza literatura naukowa (APA 7)

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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}}
R