Słownik metodologiczny · Wielkość efektu

PET-PEESE – jak skorygować efekt łączny o błąd publikacji?

PET-PEESE koryguje efekt łączny w metaanalizie, przedłużając regresję efektu na jego błąd standardowy do badania o nieskończonej precyzji. Pokazujemy regułę warunkową, przykład w R, opis do pracy i ograniczenia.

W skrócie: PET-PEESE to korekta błędu publikacji w metaanalizie: ważona regresja efektu na błąd standardowy (PET) lub wariancję (PEESE), której wyraz wolny szacuje efekt badania o nieskończonej precyzji. PEESE raportuje się, gdy PET wskazuje efekt większy od zera.

Co to jest PET-PEESE?

PET-PEESE to dwustopniowa metoda korekty błędu publikacji w metaanalizie, oparta na metaregresji wielkości efektu na jego precyzję. Nazwa łączy dwa estymatory zaproponowane przez Stanleya i Doucouliagosa (2014): PET (precision-effect test) i PEESE (precision-effect estimate with standard error).

Jak to działa?

  • PET to ważona regresja efektu na błąd standardowy: yi = b0 + b1·SEi, z wagami 1/SE². Wyraz wolny b0 to przewidywany efekt badania o nieskończonej precyzji (SE = 0). Nachylenie b1 opisuje tę samą asymetrię, którą sprawdza test Eggera.
  • PEESE zastępuje SE wariancją (SE²). W symulacjach autorów ta kwadratowa wersja miała zwykle najmniejsze obciążenie i błąd średniokwadratowy, gdy efekt istniał.
  • Reguła warunkowa: gdy wyraz wolny PET jest istotnie większy od zera (test jednostronny, α = .05), raportuje się PEESE, a w przeciwnym razie – PET.

Intuicja jest prosta: na wykresie lejkowym małe badania z dużymi efektami zawyżają średnią, a regresja przedłuża trend aż do badania idealnie precyzyjnego.

Przykład

Z 120 symulowanych badań o prawdziwym d = 0.20 „opublikowano” 36 – wszystkie istotne i 15% pozostałych. Zwykły model efektów losowych dał d = 0.37. W PET wyraz wolny wyniósł 0.23, SE = 0.15, t(34) = 1.55, p jednostronne = .065, więc reguła wskazuje PET: d = 0.23, 95% CI [−0.07, 0.54]. PEESE dałoby 0.33.

Jak opisać w pracy

Jako analizę wrażliwości na błąd publikacji zastosowano PET-PEESE (Stanley i Doucouliagos, 2014). Wyraz wolny PET nie był istotnie większy od zera, t(34) = 1.55, p = .065 (jednostronnie), dlatego podano estymator PET: d = 0.23, 95% CI [−0.07, 0.54], wobec d = 0.37 w modelu bez korekty.

Na co uważać

  • Szeroki przedział. Przy kilkudziesięciu badaniach PET ma małą moc, a jego przedział ufności często obejmuje zero mimo prawdziwego efektu.
  • Asymetria to nie zawsze selekcja. Jeśli małe badania różnią się od dużych populacją lub jakością, korekta usuwa także prawdziwą różnicę.
  • Żadna metoda nie wygrywa zawsze. Carter i in. (2019) w dużej symulacji nie wskazali metody najlepszej we wszystkich warunkach i zalecają podawać kilka korekt, np. PET-PEESE obok modelu selekcji.

Porównanie metod na jednym zbiorze pokazuje wpis Błąd publikacji w metaanalizie.

Przykład reprodukowalny

PET-PEESE w R

Kod symuluje literaturę z błędem publikacji, dopasowuje zwykły model efektów losowych, PET i PEESE jako metaregresje ważone (pakiet metafor), a potem stosuje regułę warunkową.

Korekta efektu łącznego regresją na SE i SE²

Dane wejściowe: dane symulowane funkcją gen(): 120 badań dwóch grup (15–100 osób w grupie), prawdziwe d = 0.20, τ = 0.10; wyniki istotne i dodatnie „publikowano” zawsze, pozostałe z prawdopodobieństwem 15%; set.seed(387).

Co odczytać: efekt z modelu bez korekty (RE), wyrazy wolne PET i PEESE, jednostronne p wyrazu wolnego PET i wynik reguły warunkowej. Opcja test = "knha" przy method = "FE" daje ważoną regresję z multiplikatywnym błędem, czyli to samo co lm(yi ~ sei, weights = 1/vi).

