Słownik metodologiczny · Mediacja i moderacja

Mediacja (analiza mediacji)

Pełne wyjaśnienie, zastosowanie naukowe i praktyczne, przykład, dobre praktyki oraz gotowy zapis wyniku w APA 7.

Strona główna / Słownik / Mediacja (analiza mediacji)

Co oznacza Mediacja (analiza mediacji)?

Mediacja bada, czy relacja X–Y przebiega częściowo przez zmienną M, szacując efekt pośredni a×b.

Zastosowanie, warunki i dobre praktyki

Mediacja jest hipotezą, że część związku X z Y przebiega przez zmienną M, wyrażoną w modelu przez efekt pośredni. Wiarygodność mechanizmu wymaga sensownej kolejności czasowej, pomiaru wszystkich elementów i kontroli zakłóceń relacji X–M oraz M–Y. W danych przekrojowych analiza może pokazać zgodność kowariancji z modelem, ale nie ustala kierunku procesu.

Najważniejsze zastosowanie: Stosuj przy teorii mechanizmu i danych pozwalających uzasadnić kolejność czasową.

Jak to się oblicza i co oznaczają symbole?

ab = a × b; c = c′ + ab

W prostym liniowym modelu mediacji efekt całkowity c rozkłada się na efekt bezpośredni c′ oraz pośredni ab. Równanie porządkuje oszacowania statystyczne, lecz nie dowodzi mechanizmu. Interpretacja przyczynowa wymaga odpowiedniej kolejności pomiarów, kontroli wspólnych przyczyn mediatora i wyniku oraz uzasadnienia braku interakcji nieuwzględnionej w równaniu.

Jak poprawnie stosować i interpretować hasło „Mediacja (analiza mediacji)”?

W odniesieniu do pojęcia „Mediacja (analiza mediacji)” należy przed analizą określić role X, mediatora M i wyniku Y oraz uzasadnić ich kolejność czasową. W analizie dotyczącej hasła „Mediacja (analiza mediacji)” najważniejszym parametrem jest efekt pośredni, zwykle iloczyn ścieżek a i b, a nie sama zmiana istotności efektu bezpośredniego. Dla interpretacji hasła „Mediacja (analiza mediacji)” model powinien uwzględniać czynniki zakłócające właściwe dla każdej ścieżki, a nie dowolny zestaw dostępnych kowariat.

Ocena pojęcia „Mediacja (analiza mediacji)” wymaga przedziału ufności dla efektu pośredniego, najczęściej wyznaczonego bootstrapem, oraz analizy wrażliwości na alternatywną kolejność i pominięte zmienne. W odniesieniu do hasła „Mediacja (analiza mediacji)” dane przekrojowe zwykle nie pozwalają potwierdzić mechanizmu czasowego. Przy ocenie hasła „Mediacja (analiza mediacji)” w modelach nieliniowych rozkład efektu na część bezpośrednią i pośrednią zależy od skali, więc proste odejmowanie współczynników może mylić.

Co trzeba opisać w raporcie?

Raport dotyczący „Mediacja (analiza mediacji)” powinien podać ścieżki a i b, efekt pośredni z przedziałem ufności, efekt bezpośredni oraz całkowity, jeśli ma jednoznaczne znaczenie w modelu. W analizie dotyczącej hasła „Mediacja (analiza mediacji)” trzeba opisać liczbę replikacji bootstrapu, kowariaty, kolejność pomiarów i status analizy jako potwierdzającej lub eksploracyjnej.

Zakres raportowania dla hasła „Mediacja (analiza mediacji)”: ab = …, bootstrap 95% CI […]; podaj a, b, c′ oraz kowariaty.

Przykład praktyczny i gotowa interpretacja

Sytuacja: Szkolenie zwiększa samoskuteczność, która wiąże się z lepszym wykonaniem zadania.

Jak ją zinterpretować: Dane są zgodne z postulowaną drogą przez mediator, jeśli efekt pośredni ma oczekiwany znak i dostateczną precyzję. Wniosek o mechanizm wymaga jednak kolejności czasowej oraz kontroli wspólnych przyczyn wszystkich ścieżek.

Najczęstsza pułapka i granica interpretacji

