Co to jest trim-and-fill?
Trim-and-fill (pol. „przytnij i uzupełnij”) to metoda korekty metaanalizy, która szacuje, ile badań brakuje po jednej stronie wykresu lejkowego, dopisuje ich lustrzane odbicia i liczy efekt łączny ponownie. Zaproponowali ją Duval i Tweedie (2000) jako prosty, oparty na rangach sposób sformalizowania oceny lejka. Jest jedną z odpowiedzi na błąd publikacji, czyli sytuację, w której małe badania z wynikiem nieistotnym rzadziej trafiają do druku.
Jak to działa?
- Trim: z bardziej „zaludnionej” strony lejka usuwa się najmniejsze, najbardziej skrajne badania, aż reszta stanie się symetryczna.
- Estymacja: z pozostałych badań szacuje się środek lejka i liczbę brakujących badań k0.
- Fill: usunięte badania wracają, a po przeciwnej stronie dopisuje się k0 ich odbić względem środka. Z pełnego zestawu liczy się skorygowany efekt i jego przedział ufności.
Test Eggera mówi, czy lejek jest asymetryczny. Trim-and-fill idzie krok dalej i pokazuje, jak mógłby wyglądać wynik, gdyby asymetrię wywołały brakujące badania.
Przykład
Symulowano 40 badań o prawdziwym d = 0.2 i „opublikowano” głównie te z dodatnim, istotnym wynikiem (dane symulowane). Do metaanalizy trafiło 20 badań. Model efektów losowych dał d = 0.26, 95% CI [0.17, 0.36]. Trim-and-fill dopisał 5 badań po lewej stronie lejka, a skorygowany efekt wyniósł d = 0.19, 95% CI [0.09, 0.29]. Korekta zbliżyła wynik do wartości prawdziwej, ale nie zmieniła wniosku, że efekt jest dodatni.
Jak opisać w pracy
Na co uważać
- To analiza wrażliwości, a nie „prawdziwy” efekt. Peters i in. (2007) pokazali w symulacjach, że przy dużej heterogeniczności metoda może zaniżać efekt nawet wtedy, gdy błędu publikacji nie ma. Asymetria lejka może mieć też inne przyczyny, np. różnice między małymi i dużymi badaniami.
- Podaj oba wyniki – nieskorygowany i skorygowany – oraz estymator i stronę lejka.
- Przy kilku badaniach wynik metody jest bardzo niepewny. Pełną procedurę w pakiecie metafor (Viechtbauer, 2010) pokazuje poradnik metaanaliza krok po kroku.
Trim-and-fill w R
Kod symuluje 40 badań z selektywną publikacją, dopasowuje model efektów losowych do opublikowanych i stosuje funkcję trimfill() z pakietu metafor.
Efekt przed korektą i po niej
R
library(metafor)
set.seed(2726)
n <- sample(15:100, 40, replace = TRUE) # liczebność grupy w 40 przeprowadzonych badaniach
vi <- 2 / n + 0.2^2 / (4 * n) # wariancja d przy prawdziwym d = 0.2
yi <- rnorm(40, 0.2, sqrt(vi + 0.05^2)) # niewielka heterogeniczność
p <- 2 * pnorm(-abs(yi / sqrt(vi)))
publ <- (p < .05 & yi > 0) | runif(40) < 0.2 # pozostałe wyniki publikowane z szansą 20%
dane <- data.frame(yi, vi)[publ, ]
nrow(dane) # liczba opublikowanych badań
res <- rma(yi, vi, data = dane) # model efektów losowych (REML)
round(c(d = res$b[1], ci_lb = res$ci.lb, ci_ub = res$ci.ub), 2)
tf <- trimfill(res) # estymator L0, strona lejka wybierana automatycznie
c(k0 = tf$k0, strona = tf$side) # liczba dopisanych badań i strona lejka
round(c(d = tf$b[1], ci_lb = tf$ci.lb, ci_ub = tf$ci.ub), 2)Wynik w R
[1] 20
d ci_lb ci_ub
0.26 0.17 0.36
k0 strona
"5" "left"
d ci_lb ci_ub
0.19 0.09 0.29 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet metafor).
- 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/
- 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
Najczęstsze pytania
Czy trim-and-fill udowadnia błąd publikacji?
Nie. Metoda zakłada, że asymetrię lejka wywołały brakujące badania, a może ona wynikać też z heterogeniczności lub różnic między małymi i dużymi badaniami. Traktuj ją jako analizę wrażliwości.
Co oznacza k0 w wyniku trim-and-fill?
To oszacowana liczba badań brakujących po jednej stronie wykresu lejkowego. Tyle lustrzanych odbić metoda dopisuje przed ponownym policzeniem efektu łącznego.
Jak wykonać trim-and-fill w R?
Dopasuj model funkcją rma() z pakietu metafor, a potem wywołaj trimfill() na wyniku. Funkcja podaje liczbę dopisanych badań, stronę lejka i efekt skorygowany z 95% CI.
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ówBibliografia i dalsza literatura naukowa (APA 7)
- Duval, S., & Tweedie, R. (2000). Trim and fill: A simple funnel-plot-based method of testing and adjusting for publication bias in meta-analysis. Biometrics, 56(2), 455–463. https://doi.org/10.1111/j.0006-341x.2000.00455.x
- Peters, J. L., Sutton, A. J., Jones, D. R., Abrams, K. R., & Rushton, L. (2007). Performance of the trim and fill method in the presence of publication bias and between-study heterogeneity. Statistics in Medicine, 26(25), 4544–4562. https://doi.org/10.1002/sim.2889
- 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{duval2000trim, author={Duval, Sue and Tweedie, Richard}, title={{Trim and fill: A simple funnel-plot-based method of testing and adjusting for publication bias in meta-analysis}}, journal={Biometrics}, year={2000}, volume={56}, number={2}, pages={455--463}, doi={10.1111/j.0006-341x.2000.00455.x}}@article{peters2007performance, author={Peters, Jaime L. and Sutton, Alex J. and Jones, David R. and Abrams, Keith R. and Rushton, Lesley}, title={{Performance of the trim and fill method in the presence of publication bias and between-study heterogeneity}}, journal={Statistics in Medicine}, year={2007}, volume={26}, number={25}, pages={4544--4562}, doi={10.1002/sim.2889}}@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}}