Co to jest fail-safe N?
Fail-safe N to liczba nieopublikowanych badań z zerowym wynikiem, które musiałyby leżeć w szufladach, aby łączny wynik metaanalizy przestał być istotny. Zaproponował go Rosenthal (1979) jako odpowiedź na efekt szuflady: miał pokazać, jak odporny jest wniosek na niewidoczne badania. Orwin (1983) przeniósł tę ideę z poziomu istotności na wielkość efektu.
Wzory
- Rosenthal: N = (ΣZi)² / 1.645² − k, gdzie Zi to statystyki z badań łączone metodą Stouffera, a 1.645 to wartość krytyczna dla jednostronnego α = .05. Rosenthal uznawał wynik za odporny, gdy N przekracza 5k + 10.
- Orwin: N = k(d̄ − dc) / dc – liczba badań o efekcie zero, która obniżyłaby średni efekt d̄ do progu dc uznanego za trywialny.
Przykład
Symulowana literatura liczyła 36 opublikowanych badań; prawdziwe d = 0.20, a metaanaliza dała 0.37. Fail-safe N Rosenthala wyniósł 2020, daleko powyżej progu 5 · 36 + 10 = 190, a wersja Orwina z progiem d = 0.10 – 98 badań. Obie liczby sugerują solidny wynik, choć efekt był zawyżony prawie dwukrotnie. W drugiej symulacji prawdziwy efekt wynosił zero: opublikowano 57 z 300 badań, a fail-safe N wyniósł 187, czyli mniej niż 243 badania, które faktycznie zostały w szufladzie.
Jak opisać w pracy
Na co uważać
- Odpowiada na inne pytanie. Mówi, czy efekt różni się od zera, a nie, o ile jest zawyżony. Wysoki N nie oznacza braku błędu publikacji.
- Nierealne założenie. Brakujące badania mają średnio zerowy efekt, a przy selekcji według wyniku częściej mają efekt ujemny.
- Brak heterogeniczności i wag. Wersja Rosenthala łączy same p, bez wielkości badań.
- Lepsze narzędzia. Zamiast fail-safe N podaj korektę efektu: trim-and-fill, PET-PEESE lub model selekcji.
Więcej we wpisie Błąd publikacji w metaanalizie.
Fail-safe N w R
Funkcja fsn() z pakietu metafor liczy fail-safe N Rosenthala i Orwina. Kod stosuje ją do literatury z prawdziwym efektem i do literatury bez efektu, w której wiadomo, ile badań zostało w szufladzie.
Fail-safe N przy efekcie zawyżonym i przy efekcie zerowym
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)
fsn(yi, vi, data = dat) # Rosenthal
fsn(yi, vi, data = dat, type = "Orwin", target = 0.10) # Orwin, próg d = 0.10
set.seed(388)
d0 <- gen(0, 300) # prawdziwe d = 0
c(opublikowane = nrow(d0), w_szufladzie = 300 - nrow(d0))
round(coef(rma(yi, vi, data = d0))[[1]], 3)
fsn(yi, vi, data = d0)Wynik w R
Fail-safe N Calculation Using the Rosenthal Approach
Observed Significance Level: <.0001
Target Significance Level: 0.05
Fail-safe N: 2020
Fail-safe N Calculation Using the Orwin Approach
Average Effect Size: 0.3714
Target Effect Size: 0.1000
Fail-safe N: 98
opublikowane w_szufladzie
57 243
[1] 0.086
Fail-safe N Calculation Using the Rosenthal Approach
Observed Significance Level: 0.0003
Target Significance Level: 0.05
Fail-safe N: 187Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet metafor). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).
- 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
Co oznacza duży fail-safe N?
Tylko tyle, że trzeba by wielu badań o zerowym wyniku, by łączny efekt przestał być istotny. Nie oznacza, że błędu publikacji nie ma ani że efekt nie jest zawyżony.
Czym różni się fail-safe N Rosenthala od Orwina?
Rosenthal (1979) liczy badania potrzebne, by łączne p przekroczyło .05. Orwin (1983) liczy badania potrzebne, by średni efekt spadł do wybranego progu, np. d = 0.10.
Jak policzyć fail-safe N w R?
W pakiecie metafor: fsn(yi, vi, data = dane) daje wersję Rosenthala, a fsn(yi, vi, data = dane, type = "Orwin", target = 0.10) – wersję Orwina z progiem d = 0.10.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Błąd publikacji w metaanalizie – metody
Lejek i test Eggera, trim-and-fill, PET-PEESE, model selekcji, p-curve i fail-safe N porównane na jednej symulacji w R, z wzorem opisu.
Czytaj →PoradnikMetaanaliza krok po kroku
Od pytania do PRISMA 2020: g Hedgesa, model efektów losowych, heterogeniczność i przedział predykcji, moderatory, wykres lejkowy – z kodem metafor.
Czytaj →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)
- Orwin, R. G. (1983). A fail-safe N for effect size in meta-analysis. Journal of Educational Statistics, 8(2), 157–159. https://doi.org/10.3102/10769986008002157
- Rosenthal, R. (1979). The file drawer problem and tolerance for null results. Psychological Bulletin, 86(3), 638–641. https://doi.org/10.1037/0033-2909.86.3.638
Cytowania BibTeX
@article{orwin1983failsafe, author={Orwin, Robert G.}, title={{A fail-safe N for effect size in meta-analysis}}, journal={Journal of Educational Statistics}, year={1983}, volume={8}, number={2}, pages={157--159}, doi={10.3102/10769986008002157}}@article{rosenthal1979file, author={Rosenthal, Robert}, title={{The file drawer problem and tolerance for null results}}, journal={Psychological Bulletin}, year={1979}, volume={86}, number={3}, pages={638--641}, doi={10.1037/0033-2909.86.3.638}}