Title: | Publication Bias Tests for Meta-Analysis of Diagnostic Accuracy Test |
---|---|
Description: | Generalized Egger tests for detecting publication bias in meta-analysis for diagnostic accuracy test (Noma (2020) <doi:10.1111/biom.13343>, Noma (2022) <doi:10.48550/arXiv.2209.07270>). These publication bias tests are generally more powerful compared with the conventional univariate publication bias tests and can incorporate correlation information between the outcome variables. |
Authors: | Hisashi Noma [aut, cre]
|
Maintainer: | Hisashi Noma <[email protected]> |
License: | GPL-3 |
Version: | 1.2-1 |
Built: | 2025-02-13 04:12:12 UTC |
Source: | https://github.com/cran/MVPBT |
Generalized Egger tests to detect publication bias in meta-analysis for diagnostic accuracy test.
Noma, H. (2020). Discussion of “Testing small study effects in multivariate meta-analysis” by Chuan Hong, Georgia Salanti, Sally Morton, Richard Riley, Haitao Chu, Stephen E. Kimmel, and Yong Chen. Biometrics 76: 1255-1259. doi:10.1111/biom.13343
Noma, H. (2022). MVPBT: R package for publication bias tests in meta-analysis of diagnostic accuracy studies. arXiv:2209.07270. doi:10.48550/arXiv.2209.07270
Funnel plots for the bivariate outcomes of diagnostic meta-analysis are created.
bifunnel(y,S)
bifunnel(y,S)
y |
Summary outcome statistics |
S |
Covariance estimates of |
Funnel plots for the logit-transformed sensitivities and false positive rates are presented.
Noma, H. (2020). Discussion of “Testing small study effects in multivariate meta-analysis” by Chuan Hong, Georgia Salanti, Sally Morton, Richard Riley, Haitao Chu, Stephen E. Kimmel, and Yong Chen. Biometrics 76: 1255-1259. doi:10.1111/biom.13343
Noma, H. (2022). MVPBT: R package for publication bias tests in meta-analysis of diagnostic accuracy studies. arXiv:2209.07270. doi:10.48550/arXiv.2209.07270
require(metafor) require(mada) data(cervical) LAG <- cervical[cervical$method==2,] fit1 <- reitsma(LAG) summary(fit1) # results of the bivariate meta-analysis ### attach(LAG) dta1 <- edta(TP,FN,TN,FP) ### attach(dta1) bifunnel(y,S)
require(metafor) require(mada) data(cervical) LAG <- cervical[cervical$method==2,] fit1 <- reitsma(LAG) summary(fit1) # results of the bivariate meta-analysis ### attach(LAG) dta1 <- edta(TP,FN,TN,FP) ### attach(dta1) bifunnel(y,S)
Dataset of a meta-analysis of diagnostic accuracy for radiological evaluation of lymph node metastases in patients with cervical cancer.
data(cervical)
data(cervical)
A data frame with 44 rows and 8 variables
id
: identification number
author
: The first author name of the corresponding study
year
: The published year of the corresponding study
method
: The diagnostic method; 1=CT (computed tomography), 2=LAG (lymphangiography), 3=MRI (magnetic resonance imaging)
TP
: A vector of the number of true positives (TP)
FP
: A vector of the number of false positives (FP)
FN
: A vector of the number of false negatives (FN)
TN
: A vector of the number of true negatives (TN)
Scheidler, J., Hricak, H., Yu, K. K., Subak, L., and Segal, M. R. (1997). Radiological evaluation of lymph node metastases in patients with cervical cancer. A meta-analysis. JAMA 278: 1096-1101.
Reitsma, J. B., Glas, A. S., Rutjes, A. W., Scholten, R. J., Bossuyt, P. M., and Zwinderman, A. H. (2005). Bivariate analysis of sensitivity and specificity produces informative summary measures in diagnostic reviews. Journal of Clinical Epidemiology 58: 982-990. doi:10.1016/j.jclinepi.2005.02.022
Transforming contingency table data to summary statistics in diagnostic studies.
edta(TP,FN,TN,FP)
edta(TP,FN,TN,FP)
TP |
A vector of the number of true positives (TP) |
FP |
A vector of the number of false positives (FP) |
FN |
A vector of the number of false negatives (FN) |
TN |
A vector of the number of true negatives (TN) |
Summary statistics for meta-analysis are generated.
y
: Logit-transformed sensitivities and false positive rates.
S
: Within-study variances and covariances.
Se
: Sensitivities.
Fp
: False positive rates.
data(cervical) LAG <- cervical[cervical$method==2,] attach(LAG) dta1 <- edta(TP,FN,TN,FP)
data(cervical) LAG <- cervical[cervical$method==2,] attach(LAG) dta1 <- edta(TP,FN,TN,FP)
Generalized Egger test to detect publication bias in bivariate meta-analysis for diagnostic accuracy test (called MSSET2 in Noma (2020)). This test does not consider the uncertainties of heterogeneity variance-covariance parameters, so MVPBT3
is recommended in practice.
MVPBT2(y,S)
MVPBT2(y,S)
y |
Summary outcome statistics |
S |
Covariance estimates of |
T
: The efficient score statistic.
P
: P-value of the publication bias test (score test).
b0
: Constrained maximum likelihood estimates of the regression intercepts.
Noma, H. (2020). Discussion of “Testing small study effects in multivariate meta-analysis” by Chuan Hong, Georgia Salanti, Sally Morton, Richard Riley, Haitao Chu, Stephen E. Kimmel, and Yong Chen. Biometrics 76: 1255-1259. doi:10.1111/biom.13343
Noma, H. (2022). MVPBT: R package for publication bias tests in meta-analysis of diagnostic accuracy studies. arXiv:2209.07270. doi:10.48550/arXiv.2209.07270
require(metafor) require(mada) data(cervical) LAG <- cervical[cervical$method==2,] fit1 <- reitsma(LAG) summary(fit1) # results of the bivariate meta-analysis ### attach(LAG) dta1 <- edta(TP,FN,TN,FP) oldpar <- par(mfrow=c(1,1)) par(mfrow=c(1,3)) plot(fit1, predict=TRUE, cex=1.5, pch=19, sroclty=1, sroclwd=1.5, lty=2, main="(a) SROC plot", xlim=c(0,1), ylim=c(0,1)) points(dta1$Fp,dta1$Se,pch=20,col="blue") #legend(0.4,0.1,legend=c("95% confidence region","95% prediction region"),lty=c(2,3)) ### attach(dta1) res1 <- rma(y[,1], S[,1]) funnel(res1,main="(b) Funnel plot for logit(Se)") regtest(res1, model="lm") # univariate Egger's test res2 <- rma(y[,2], S[,3]) funnel(res2,main="(c) Funnel plot for logit(FPR)") regtest(res2, model="lm") # univariate Egger's test ### MVPBT2(y,S) # Generalized Egger test (MSSET2) par(oldpar) # Reset the graphic parameter
require(metafor) require(mada) data(cervical) LAG <- cervical[cervical$method==2,] fit1 <- reitsma(LAG) summary(fit1) # results of the bivariate meta-analysis ### attach(LAG) dta1 <- edta(TP,FN,TN,FP) oldpar <- par(mfrow=c(1,1)) par(mfrow=c(1,3)) plot(fit1, predict=TRUE, cex=1.5, pch=19, sroclty=1, sroclwd=1.5, lty=2, main="(a) SROC plot", xlim=c(0,1), ylim=c(0,1)) points(dta1$Fp,dta1$Se,pch=20,col="blue") #legend(0.4,0.1,legend=c("95% confidence region","95% prediction region"),lty=c(2,3)) ### attach(dta1) res1 <- rma(y[,1], S[,1]) funnel(res1,main="(b) Funnel plot for logit(Se)") regtest(res1, model="lm") # univariate Egger's test res2 <- rma(y[,2], S[,3]) funnel(res2,main="(c) Funnel plot for logit(FPR)") regtest(res2, model="lm") # univariate Egger's test ### MVPBT2(y,S) # Generalized Egger test (MSSET2) par(oldpar) # Reset the graphic parameter
Generalized Egger test to detect publication bias in bivariate meta-analysis for diagnostic accuracy test (called MSSET3 in Noma (2020)). This test adequately consider the uncertainties of heterogeneity variance-covariance parameters by bootstrapping.
MVPBT3(y,S,B=2000)
MVPBT3(y,S,B=2000)
y |
Summary outcome statistics |
S |
Covariance estimates of |
B |
Number of bootstrap resampling (default: 2000) |
T.b
: Bootstrap samples of the efficient score statistic.
T
: The efficient score statistic.
P
: P-value of the publication bias test (bootstrap test).
Noma, H. (2020). Discussion of “Testing small study effects in multivariate meta-analysis” by Chuan Hong, Georgia Salanti, Sally Morton, Richard Riley, Haitao Chu, Stephen E. Kimmel, and Yong Chen. Biometrics 76: 1255-1259. doi:10.1111/biom.13343
Noma, H. (2022). MVPBT: R package for publication bias tests in meta-analysis of diagnostic accuracy studies. arXiv:2209.07270. doi:10.48550/arXiv.2209.07270
require(metafor) require(mada) data(cervical) LAG <- cervical[cervical$method==2,] fit1 <- reitsma(LAG) summary(fit1) # results of the bivariate meta-analysis ### attach(LAG) dta1 <- edta(TP,FN,TN,FP) oldpar <- par(mfrow=c(1,1)) par(mfrow=c(1,3)) plot(fit1, predict=TRUE, cex=1.5, pch=19, sroclty=1, sroclwd=1.5, lty=2, main="(a) SROC plot", xlim=c(0,1), ylim=c(0,1)) points(dta1$Fp,dta1$Se,pch=20,col="blue") #legend(0.4,0.1,legend=c("95% confidence region","95% prediction region"),lty=c(2,3)) ### attach(dta1) res1 <- rma(y[,1], S[,1]) funnel(res1,main="(b) Funnel plot for logit(Se)") regtest(res1, model="lm") # univariate Egger's test res2 <- rma(y[,2], S[,3]) funnel(res2,main="(c) Funnel plot for logit(FPR)") regtest(res2, model="lm") # univariate Egger's test ### MVPBT3(y,S,B=20) # Generalized Egger test (MSSET3) # This is an example command for illustration. B should be >= 1000. par(oldpar) # Reset the graphic parameter
require(metafor) require(mada) data(cervical) LAG <- cervical[cervical$method==2,] fit1 <- reitsma(LAG) summary(fit1) # results of the bivariate meta-analysis ### attach(LAG) dta1 <- edta(TP,FN,TN,FP) oldpar <- par(mfrow=c(1,1)) par(mfrow=c(1,3)) plot(fit1, predict=TRUE, cex=1.5, pch=19, sroclty=1, sroclwd=1.5, lty=2, main="(a) SROC plot", xlim=c(0,1), ylim=c(0,1)) points(dta1$Fp,dta1$Se,pch=20,col="blue") #legend(0.4,0.1,legend=c("95% confidence region","95% prediction region"),lty=c(2,3)) ### attach(dta1) res1 <- rma(y[,1], S[,1]) funnel(res1,main="(b) Funnel plot for logit(Se)") regtest(res1, model="lm") # univariate Egger's test res2 <- rma(y[,2], S[,3]) funnel(res2,main="(c) Funnel plot for logit(FPR)") regtest(res2, model="lm") # univariate Egger's test ### MVPBT3(y,S,B=20) # Generalized Egger test (MSSET3) # This is an example command for illustration. B should be >= 1000. par(oldpar) # Reset the graphic parameter
Transforming diagnostic measures to summary statistics for meta-analysis of diagnostic studies.
sdta(Se,Fp,Secl,Secu,Fpcl,Fpcu)
sdta(Se,Fp,Secl,Secu,Fpcl,Fpcu)
Se |
A vector of the sensitivity estimates |
Fp |
A vector of the false positive rate estimates |
Secl |
A vector of the lower confidence limits of sensitivities |
Secu |
A vector of the upper confidence limits of sensitivities |
Fpcl |
A vector of the lower confidence limits of false positive rates |
Fpcu |
A vector of the upper confidence limits of false positive rates |
Summary statistics for meta-analysis are generated.
y
: Logit-transformed sensitivities and false positive rates.
S
: Within-study variances and covariances.
Se
: Sensitivities.
Fp
: False positive rates.
library("mada") MRI <- cervical[cervical$method==3,] MRIa <- MRI[,5:8] MRIad <- madad(MRIa) sdta(Se=MRIad$sens$sens,Fp=MRIad$fpr$fpr, Secl=MRIad$sens$sens.ci[,1],Fpcl=MRIad$fpr$fpr.ci[,1]) sdta(Se=MRIad$sens$sens,Fp=MRIad$fpr$fpr, Secu=MRIad$sens$sens.ci[,2],Fpcu=MRIad$fpr$fpr.ci[,2])
library("mada") MRI <- cervical[cervical$method==3,] MRIa <- MRI[,5:8] MRIad <- madad(MRIa) sdta(Se=MRIad$sens$sens,Fp=MRIad$fpr$fpr, Secl=MRIad$sens$sens.ci[,1],Fpcl=MRIad$fpr$fpr.ci[,1]) sdta(Se=MRIad$sens$sens,Fp=MRIad$fpr$fpr, Secu=MRIad$sens$sens.ci[,2],Fpcu=MRIad$fpr$fpr.ci[,2])