Słownik metodologiczny · Wielkość efektu

Wykres lasu (forest plot) – jak czytać wyniki metaanalizy?

Wykres lasu pokazuje na jednym rysunku wynik każdego badania i efekt łączny metaanalizy. Wyjaśniamy, co oznaczają kwadraty, linie i romb, i pokazujemy przykład z R oraz gotowy opis do pracy.

Strona główna / Słownik / Wykres lasu
W skrócie: Wykres lasu pokazuje wynik każdego badania z metaanalizy jako kwadrat z przedziałem ufności, a efekt łączny jako romb. Wielkość kwadratu to waga badania. Czytaj go razem z miarami heterogeniczności i nie licz, ile badań było istotnych.

Co to jest wykres lasu?

Wykres lasu (ang. forest plot) to rysunek, który pokazuje wyniki wszystkich badań włączonych do metaanalizy i ich wynik łączny. Każde badanie zajmuje jeden wiersz: kwadrat oznacza oszacowanie efektu, a pozioma linia – jego przedział ufności, zwykle 95%. Na dole romb przedstawia efekt łączny: środek rombu to oszacowanie, a jego szerokość to przedział ufności (Lewis i Clarke, 2001). Pionowa linia oznacza brak efektu: zero dla różnic średnich, 1 dla ilorazów szans.

Jak go czytać?

  • Wielkość kwadratu odpowiada wadze badania w modelu. Precyzyjne, duże badania ważą więcej.
  • Linia przecinająca zero znaczy, że to badanie samo nie wykazało efektu. Nie przesądza to o wyniku łącznym.
  • Rozrzut kwadratów wokół rombu pokazuje, na ile wyniki się różnią. Liczbowo opisują to I² i τ².
  • Oś powinna mieć podpis mówiący, która strona oznacza korzyść.

Przykład

Wykres lasu dla ośmiu badań treningu uważności. Efekty badań wahają się od g = −0.08 do 0.66, cztery przedziały ufności obejmują zero, a romb efektu łącznego leży przy g = 0.37 z 95% CI od 0.18 do 0.55. Największą wagę, 19.4%, ma badanie H.
Rysunek 1. Wykres lasu dla ośmiu badań. Kwadraty to wyniki badań (wielkość = waga), linie to 95% CI, romb to efekt łączny z modelu efektów losowych. Obliczenia: R (dane symulowane).

Osiem badań porównywało trening uważności z grupą kontrolną (dane symulowane). Wynik każdego z nich przeliczono na g Hedgesa, gdzie wartości dodatnie oznaczają mniej stresu po treningu. Cztery z ośmiu przedziałów ufności obejmują zero, a mimo to efekt łączny jest wyraźny: g = 0.37, 95% CI [0.18, 0.55], p < .001. Rozbieżność wyników opisują τ² = 0.03 i I² = 42.5%.

Jak opisać w pracy

Wyniki ośmiu badań i efekt łączny przedstawiono na wykresie lasu (Rysunek 1). W modelu efektów losowych (estymator REML) trening uważności wiązał się z niższym poziomem stresu niż warunek kontrolny, g = 0.37, 95% CI [0.18, 0.55], p < .001. Heterogeniczność wyników wynosiła τ² = 0.03, I² = 42.5%.

Na co uważać

  • Nie licz istotnych badań. Przykład pokazuje, że połowa nieistotnych wyników nie oznacza braku efektu.
  • Romb nie pokazuje efektu w nowym badaniu. Do tego służy przedział predykcji, który warto dorysować pod rombem.
  • Podaj w podpisie model i miarę efektu. Uporządkuj wiersze według roku, wagi albo podgrupy.
  • Wykres lasu nie ocenia błędu publikacji. Do tego służy wykres lejkowy.

W R gotowy wykres z obiektu modelu rysuje funkcja forest() z pakietu metafor (Viechtbauer, 2010). Cały proces metaanalizy opisuje wpis Metaanaliza krok po kroku.

Przykład reprodukowalny

Wykres lasu w R

Kod symuluje osiem badań, liczy g Hedgesa z wariancją (escalc) i dopasowuje model efektów losowych. Rysunek 1 powstał w ggplot2 w dalszej części tego samego skryptu.

Efekty badań, wagi i efekt łączny