R
suppressPackageStartupMessages(library(metafor))
gen <- function(d, k) {                       # k badań; d – prawdziwy efekt (tau = 0.10)
  n  <- sample(15:100, k, replace = TRUE)     # osób w grupie
  yi <- sapply(n, function(m) { a <- rnorm(m, rnorm(1, d, 0.10)); b <- rnorm(m)
                                (mean(a) - mean(b)) / sqrt((var(a) + var(b)) / 2) })
  dat <- data.frame(n = n, yi = yi, vi = 2 / n + yi^2 / (4 * n))
  dat$sei <- sqrt(dat$vi)
  dat$p   <- 2 * pnorm(abs(dat$yi / dat$sei), lower.tail = FALSE)  # p dwustronne
  dat[(dat$p < .05 & dat$yi > 0) | runif(k) < .15, ]                 # „publikacja”
}
set.seed(387)
dat <- gen(0.2, 120)                          # prawdziwe d = 0.2; opublikowano część
re  <- rma(yi, vi, data = dat)                # zwykła metaanaliza (REML)
pet   <- suppressWarnings(rma(yi, vi, mods = ~ sei, data = dat, method = "FE", test = "knha"))
peese <- suppressWarnings(rma(yi, vi, mods = ~ vi,  data = dat, method = "FE", test = "knha"))
c(k = nrow(dat), RE = round(coef(re)[[1]], 3))
round(rbind(PET = coef(summary(pet))[1, ], PEESE = coef(summary(peese))[1, ]), 3)
p_jedn <- pt(coef(summary(pet))[1, "tval"], df = pet$k - 2, lower.tail = FALSE)
round(p_jedn, 3)                              # jednostronny test wyrazu wolnego PET
wynik <- if (p_jedn < .05) coef(peese)[1] else coef(pet)[1]
round(wynik, 3)                               # warunkowy estymator PET-PEESE
Wynik w R
     k     RE
36.000  0.374
      estimate    se  tval df pval  ci.lb ci.ub
PET      0.234 0.151 1.551 34 0.13 -0.073 0.540
PEESE    0.325 0.070 4.621 34 0.00  0.182 0.468
[1] 0.065
intrcpt
  0.234

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet metafor). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  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

Najczęstsze pytania

Kiedy wybrać PET, a kiedy PEESE?

Według reguły Stanleya i Doucouliagosa (2014) najpierw dopasowuje się PET. Jeśli jego wyraz wolny jest istotnie większy od zera (test jednostronny), raportuje się PEESE, które przy istniejącym efekcie ma mniejsze obciążenie. W przeciwnym razie podaje się PET.

Czym PET różni się od testu Eggera?

To ta sama regresja zapisana inaczej. Test Eggera sprawdza nachylenie względem SE, czyli asymetrię lejka, a PET interpretuje wyraz wolny jako skorygowany efekt. PEESE dodaje wersję z wariancją zamiast SE.

Jak policzyć PET-PEESE w R?

W pakiecie metafor: rma(yi, vi, mods = ~ sei, method = "FE", test = "knha") dla PET i mods = ~ vi dla PEESE. Odczytaj wyraz wolny (intrcpt), a jego jednostronne p policz z rozkładu t.

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. Carter, E. C., Schönbrodt, F. D., Gervais, W. M., & Hilgard, J. (2019). Correcting for bias in psychology: A comparison of meta-analytic methods. Advances in Methods and Practices in Psychological Science, 2(2), 115–144. https://doi.org/10.1177/2515245919847196 ● Otwarty dostęp: pełny tekst
  2. Stanley, T. D., & Doucouliagos, H. (2014). Meta-regression approximations to reduce publication selection bias. Research Synthesis Methods, 5(1), 60–78. https://doi.org/10.1002/jrsm.1095

Cytowania BibTeX

@article{carter2019correcting, author={Carter, Evan C. and Schönbrodt, Felix D. and Gervais, Will M. and Hilgard, Joseph}, title={{Correcting for bias in psychology: A comparison of meta-analytic methods}}, journal={Advances in Methods and Practices in Psychological Science}, year={2019}, volume={2}, number={2}, pages={115--144}, doi={10.1177/2515245919847196}}
@article{stanley2014meta, author={Stanley, T. D. and Doucouliagos, Hristos}, title={{Meta-regression approximations to reduce publication selection bias}}, journal={Research Synthesis Methods}, year={2014}, volume={5}, number={1}, pages={60--78}, doi={10.1002/jrsm.1095}}
R