Termin „pełna mediacja” oparty wyłącznie na nieistotnym c′ jest przestarzałym uproszczeniem.

Wynik dotyczący „Mediacja (analiza mediacji)” opisuje zgodność danych z określonym modelem pośredniczenia, lecz sam nie dowodzi mechanizmu przyczynowego. W odniesieniu do hasła „Mediacja (analiza mediacji)” etykieta „pełna” albo „częściowa” nie zastępuje wielkości i niepewności efektów.

Przykład reprodukowalny dla tego hasła

Mediacja: efekt bezpośredni, pośredni i całkowity

Kod estymuje ścieżki a, b i c′ oraz efekt pośredni; jego sens zależy od poprawnej kolejności czasowej i modelu.

Dane wejściowe: x — predyktor, m — mediator, y — wynik; kontrola — uzasadniony kowariant. Dane przekrojowe nie dowodzą kolejności przyczynowej.

Co sprawdzić w wyniku: Raportuj ścieżki a, b, c′, efekt ab z bootstrapowym CI i efekt całkowity. Nie wymagaj istotnego efektu całkowitego.

R
dane <- na.omit(read.csv("dane.csv")[c("x", "m", "y", "kontrola")])
set.seed(2026)

a_model <- lm(m ~ x + kontrola, data = dane)
b_model <- lm(y ~ x + m + kontrola, data = dane)
c_model <- lm(y ~ x + kontrola, data = dane)
a <- coef(a_model)["x"]
b <- coef(b_model)["m"]
c_prime <- coef(b_model)["x"]
c_total <- coef(c_model)["x"]
c(a = a, b = b, efekt_posredni = a*b,
  efekt_bezposredni = c_prime, efekt_calkowity = c_total)

# Historyczne testy Sobela, Aroiana i Goodmana; bootstrap CI jest preferowany.
sa <- coef(summary(a_model))["x", "Std. Error"]
sb <- coef(summary(b_model))["m", "Std. Error"]
se <- c(
  Sobel = sqrt(b^2*sa^2 + a^2*sb^2),
  Aroian = sqrt(b^2*sa^2 + a^2*sb^2 + sa^2*sb^2),
  Goodman = sqrt(max(0, b^2*sa^2 + a^2*sb^2 - sa^2*sb^2))
)
z <- (a*b) / se
cbind(SE = se, z = z, p_dwustronne = 2*pnorm(-abs(z)))

# Nieparametryczny bootstrap efektu pośredniego.
B <- 5000
ab <- replicate(B, {
  idx <- sample.int(nrow(dane), replace = TRUE)
  d <- dane[idx, ]
  coef(lm(m ~ x + kontrola, d))["x"] * coef(lm(y ~ x + m + kontrola, d))["m"]
})
quantile(ab, c(.025, .975))
Python
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
from scipy import stats

d = pd.read_csv("dane.csv")[["x", "m", "y", "kontrola"]].dropna()
a_model = smf.ols("m ~ x + kontrola", data=d).fit()
b_model = smf.ols("y ~ x + m + kontrola", data=d).fit()
c_model = smf.ols("y ~ x + kontrola", data=d).fit()
a = a_model.params["x"]
b = b_model.params["m"]
print({"a": a, "b": b, "ab": a*b,
       "c_prime": b_model.params["x"], "c_total": c_model.params["x"]})

sa, sb = a_model.bse["x"], b_model.bse["m"]
se_sobel = np.sqrt(b*b*sa*sa + a*a*sb*sb)
se_aroian = np.sqrt(b*b*sa*sa + a*a*sb*sb + sa*sa*sb*sb)
se_goodman = np.sqrt(max(0, b*b*sa*sa + a*a*sb*sb - sa*sa*sb*sb))
for nazwa, se in {"Sobel": se_sobel, "Aroian": se_aroian,
                  "Goodman": se_goodman}.items():
    z = a*b/se
    p = 2*(1 - stats.norm.cdf(abs(z)))
    print(nazwa, {"SE": se, "z": z, "p": p})

