This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
SR.table<-data.frame(TP=c(11,43,36,22,41,24,34,19), FN=c(4,12,37,4,2,8,3,4), FP=c(19,30,158,3,7,9,198,2), TN=c(86,465,378,287,89,304,216,289))
SR.table$names<-c("Mostafa 2020","Panjiar 2019", "Yabuki 2019", "Rao 2018", "Nurullah 2018", "Jain 2017", "Selvi 2016", "Etezadi 2013")
SR.table$design<-c("Cohort", "Cohort", "Cohort", "Cohort", "Cohort", "Cohort", "Cohort", "Cohort")
library(mada)
## Loading required package: mvtnorm
## Loading required package: ellipse
##
## Attaching package: 'ellipse'
## The following object is masked from 'package:graphics':
##
## pairs
## Loading required package: mvmeta
## This is mvmeta 1.0.3. For an overview type: help('mvmeta-package').
madad(SR.table)
## Descriptive summary of SR.table with 8 primary studies.
## Confidence level for all calculations set to 95 %
## Using a continuity correction of 0.5 if applicable
##
## Diagnostic accuracies
## sens 2.5% 97.5% spec 2.5% 97.5%
## Mostafa 2020 0.733 0.480 0.891 0.819 0.735 0.881
## Panjiar 2019 0.782 0.656 0.871 0.939 0.915 0.957
## Yabuki 2019 0.493 0.382 0.605 0.705 0.665 0.742
## Rao 2018 0.846 0.665 0.938 0.990 0.970 0.996
## Nurullah 2018 0.953 0.845 0.987 0.927 0.857 0.964
## Jain 2017 0.750 0.579 0.867 0.971 0.946 0.985
## Selvi 2016 0.919 0.787 0.972 0.522 0.474 0.569
## Etezadi 2013 0.826 0.629 0.930 0.993 0.975 0.998
##
## Test for equality of sensitivities:
## X-squared = 43.832, df = 7, p-value = 2.3e-07
## Test for equality of specificities:
## X-squared = 543.6962, df = 7, p-value = <2e-16
##
##
## Diagnostic OR and likelihood ratios
## DOR 2.5% 97.5% posLR 2.5% 97.5% negLR 2.5% 97.5%
## Mostafa 2020 12.447 3.575 43.340 4.053 2.437 6.740 0.326 0.140 0.757
## Panjiar 2019 55.542 26.533 116.268 12.900 8.876 18.748 0.232 0.141 0.383
## Yabuki 2019 2.328 1.419 3.819 1.673 1.281 2.185 0.719 0.569 0.907
## Rao 2018 526.167 110.735 2500.120 81.795 26.223 255.137 0.155 0.063 0.383
## Nurullah 2018 260.643 51.869 1309.729 13.076 6.388 26.766 0.050 0.013 0.194
## Jain 2017 101.333 35.849 286.433 26.083 13.291 51.189 0.257 0.141 0.469
## Selvi 2016 12.364 3.738 40.889 1.921 1.672 2.208 0.155 0.052 0.462
## Etezadi 2013 686.375 118.122 3988.343 120.196 29.824 484.407 0.175 0.072 0.427
##
## Correlation of sensitivities and false positive rates:
## rho 2.5 % 97.5 %
## -0.135 -0.767 0.629
par(mfrow=c(1,3))
tabletext<-cbind(SR.table$names,SR.table$design)
mada::forest(madad(SR.table),type ="sens",snames=SR.table$names)
mada::forest(madad(SR.table),type = "spec",snames=SR.table$names)
mada::forest(madad(SR.table),type = "DOR",snames=SR.table$names)
## Warning in arrows(lb[i], (N:1)[i], ub[i], angle = 90, code = 3, length = 0.05, :
## zero-length arrow is of indeterminate angle and so skipped
par(mfrow=c(1,1))
mada::ROCellipse(SR.table)
#Forest Plots by univariate analysis with meta
library(meta)
## Loading 'meta' package (version 4.12-0).
## Type 'help(meta)' for a brief overview.
##
## Attaching package: 'meta'
## The following object is masked from 'package:mada':
##
## forest
sensitivity_logit <- meta::metaprop(SR.table$TP, SR.table$TP + SR.table$FN, comb.fixed=FALSE, comb.random=TRUE, sm= "PLOGIT", method.ci= "CP", studlab=SR.table$names)
print(sensitivity_logit, digits=3)
## proportion 95%-CI
## Mostafa 2020 0.733 [0.449; 0.922]
## Panjiar 2019 0.782 [0.650; 0.882]
## Yabuki 2019 0.493 [0.374; 0.613]
## Rao 2018 0.846 [0.651; 0.956]
## Nurullah 2018 0.953 [0.842; 0.994]
## Jain 2017 0.750 [0.566; 0.885]
## Selvi 2016 0.919 [0.781; 0.983]
## Etezadi 2013 0.826 [0.612; 0.950]
##
## Number of studies combined: k = 8
##
## proportion 95%-CI
## Random effects model 0.812 [0.694; 0.891]
##
## Quantifying heterogeneity:
## tau^2 = 0.6075; tau = 0.7794; I^2 = 76.5%; H = 2.06
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 35.89 7 < 0.0001 Wald-type
## 44.58 7 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
forest(sensitivity_logit, digits=3, rightcols=c("effect", "ci"), xlab="Sensitivity")
specificity_logit <- meta::metaprop(SR.table$TN, SR.table$TN+ SR.table$FP, comb.fixed=FALSE, comb.random=TRUE, sm="PLOGIT", method.ci="CP", studlab=SR.table$names)
print(specificity_logit, digits=3)
## proportion 95%-CI
## Mostafa 2020 0.819 [0.732; 0.887]
## Panjiar 2019 0.939 [0.915; 0.959]
## Yabuki 2019 0.705 [0.665; 0.744]
## Rao 2018 0.990 [0.970; 0.998]
## Nurullah 2018 0.927 [0.856; 0.970]
## Jain 2017 0.971 [0.946; 0.987]
## Selvi 2016 0.522 [0.472; 0.571]
## Etezadi 2013 0.993 [0.975; 0.999]
##
## Number of studies combined: k = 8
##
## proportion 95%-CI
## Random effects model 0.930 [0.809; 0.976]
##
## Quantifying heterogeneity:
## tau^2 = 2.5447; tau = 1.5952; I^2 = 98.6%; H = 8.41
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 317.32 7 < 0.0001 Wald-type
## 559.54 7 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
forest(specificity_logit, digits=3, rightcols=c("effect", "ci"), xlab="Specificity")
DOR_model <- meta::metabin(TP,TP+FP,FN,FN+TN, sm="OR", comb.fixed=FALSE,comb.random=TRUE, method= "Inverse",studlab = SR.table$names, data=SR.table)
print(DOR_model)
## OR 95%-CI %W(random)
## Mostafa 2020 12.4474 [ 3.5749; 43.3403] 12.5
## Panjiar 2019 55.5417 [ 26.5326; 116.2676] 13.2
## Yabuki 2019 2.3277 [ 1.4190; 3.8186] 13.4
## Rao 2018 526.1667 [110.7352; 2500.1202] 12.0
## Nurullah 2018 260.6429 [ 51.8693; 1309.7288] 11.9
## Jain 2017 101.3333 [ 35.8493; 286.4333] 12.8
## Selvi 2016 12.3636 [ 3.7384; 40.8890] 12.6
## Etezadi 2013 686.3750 [118.1219; 3988.3426] 11.6
##
## Number of studies combined: k = 8
##
## OR 95%-CI z p-value
## Random effects model 56.6070 [11.9548; 268.0386] 5.09 < 0.0001
##
## Quantifying heterogeneity:
## tau^2 = 4.6250 [1.5914; 19.6191]; tau = 2.1506 [1.2615; 4.4293];
## I^2 = 94.6% [91.5%; 96.6%]; H = 4.31 [3.43; 5.41]
##
## Test of heterogeneity:
## Q d.f. p-value
## 129.82 7 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2
## - Jackson method for confidence interval of tau^2 and tau
meta::forest(DOR_model, digits=3, rightcols=c("effect", "ci"), xlab = "Diagnostic Odds Ratio",layout = "JAMA",leftcols = NULL)
#DSL for random effects (hetoregeneity) and MH for fixed effects (homogeneity)
(fit.DOR.DSL<-mada::madauni(SR.table,type="DOR",method = "DSL"))
## Call:
## mada::madauni(x = SR.table, type = "DOR", method = "DSL")
##
## DOR tau^2
## 56.607 4.625
(fit.PLR.DSL<-mada::madauni(SR.table,type="posLR"))
## Call:
## mada::madauni(x = SR.table, type = "posLR")
##
## posLR tau^2
## 10.764 1.252
(fit.NLR.DSL<-mada::madauni(SR.table,type="negLR"))
## Call:
## mada::madauni(x = SR.table, type = "negLR")
##
## negLR tau^2
## 0.226 0.602
summary(fit.DOR.DSL)
## Call:
## mada::madauni(x = SR.table, type = "DOR", method = "DSL")
##
## Estimates:
## DSL estimate 2.5 % 97.5 %
## DOR 56.607 11.955 268.039
## lnDOR 4.036 2.481 5.591
## tau^2 4.625 0.000 11.912
## tau 2.151 0.000 3.451
##
## Cochran's Q: 5.692 (7 df, p = 0.576)
## Higgins' I^2: 0%
summary(fit.PLR.DSL)
## Call:
## mada::madauni(x = SR.table, type = "posLR")
##
## Estimates:
## DSL estimate 2.5 % 97.5 %
## posLR 10.764 4.758 24.349
## lnposLR 2.376 1.560 3.192
## tau^2 1.252 0.000 9.257
## tau 1.119 0.000 3.043
##
## Cochran's Q: 12.335 (7 df, p = 0.09)
## Higgins' I^2: 43.25%
summary(fit.NLR.DSL)
## Call:
## mada::madauni(x = SR.table, type = "negLR")
##
## Estimates:
## DSL estimate 2.5 % 97.5 %
## negLR 0.226 0.123 0.416
## lnnegLR -1.488 -2.099 -0.878
## tau^2 0.602 0.000 1.546
## tau 0.776 0.000 1.244
##
## Cochran's Q: 4.87 (7 df, p = 0.676)
## Higgins' I^2: 0%
par(mfrow=c(1,3))
mada::forest(fit.DOR.DSL, log=FALSE)
## Warning in arrows(lb[i], (N:1)[i], ub[i], angle = 90, code = 3, length = 0.05, :
## zero-length arrow is of indeterminate angle and so skipped
mada::forest(fit.PLR.DSL, log=FALSE)
## Warning in arrows(lb[i], (N:1)[i], ub[i], angle = 90, code = 3, length = 0.05, :
## zero-length arrow is of indeterminate angle and so skipped
## Warning in arrows(lb[i], (N:1)[i], ub[i], angle = 90, code = 3, length = 0.05, :
## zero-length arrow is of indeterminate angle and so skipped
mada::forest(fit.NLR.DSL, log=FALSE)
par(mfrow=c(1,1))
#diagnostic accuracy taking into account homogeneity and heterogeneity of studies
(fit.phm.hetero<-mada::phm(SR.table,hetero=TRUE))
## Call:
## phm.default(data = SR.table, hetero = TRUE)
##
## Coefficients:
## theta taus_sq
## 0.11891318 0.01580926
summary(fit.phm.hetero)
## Call:
## phm.default(data = SR.table, hetero = TRUE)
##
## Estimate 2.5 % 97.5 %
## theta 0.11891318 -0.11179175 0.34961811
## taus_sq 0.01580926 -0.01513495 0.04675346
##
## Log-likelihood: 10.862 on 2 degrees of freedom
## AIC: -17.7
## BIC: -17.6
##
## Chi-square goodness of fit test (Adjusted Profile Maximum Likelihood
## under heterogeneity)
##
## data: x
## Chi-square = 10.1, df = 2, p-value = 0.1205
##
##
## AUC 2.5 % 97.5 % pAUC 2.5 % 97.5 %
## 0.894 1.126 0.741 0.823 1.212 0.579
(fit.phm.homo<-mada::phm(SR.table,hetero=FALSE))
## Call:
## phm.default(data = SR.table, hetero = FALSE)
##
## Coefficients:
## theta
## 0.0483328
summary(fit.phm.homo)
## Call:
## phm.default(data = SR.table, hetero = FALSE)
##
## Estimate 2.5 % 97.5 %
## theta 0.0483328 0.03643233 0.06023326
##
## Log-likelihood: -0.847 on 1 degrees of freedom
## AIC: 3.7
## BIC: 3.8
##
## Chi-square goodness of fit test (Adjusted Profile Maximum Likelihood
## under homogeneity)
##
## data: x
## Chi-square = 41.491, df = 1, p-value = 6.516e-07
##
##
## AUC 2.5 % 97.5 % pAUC 2.5 % 97.5 %
## 0.954 0.965 0.943 0.923 0.941 0.905
par(mfrow=c(1,1))
plot(fit.phm.hetero)
ROCellipse(SR.table,add = TRUE)
(fit.reitsma<-mada::reitsma(SR.table))
## Call: reitsma.default(data = SR.table)
##
## Fixed-effects coefficients:
## tsens tfpr
## (Intercept) 1.3833 -2.5265
##
## 8 studies, 2 fixed and 3 random-effects parameters
## logLik AIC BIC
## 14.6673 -19.3346 -15.4717
summary(fit.reitsma)
## Call: reitsma.default(data = SR.table)
##
## Bivariate diagnostic random-effects meta-analysis
## Estimation method: REML
##
## Fixed-effects coefficients
## Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
## tsens.(Intercept) 1.383 0.324 4.272 0.000 0.749 2.018 ***
## tfpr.(Intercept) -2.526 0.599 -4.218 0.000 -3.701 -1.352 ***
## sensitivity 0.800 - - - 0.679 0.883
## false pos. rate 0.074 - - - 0.024 0.205
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Variance components: between-studies Std. Dev and correlation matrix
## Std. Dev tsens tfpr
## tsens 0.771 1.000 .
## tfpr 1.651 -0.202 1.000
##
## logLik AIC BIC
## 14.667 -19.335 -15.472
##
## AUC: 0.902
## Partial AUC (restricted to observed FPRs and normalized): 0.855
##
## HSROC parameters
## Theta Lambda beta sigma2theta sigma2alpha
## 0.149 3.751 0.762 0.508 3.059
plot(fit.reitsma,sroclwd = 2)
points(fpr(SR.table),sens(SR.table), pch=2)
legend("bottomright", c("data","summary estimate"),pch=c(2,1))
library(metafor)
## Loading required package: Matrix
## Loading 'metafor' package (version 2.4-0). For an overview
## and introduction to the package please type: help(metafor).
##
## Attaching package: 'metafor'
## The following objects are masked from 'package:meta':
##
## baujat, forest, funnel, funnel.default, labbe, radial, trimfill
## The following object is masked from 'package:mada':
##
## forest
## The following object is masked from 'package:mvmeta':
##
## blup
library(metaviz)
library(dmetar)
## Extensive documentation for the dmetar package can be found at:
## www.bookdown.org/MathiasHarrer/Doing_Meta_Analysis_in_R/
legend("bottomleft",c("SROC", "conf. region"), lwd=c(2,1))
dat<-metafor::escalc(measure = "OR", ai=TP,bi= FP,ci=FN,di=TN,data = SR.table)
funnel_TMH<-metafor::rma.uni(yi,vi,data=dat,method="REML")
metaviz::funnelinf(funnel_TMH,n=1,xlab = "DOR",ylab = "Standard error of DOR", egger=TRUE, trim_and_fill = TRUE)
dmetar::eggers.test(x=DOR_model)
## Warning in dmetar::eggers.test(x = DOR_model): Your meta-analysis contains k =
## 8 studies. Egger's test may lack the statistical power to detect bias when the
## number of studies is small (i.e., k<10).
## Intercept ConfidenceInterval t p
## Egger's test 7.654 3.146-12.162 3.379 0.01488
#summary sensitivity and specificity for studies with common threshold
SR.table.2<-data.frame(TP=c(43,3,22,41,24,34,19), FN=c(12,3,4,2,8,3,4), FP=c(30,191,3,7,9,198,2), TN=c(465,412,287,89,304,216,289))
(fit.reitsma.2<-mada::reitsma(SR.table.2))
## Call: reitsma.default(data = SR.table.2)
##
## Fixed-effects coefficients:
## tsens tfpr
## (Intercept) 1.5575 -2.6653
##
## 7 studies, 2 fixed and 3 random-effects parameters
## logLik AIC BIC
## 14.5936 -19.1872 -15.9919
summary(fit.reitsma.2)
## Call: reitsma.default(data = SR.table.2)
##
## Bivariate diagnostic random-effects meta-analysis
## Estimation method: REML
##
## Fixed-effects coefficients
## Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
## tsens.(Intercept) 1.557 0.261 5.958 0.000 1.045 2.070 ***
## tfpr.(Intercept) -2.665 0.683 -3.904 0.000 -4.003 -1.327 ***
## sensitivity 0.826 - - - 0.740 0.888
## false pos. rate 0.065 - - - 0.018 0.210
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Variance components: between-studies Std. Dev and correlation matrix
## Std. Dev tsens tfpr
## tsens 0.437 1.000 .
## tfpr 1.762 0.180 1.000
##
## logLik AIC BIC
## 14.594 -19.187 -15.992
##
## AUC: 0.887
## Partial AUC (restricted to observed FPRs and normalized): 0.856
##
## HSROC parameters
## Theta Lambda beta sigma2theta sigma2alpha
## 0.900 4.455 1.395 0.454 1.263
#summary sensitivity and specificity for studies with prespecified threshold
SR.table.3<-data.frame(TP=c(3,22,41,24,34), FN=c(3,4,2,8,3), FP=c(191,3,7,9,198), TN=c(412,287,89,304,216))
(fit.reitsma.3<-mada::reitsma(SR.table.3))
## Call: reitsma.default(data = SR.table.3)
##
## Fixed-effects coefficients:
## tsens tfpr
## (Intercept) 1.6654 -2.2436
##
## 5 studies, 2 fixed and 3 random-effects parameters
## logLik AIC BIC
## 8.7411 -7.4822 -5.9693
summary(fit.reitsma.3)
## Call: reitsma.default(data = SR.table.3)
##
## Bivariate diagnostic random-effects meta-analysis
## Estimation method: REML
##
## Fixed-effects coefficients
## Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
## tsens.(Intercept) 1.665 0.459 3.627 0.000 0.766 2.565 ***
## tfpr.(Intercept) -2.244 0.830 -2.704 0.007 -3.870 -0.617 **
## sensitivity 0.841 - - - 0.683 0.929
## false pos. rate 0.096 - - - 0.020 0.350
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Variance components: between-studies Std. Dev and correlation matrix
## Std. Dev tsens tfpr
## tsens 0.824 1.000 .
## tfpr 1.823 0.030 1.000
##
## logLik AIC BIC
## 8.741 -7.482 -5.969
##
## AUC: 0.912
## Partial AUC (restricted to observed FPRs and normalized): 0.871
##
## HSROC parameters
## Theta Lambda beta sigma2theta sigma2alpha
## 0.484 3.986 0.794 0.773 2.912
#sensitivity analyses
#external laryngeal manipulation
SR.table$burp<-c("yes","yes", "yes", "no", "yes", "yes", "no", "yes")
SR.table$patient<-c("no","yes", "yes", "yes", "yes", "yes", "yes", "no")
fit.burp <- mada::reitsma(SR.table,formula = cbind(tsens, tfpr) ~ burp,method = "ml")
summary(fit.burp)
## Call: reitsma.default(data = SR.table, formula = cbind(tsens, tfpr) ~
## burp, method = "ml")
##
## Bivariate diagnostic random-effects meta-analysis
## Estimation method: ML
##
## Fixed-effects coefficients
## Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
## tsens.(Intercept) 2.029 0.571 3.556 0.000 0.911 3.147 ***
## tsens.burpyes -0.903 0.643 -1.404 0.160 -2.163 0.357
## tfpr.(Intercept) -2.149 1.104 -1.947 0.052 -4.313 0.015 .
## tfpr.burpyes -0.483 1.273 -0.379 0.704 -2.978 2.012
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Variance components: between-studies Std. Dev and correlation matrix
## Std. Dev tsens tfpr
## tsens 0.569 1.000 .
## tfpr 1.509 -0.397 1.000
##
## logLik AIC BIC
## 15.613 -17.227 -11.819
#risk of bias for patient selection
fit.patient <- mada::reitsma(SR.table,formula = cbind(tsens, tfpr) ~ patient,method = "ml")
summary(fit.patient)
## Call: reitsma.default(data = SR.table, formula = cbind(tsens, tfpr) ~
## patient, method = "ml")
##
## Bivariate diagnostic random-effects meta-analysis
## Estimation method: ML
##
## Fixed-effects coefficients
## Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
## tsens.(Intercept) 1.287 0.641 2.009 0.045 0.031 2.543 *
## tsens.patientyes 0.099 0.728 0.136 0.892 -1.328 1.526
## tfpr.(Intercept) -3.096 1.127 -2.747 0.006 -5.304 -0.887 **
## tfpr.patientyes 0.763 1.291 0.591 0.554 -1.767 3.293
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Variance components: between-studies Std. Dev and correlation matrix
## Std. Dev tsens tfpr
## tsens 0.707 1.000 .
## tfpr 1.508 -0.241 1.000
##
## logLik AIC BIC
## 14.757 -15.514 -10.106
#index test
SR.table$index<-c("yes","yes", "no", "no", "yes", "no", "no", "yes")
fit.index <- mada::reitsma(SR.table,formula = cbind(tsens, tfpr) ~ index,method = "ml")
summary(fit.index)
## Call: reitsma.default(data = SR.table, formula = cbind(tsens, tfpr) ~
## index, method = "ml")
##
## Bivariate diagnostic random-effects meta-analysis
## Estimation method: ML
##
## Fixed-effects coefficients
## Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
## tsens.(Intercept) 1.126 0.394 2.858 0.004 0.354 1.899 **
## tsens.indexyes 0.481 0.577 0.834 0.404 -0.650 1.613
## tfpr.(Intercept) -2.171 0.764 -2.840 0.005 -3.670 -0.673 **
## tfpr.indexyes -0.689 1.089 -0.633 0.527 -2.823 1.445
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Variance components: between-studies Std. Dev and correlation matrix
## Std. Dev tsens tfpr
## tsens 0.652 1.000 .
## tfpr 1.493 -0.169 1.000
##
## logLik AIC BIC
## 15.006 -16.012 -10.603
#reference standardbaujat_TMH<-metafor::baujat(res,xlim=c(0,58),ylim = c(0,43),symbol = "slab",ylab="Influence on Overall Result")
SR.table$standard<-c("unclear","yes", "no", "yes", "unclear", "unclear", "unclear", "yes")
fit.standard <- mada::reitsma(SR.table,formula = cbind(tsens, tfpr) ~ standard,method = "ml")
summary(fit.standard)
## Call: reitsma.default(data = SR.table, formula = cbind(tsens, tfpr) ~
## standard, method = "ml")
##
## Bivariate diagnostic random-effects meta-regression
## Estimation method: ML
##
## Fixed-effects coefficients
## Estimate Std. Error z Pr(>|z|) 95%ci.lb 95%ci.ub
## tsens.(Intercept) -0.027 0.264 -0.104 0.917 -0.546 0.491
## tsens.standardunclear 1.685 0.384 4.388 0.000 0.932 2.437 ***
## tsens.standardyes 1.402 0.371 3.781 0.000 0.675 2.128 ***
## tfpr.(Intercept) -0.872 1.050 -0.831 0.406 -2.930 1.186
## tfpr.standardunclear -0.990 1.182 -0.838 0.402 -3.307 1.326
## tfpr.standardyes -3.049 1.247 -2.446 0.014 -5.492 -0.606 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Variance components: between-studies Std. Dev and correlation matrix
## Std. Dev tsens tfpr
## tsens 0.123 1.000 .
## tfpr 1.046 1.000 1.000
##
## logLik AIC BIC
## 22.150 -26.299 -19.346
#Baujat Plot
par(mar=c(5,4,2,2))
res<-metafor::rma(yi,vi,data=dat,method = "FE",slab = names)
baujat_TMH<-metafor::baujat(res,xlim=c(0,58),ylim = c(0,43),symbol = "slab",ylab="Influence on Overall Result")
baujat_TMH
## x y ids slab
## Mostafa 2020 0.09642097 0.007155780 1 Mostafa 2020
## Panjiar 2019 11.85819206 2.909609521 2 Panjiar 2019
## Yabuki 2019 55.07824454 43.080173368 3 Yabuki 2019
## Rao 2018 19.89229953 0.921460945 4 Rao 2018
## Nurullah 2018 11.92110650 0.512985826 5 Nurullah 2018
## Jain 2017 12.83380494 1.419501454 6 Jain 2017
## Selvi 2016 0.11218485 0.009117155 7 Selvi 2016
## Etezadi 2013 18.02938605 0.648598567 8 Etezadi 2013
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.