Dane wejściowe: średnie, odchylenia standardowe i liczebności dwóch grup w ośmiu badaniach (dane symulowane, set.seed(2712)).

Co odczytać: g z 95% CI i wagę każdego badania, a potem efekt łączny z CI, p, τ² i I².

R
suppressPackageStartupMessages(library(metafor))
set.seed(2712)
k  <- 8
n  <- c(24, 40, 32, 60, 28, 90, 45, 120)               # osób w każdej grupie
dane <- data.frame(badanie = paste0("Badanie ", LETTERS[1:k]),
                   n1 = n, n2 = n, sd1 = 6, sd2 = 6, m2 = 20)  # grupa kontrolna: M = 20 pkt stresu
d_true <- rnorm(k, 0.40, 0.15)                          # prawdziwe efekty różnią się między badaniami
dane$m1 <- round(20 - d_true * 6 + rnorm(k, 0, 6 * sqrt(2 / n)), 1)  # grupa mindfulness
es  <- escalc("SMD", m1i = m2, sd1i = sd2, n1i = n2, m2i = m1, sd2i = sd1, n2i = n1,
              data = dane, slab = badanie)              # g > 0 = mniej stresu po treningu
res <- rma(yi, vi, data = es, method = "REML")
tab <- summary(es)
w   <- weights(res)
print(data.frame(g = round(tab$yi, 2), lo = round(tab$ci.lb, 2), hi = round(tab$ci.ub, 2),
                 waga = round(w, 1), row.names = tab$badanie))
round(c(g = res$b[1], lo = res$ci.lb, hi = res$ci.ub, p = res$pval, tau2 = res$tau2, I2 = res$I2), 3)
Wynik w R
              g    lo   hi waga
Badanie A  0.07 -0.50 0.63  7.9
Badanie B  0.50  0.05 0.94 11.1
Badanie C  0.66  0.16 1.16  9.4
Badanie D -0.08 -0.44 0.28 14.3
Badanie E  0.49 -0.04 1.02  8.7
Badanie F  0.60  0.30 0.90 17.1
Badanie G  0.25 -0.17 0.66 12.1
Badanie H  0.43  0.18 0.69 19.4
     g     lo     hi      p   tau2     I2 
 0.369  0.184  0.554  0.000  0.029 42.523

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiety metafor i ggplot2).

  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. metafor (wersja 5.0.1): Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1–48. https://doi.org/10.18637/jss.v036.i03
  3. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org

Najczęstsze pytania

Co oznacza romb na wykresie lasu?

Romb to efekt łączny z metaanalizy. Jego środek wskazuje oszacowanie, a szerokość to 95% przedział ufności. Jeśli romb nie dotyka linii braku efektu, efekt łączny jest istotny statystycznie.

Dlaczego kwadraty na wykresie lasu mają różną wielkość?

Wielkość kwadratu odpowiada wadze badania w metaanalizie. Badania z mniejszym błędem standardowym, zwykle większe, mają większą wagę, więc ich kwadraty są większe.

Jak zrobić wykres lasu w R?

Najprościej dopasować model funkcją rma() z pakietu metafor i wywołać forest() na wyniku. Własny wykres zbudujesz też w ggplot2 z oszacowań, przedziałów ufności i wag.

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. Lewis, S., & Clarke, M. (2001). Forest plots: Trying to see the wood and the trees. BMJ, 322(7300), 1479–1480. https://doi.org/10.1136/bmj.322.7300.1479 ● Otwarty dostęp: pełny tekst
  2. Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1–48. https://doi.org/10.18637/jss.v036.i03 ● Otwarty dostęp

Cytowania BibTeX

@article{lewis2001forest, author={Lewis, Steff and Clarke, Mike}, title={{Forest plots: Trying to see the wood and the trees}}, journal={BMJ}, year={2001}, volume={322}, number={7300}, pages={1479--1480}, doi={10.1136/bmj.322.7300.1479}}
@article{viechtbauer2010conducting, author={Viechtbauer, Wolfgang}, title={{Conducting meta-analyses in R with the metafor package}}, journal={Journal of Statistical Software}, year={2010}, volume={36}, number={3}, pages={1--48}, doi={10.18637/jss.v036.i03}}
R