rng = np.random.default_rng(2026)
ab_boot = []
for _ in range(5000):
    boot = d.iloc[rng.integers(0, len(d), len(d))]
    aa = smf.ols("m ~ x + kontrola", data=boot).fit().params["x"]
    bb = smf.ols("y ~ x + m + kontrola", data=boot).fit().params["m"]
    ab_boot.append(aa * bb)
print("95% CI ab:", np.quantile(ab_boot, [.025, .975]))
IBM SPSS Statistics — Syntax
* Wymaga zainstalowanego makra PROCESS autorstwa Andrew F. Hayesa.
PROCESS vars=x m y kontrola
 /y=y
 /x=x
 /m=m
 /cov=kontrola
 /model=4
 /boot=5000
 /total=1
 /contrast=0
 /coefficients=1.

Bibliografia oprogramowania i wykorzystanych pakietów

W przykładach użyto: R, Python, IBM SPSS Statistics, pandas, NumPy, SciPy, statsmodels. W pracy badawczej podaj również faktycznie użyte wersje, które można odczytać poleceniami sessionInfo() w R oraz pip freeze lub importlib.metadata.version() w Pythonie. Cytuj wyłącznie narzędzia rzeczywiście użyte w końcowej analizie.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. Python: Van Rossum, G., & Drake, F. L., Jr. (2009). Python 3 reference manual. CreateSpace.
  3. IBM SPSS Statistics: IBM Corp. (2025). IBM SPSS Statistics for Macintosh (Version 31.0) [Computer software]. IBM Corp.
  4. pandas: McKinney, W. (2010). Data structures for statistical computing in Python. In S. van der Walt & J. Millman (Eds.), Proceedings of the 9th Python in Science Conference (pp. 56–61). https://doi.org/10.25080/Majora-92bf1922-00a
  5. NumPy: Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R., Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río, J. F., Wiebe, M., Peterson, P., … Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585, 357–362. https://doi.org/10.1038/s41586-020-2649-2
  6. SciPy: Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, T., Cournapeau, D., Burovski, E., Peterson, P., Weckesser, W., Bright, J., van der Walt, S. J., Brett, M., Wilson, J., Millman, K. J., Mayorov, N., Nelson, A. R. J., Jones, E., Kern, R., Larson, E., … SciPy 1.0 Contributors. (2020). SciPy 1.0: Fundamental algorithms for scientific computing in Python. Nature Methods, 17, 261–272. https://doi.org/10.1038/s41592-019-0686-2
  7. statsmodels: Seabold, S., & Perktold, J. (2010). Statsmodels: Econometric and statistical modeling with Python. In S. van der Walt & J. Millman (Eds.), Proceedings of the 9th Python in Science Conference (pp. 92–96). https://doi.org/10.25080/Majora-92bf1922-011
BibTeX dla oprogramowania i pakietów
@manual{r-core-2026,
  author = {{R Core Team}},
  title = {R: A Language and Environment for Statistical Computing},
  organization = {R Foundation for Statistical Computing},
  address = {Vienna, Austria},
  year = {2026},
  url = {https://www.R-project.org/}
}
@book{vanrossum2009python,
  author = {Van Rossum, Guido and Drake, Fred L., Jr.},
  title = {Python 3 Reference Manual},
  publisher = {CreateSpace},
  year = {2009},
  isbn = {978-1-4414-1269-0}
}
@software{ibm2025spss,
  author = {{IBM Corp.}},
  title = {IBM SPSS Statistics for Macintosh},
  year = {2025},
  version = {31.0},
  publisher = {IBM Corp.}
}
@inproceedings{mckinney2010pandas,
  author = {McKinney, Wes},
  title = {Data Structures for Statistical Computing in Python},
  booktitle = {Proceedings of the 9th Python in Science Conference},
  editor = {van der Walt, Stéfan and Millman, Jarrod},
  year = {2010},
  pages = {56--61},
  doi = {10.25080/Majora-92bf1922-00a}
}
@article{harris2020numpy,
  author = {Harris, Charles R. and Millman, K. Jarrod and van der Walt, Stéfan J. and Gommers, Ralf and Virtanen, Pauli and others},
  title = {Array Programming with NumPy},
  journal = {Nature},
  year = {2020},
  volume = {585},
  pages = {357--362},
  doi = {10.1038/s41586-020-2649-2}
}
@article{virtanen2020scipy,
  author = {Virtanen, Pauli and Gommers, Ralf and Oliphant, Travis E. and Haberland, Matt and Reddy, Tyler and others},
  title = {SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python},
  journal = {Nature Methods},
  year = {2020},
  volume = {17},
  pages = {261--272},
  doi = {10.1038/s41592-019-0686-2}
}
@inproceedings{seabold2010statsmodels,
  author = {Seabold, Skipper and Perktold, Josef},
  title = {Statsmodels: Econometric and Statistical Modeling with Python},
  booktitle = {Proceedings of the 9th Python in Science Conference},
  year = {2010},
  pages = {92--96},
  doi = {10.25080/Majora-92bf1922-011}
}

Definicje, zalecenia interpretacyjne i sposób raportowania oparto na literaturze metodologicznej wskazanej w bibliografii (Preacher i Hayes, 2008).

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.

Oferta dla badaczyOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Preacher, K. J., & Hayes, A. F. (2008). Asymptotic and resampling strategies for assessing and comparing indirect effects in multiple mediator models. Behavior Research Methods, 40, 879–891. https://doi.org/10.3758/BRM.40.3.879
  2. 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
  3. Appelbaum, M., Cooper, H., Kline, R. B., Mayo-Wilson, E., Nezu, A. M., & Rao, S. M. (2018). Journal article reporting standards for quantitative research in psychology: The APA Publications and Communications Board task force report. American Psychologist, 73(1), 3–25. https://doi.org/10.1037/amp0000191
  4. Nosek, B. A., Ebersole, C. R., DeHaven, A. C., & Mellor, D. T. (2018). The preregistration revolution. Proceedings of the National Academy of Sciences, 115(11), 2600–2606. https://doi.org/10.1073/pnas.1708274114
  5. Wilkinson, L., & Task Force on Statistical Inference. (1999). Statistical methods in psychology journals: Guidelines and explanations. American Psychologist, 54(8), 594–604. https://doi.org/10.1037/0003-066X.54.8.594
  6. Lang, T. A., & Altman, D. G. (2015). Basic statistical reporting for articles published in biomedical journals: The SAMPL guidelines. International Journal of Nursing Studies, 52(1), 5–9. https://doi.org/10.1016/j.ijnurstu.2014.09.006

Cytowania BibTeX

@article{preacher2008mediation, author={Preacher, Kristopher J. and Hayes, Andrew F.}, title={Asymptotic and resampling strategies for assessing and comparing indirect effects in multiple mediator models}, journal={Behavior Research Methods}, year={2008}, volume={40}, pages={879--891}, doi={10.3758/BRM.40.3.879}}
@article{mackinnon2002mediation, 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{appelbaum2018jars, author={Appelbaum, Mark and Cooper, Harris and Kline, Rex B. and Mayo-Wilson, Evan and Nezu, Arthur M. and Rao, Stephen M.}, title={Journal article reporting standards for quantitative research in psychology}, journal={American Psychologist}, year={2018}, volume={73}, number={1}, pages={3--25}, doi={10.1037/amp0000191}}
@article{nosek2018preregistration, author={Nosek, Brian A. and Ebersole, Charles R. and DeHaven, Alexander C. and Mellor, David T.}, title={The preregistration revolution}, journal={Proceedings of the National Academy of Sciences}, year={2018}, volume={115}, number={11}, pages={2600--2606}, doi={10.1073/pnas.1708274114}}
@article{wilkinson1999statistical, author={Wilkinson, Leland and {Task Force on Statistical Inference}}, title={Statistical methods in psychology journals: Guidelines and explanations}, journal={American Psychologist}, year={1999}, volume={54}, number={8}, pages={594--604}, doi={10.1037/0003-066X.54.8.594}}
@article{lang2015sampl, author={Lang, Thomas A. and Altman, Douglas G.}, title={Basic statistical reporting for articles published in biomedical journals: the SAMPL guidelines}, journal={International Journal of Nursing Studies}, year={2015}, volume={52}, number={1}, pages={5--9}, doi={10.1016/j.ijnurstu.2014.09.006}}
R