#Packages to be used
library(meta)
## Loading 'meta' package (version 4.12-0).
## Type 'help(meta)' for a brief overview.
library(dmetar)
## Extensive documentation for the dmetar package can be found at:
## www.bookdown.org/MathiasHarrer/Doing_Meta_Analysis_in_R/
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
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
library(gemtc)
## Loading required package: coda
##
## Attaching package: 'gemtc'
## The following object is masked from 'package:metafor':
##
## forest
## The following object is masked from 'package:dmetar':
##
## sucra
## The following object is masked from 'package:meta':
##
## forest
library(ggplot2)
library(igraph)
##
## Attaching package: 'igraph'
## The following objects are masked from 'package:dplyr':
##
## as_data_frame, groups, union
## The following objects are masked from 'package:stats':
##
## decompose, spectrum
## The following object is masked from 'package:base':
##
## union
library(ggplot2)
library(scales)
library(facetscales)
#Pairwise analyses: videolaryngoscopes (VLs) together against direct laryngoscopes together
Failed First Intubation Attempt
first<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped First.csv")
length(first$ffirst.e1)
## [1] 26
#Number of comparisons with zero failed first intubation attempts in both arms
first_zeros<-dplyr::filter(first,first$ffirst.e1==0 & first$ffirst.e2==0)
length(first_zeros$ffirst.e1)
## [1] 5
#Table for Meta-analysis of failed first intubation attempts
first_analysis<-dplyr::filter(first,first$ffirst.e1>0 | first$ffirst.e2>0)
#Number of comparisons and patients meta-analized for failed first intubation attempts
length(first_analysis$ffirst.e1)
## [1] 21
sum(first_analysis$ffirst.t1,first_analysis$ffirst.t2)
## [1] 2431
#Meta-analysis for failed first intubation attempts
mbin_first_random<-meta::metabin(ffirst.e1,ffirst.t1,ffirst.e2,ffirst.t2,data = first_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_first_random
## OR 95%-CI %W(random)
## ali 2013 0.2031 [0.0202; 2.0469] 3.7
## Das 2017 0.1724 [0.0189; 1.5759] 3.9
## Fiadjoe 2012 0.4828 [0.0414; 5.6279] 3.5
## Garcia-Marcinkiewicz 2020 0.5651 [0.3165; 1.0088] 7.1
## Giraudon 2017 0.4919 [0.1177; 2.0562] 5.4
## Jagannathan 2017 2.5789 [0.4884; 13.6169] 4.9
## Jain 2018 0.3724 [0.0666; 2.0830] 4.8
## Javaherforooshzadeh 2020 0.6875 [0.2058; 2.2969] 5.9
## Kilinc 2019 3.0000 [0.8538; 10.5413] 5.8
## Kim 2018 1.0000 [0.0605; 16.5338] 3.0
## orozco 2018 0.0541 [0.0142; 0.2056] 5.6
## riveros 2013 4.3457 [0.5263; 35.8805] 4.1
## salama 2019 0.4444 [0.1001; 1.9740] 5.3
## saran 2019 0.1600 [0.0737; 0.3472] 6.8
## singh 2009 0.6429 [0.0995; 4.1530] 4.5
## singh 2017 5.8168 [0.3153; 107.3202] 2.9
## tao 2018 0.1765 [0.0195; 1.5966] 3.9
## vadi 2016 1.7778 [0.4343; 7.2768] 5.5
## vadi 2017 3.4800 [0.7274; 16.6486] 5.1
## vlatten 2012 11.1951 [0.5692; 220.1934] 2.8
## Kim 2008 5.2688 [1.1245; 24.6869] 5.2
##
## Number of studies combined: k = 21
##
## OR 95%-CI t p-value
## Random effects model 0.7779 [0.4129; 1.4657] -0.83 0.4180
## Prediction interval [0.0616; 9.8232]
##
## Quantifying heterogeneity:
## tau^2 = 1.3757 [0.3890; 3.2751]; tau = 1.1729 [0.6237; 1.8097];
## I^2 = 67.3% [48.4%; 79.2%]; H = 1.75 [1.39; 2.19]
##
## Test of heterogeneity:
## Q d.f. p-value
## 61.08 20 < 0.0001
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of failed intubation with direct laryngoscopes
meta::metaprop(event = ffirst.e2,n = ffirst.t2 ,studlab = paste(study),data = first,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## ali 2013 0.2353 [0.0681; 0.4990]
## Das 2017 0.1667 [0.0564; 0.3472]
## Fiadjoe 2012 0.0667 [0.0082; 0.2207]
## Garcia-Marcinkiewicz 2020 0.1223 [0.0862; 0.1667]
## Giraudon 2017 0.0896 [0.0336; 0.1848]
## Jagannathan 2017 0.0200 [0.0024; 0.0704]
## Jain 2018 0.1562 [0.0528; 0.3279]
## Javaherforooshzadeh 2020 0.2667 [0.1228; 0.4589]
## Kilinc 2019 0.1000 [0.0279; 0.2366]
## Kim 2018 0.0238 [0.0006; 0.1257]
## Manirajan 2020 0.0000 [0.0000; 0.0903]
## orozco 2018 0.6000 [0.4333; 0.7514]
## pangasa 2019 0.0000 [0.0000; 0.1372]
## redel 2009 0.0000 [0.0000; 0.1157]
## riveros 2013 0.0222 [0.0006; 0.1177]
## salama 2019 0.2000 [0.0771; 0.3857]
## saran 2019 0.5556 [0.4336; 0.6728]
## shayeghi 2007 0.0000 [0.0000; 0.1089]
## singh 2009 0.1000 [0.0211; 0.2653]
## singh 2017 0.0000 [0.0000; 0.0711]
## tao 2018 0.1429 [0.0481; 0.3026]
## vadi 2016 0.1579 [0.0338; 0.3958]
## vadi 2017 0.0645 [0.0079; 0.2142]
## vlatten 2009 0.0000 [0.0000; 0.1323]
## vlatten 2012 0.0000 [0.0000; 0.1372]
## Kim 2008 0.0200 [0.0024; 0.0704]
##
## Number of studies combined: k = 26
##
## proportion 95%-CI
## Random effects model 0.0607 [0.0309; 0.1158]
##
## Quantifying heterogeneity:
## tau^2 = 2.3684; tau = 1.5389; I^2 = 90.2%; H = 3.20
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 139.89 25 < 0.0001 Wald-type
## 240.26 25 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
#Forest plot for failed first intubation attempt
meta::forest(mbin_first_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for failed first intubation attempts
dmetar::find.outliers(mbin_first_random)
## Identified outliers (random-effects model)
## ------------------------------------------
## "orozco 2018", "saran 2019"
##
## Results with outliers removed
## -----------------------------
## OR 95%-CI %W(random) exclude
## ali 2013 0.2031 [0.0202; 2.0469] 4.0
## Das 2017 0.1724 [0.0189; 1.5759] 4.2
## Fiadjoe 2012 0.4828 [0.0414; 5.6279] 3.7
## Garcia-Marcinkiewicz 2020 0.5651 [0.3165; 1.0088] 9.1
## Giraudon 2017 0.4919 [0.1177; 2.0562] 6.4
## Jagannathan 2017 2.5789 [0.4884; 13.6169] 5.6
## Jain 2018 0.3724 [0.0666; 2.0830] 5.5
## Javaherforooshzadeh 2020 0.6875 [0.2058; 2.2969] 7.1
## Kilinc 2019 3.0000 [0.8538; 10.5413] 6.9
## Kim 2018 1.0000 [0.0605; 16.5338] 3.1
## orozco 2018 0.0541 [0.0142; 0.2056] 0.0 *
## riveros 2013 4.3457 [0.5263; 35.8805] 4.5
## salama 2019 0.4444 [0.1001; 1.9740] 6.2
## saran 2019 0.1600 [0.0737; 0.3472] 0.0 *
## singh 2009 0.6429 [0.0995; 4.1530] 5.1
## singh 2017 5.8168 [0.3153; 107.3202] 3.0
## tao 2018 0.1765 [0.0195; 1.5966] 4.3
## vadi 2016 1.7778 [0.4343; 7.2768] 6.4
## vadi 2017 3.4800 [0.7274; 16.6486] 5.9
## vlatten 2012 11.1951 [0.5692; 220.1934] 2.9
## Kim 2008 5.2688 [1.1245; 24.6869] 6.0
##
## Number of studies combined: k = 19
##
## OR 95%-CI t p-value
## Random effects model 1.0388 [0.5875; 1.8369] 0.14 0.8899
## Prediction interval [0.1252; 8.6213]
##
## Quantifying heterogeneity:
## tau^2 = 0.9324 [0.0035; 2.3727]; tau = 0.9656 [0.0595; 1.5404];
## I^2 = 43.3% [2.6%; 67.0%]; H = 1.33 [1.01; 1.74]
##
## Test of heterogeneity:
## Q d.f. p-value
## 31.76 18 0.0235
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Influence Analysis for failed first intubation attempts
inf_analysis_first<-dmetar::InfluenceAnalysis(mbin_first_random,random = TRUE)
## [===========================================================================] DONE
plot(inf_analysis_first,"baujat")
#Meta-regression for failed first intubation attempts
#Controling for population characteristics (general, neck immobilization, cleft lip and palate)
meta::metareg(mbin_first_random,population)
##
## Mixed-Effects Model (k = 21; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 1.3563 (SE = 0.4999)
## tau (square root of estimated tau^2 value): 1.1646
## I^2 (residual heterogeneity / unaccounted variability): 72.02%
## H^2 (unaccounted variability / sampling variability): 3.57
## R^2 (amount of heterogeneity accounted for): 1.41%
##
## Test for Residual Heterogeneity:
## QE(df = 19) = 56.0845, p-val < .0001
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 19) = 1.3463, p-val = 0.2603
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 1.2470 1.3264 0.9401 0.3589 -1.5292 4.0233
## populationgeneral -1.5803 1.3620 -1.1603 0.2603 -4.4309 1.2704
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for operator experience
meta::metareg(mbin_first_random,experience)
##
## Mixed-Effects Model (k = 21; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 1.5080 (SE = 0.5504)
## tau (square root of estimated tau^2 value): 1.2280
## I^2 (residual heterogeneity / unaccounted variability): 68.30%
## H^2 (unaccounted variability / sampling variability): 3.15
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 18) = 59.7980, p-val < .0001
##
## Test of Moderators (coefficients 2:3):
## F(df1 = 2, df2 = 18) = 0.1041, p-val = 0.9016
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.5708 1.2120 -0.4709 0.6433 -3.1172 1.9756
## experienceexperienced 0.2657 1.2768 0.2081 0.8375 -2.4169 2.9482
## experiencenon-experienced 0.5217 1.3441 0.3881 0.7025 -2.3022 3.3456
##
## intrcpt
## experienceexperienced
## experiencenon-experienced
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for age group
meta::metareg(mbin_first_random,age.group)
##
## Mixed-Effects Model (k = 21; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.8675 (SE = 0.4434)
## tau (square root of estimated tau^2 value): 0.9314
## I^2 (residual heterogeneity / unaccounted variability): 54.63%
## H^2 (unaccounted variability / sampling variability): 2.20
## R^2 (amount of heterogeneity accounted for): 36.94%
##
## Test for Residual Heterogeneity:
## QE(df = 15) = 27.1045, p-val = 0.0279
##
## Test of Moderators (coefficients 2:6):
## F(df1 = 5, df2 = 15) = 3.3486, p-val = 0.0314
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.6686 0.3992 -1.6751 0.1146 -1.5194 0.1822
## age.groupall groups 1.7159 0.7426 2.3105 0.0355 0.1330 3.2988
## age.groupinfant -0.0564 0.7183 -0.0786 0.9384 -1.5874 1.4745
## age.groupinfant + > 1 year 2.1989 0.7845 2.8028 0.0134 0.5267 3.8710
## age.groupneonate -0.5158 0.8913 -0.5787 0.5714 -2.4155 1.3839
## age.groupneonate + infant -0.6550 0.7986 -0.8201 0.4250 -2.3572 1.0473
##
## intrcpt
## age.groupall groups *
## age.groupinfant
## age.groupinfant + > 1 year *
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for predicted difficult intubation
meta::metareg(mbin_first_random,predicted)
##
## Mixed-Effects Model (k = 21; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 1.1948 (SE = 0.4638)
## tau (square root of estimated tau^2 value): 1.0931
## I^2 (residual heterogeneity / unaccounted variability): 69.30%
## H^2 (unaccounted variability / sampling variability): 3.26
## R^2 (amount of heterogeneity accounted for): 13.15%
##
## Test for Residual Heterogeneity:
## QE(df = 19) = 47.8654, p-val = 0.0003
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 19) = 4.3110, p-val = 0.0517
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 1.4554 0.8719 1.6693 0.1115 -0.3695 3.2802
## predictedeasy -1.9120 0.9209 -2.0763 0.0517 -3.8394 0.0154 .
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Multiple Meta-regression for failed first intubation attempts
str(first)
## 'data.frame': 26 obs. of 14 variables:
## $ study : Factor w/ 26 levels "ali 2013","Das 2017",..: 1 2 3 4 5 6 7 8 9 11 ...
## $ X : logi NA NA NA NA NA NA ...
## $ population: Factor w/ 2 levels "cervical immobillization",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ age.group : Factor w/ 6 levels "> 1 year","all groups",..: 1 1 3 3 1 4 3 1 1 1 ...
## $ predicted : Factor w/ 2 levels "difficult","easy": 2 2 2 2 2 2 2 2 2 2 ...
## $ country : Factor w/ 12 levels "canada","china",..: 7 7 11 10 5 10 7 8 9 3 ...
## $ nature : Factor w/ 2 levels "","elective": 2 2 2 2 2 2 1 2 2 2 ...
## $ experience: Factor w/ 3 levels "","experienced",..: 2 2 2 1 3 2 2 2 2 2 ...
## $ nmba : int 1 1 1 1 0 1 1 1 1 1 ...
## $ reference : Factor w/ 1 level "direct laryngoscope": 1 1 1 1 1 1 1 1 1 1 ...
## $ ffirst.e1 : int 1 1 1 20 3 5 2 6 10 1 ...
## $ ffirst.t1 : int 17 30 30 274 65 100 31 30 40 42 ...
## $ ffirst.e2 : int 4 5 2 34 6 2 5 8 4 1 ...
## $ ffirst.t2 : int 17 30 30 278 67 100 32 30 40 42 ...
model_first<-metafor::rma.uni(ai=ffirst.e1,n1i = ffirst.t1,ci=ffirst.e2,n2i = ffirst.t2,data = first,method = "ML", measure = "OR", mods = ~predicted+age.group,test = "knha")
model_first
##
## Mixed-Effects Model (k = 26; tau^2 estimator: ML)
##
## tau^2 (estimated amount of residual heterogeneity): 0.1660 (SE = 0.2007)
## tau (square root of estimated tau^2 value): 0.4074
## I^2 (residual heterogeneity / unaccounted variability): 15.57%
## H^2 (unaccounted variability / sampling variability): 1.18
## R^2 (amount of heterogeneity accounted for): 82.80%
##
## Test for Residual Heterogeneity:
## QE(df = 19) = 27.8396, p-val = 0.0866
##
## Test of Moderators (coefficients 2:7):
## F(df1 = 6, df2 = 19) = 3.4118, p-val = 0.0186
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.1516 0.9214 -0.1645 0.8710 -2.0801 1.7769
## predictedeasy -0.5052 0.8503 -0.5942 0.5594 -2.2849 1.2744
## age.groupall groups 1.4867 0.7404 2.0080 0.0591 -0.0630 3.0364
## age.groupinfant 0.0448 0.5602 0.0800 0.9371 -1.1277 1.2174
## age.groupinfant + > 1 year 1.7272 0.7633 2.2629 0.0355 0.1297 3.3247
## age.groupneonate -0.4705 0.8266 -0.5692 0.5759 -2.2007 1.2596
## age.groupneonate + infant -0.8543 0.6388 -1.3373 0.1969 -2.1914 0.4828
##
## intrcpt
## predictedeasy
## age.groupall groups .
## age.groupinfant
## age.groupinfant + > 1 year *
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
metafor::permutest(model_first)
## Running 1000 iterations for approximate permutation test.
##
|
| | 0%
|
| | 1%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|== | 4%
|
|=== | 4%
|
|=== | 5%
|
|==== | 5%
|
|==== | 6%
|
|===== | 6%
|
|===== | 7%
|
|===== | 8%
|
|====== | 8%
|
|====== | 9%
|
|======= | 9%
|
|======= | 10%
|
|======= | 11%
|
|======== | 11%
|
|======== | 12%
|
|========= | 12%
|
|========= | 13%
|
|========= | 14%
|
|========== | 14%
|
|========== | 15%
|
|=========== | 15%
|
|=========== | 16%
|
|============ | 16%
|
|============ | 17%
|
|============ | 18%
|
|============= | 18%
|
|============= | 19%
|
|============== | 19%
|
|============== | 20%
|
|============== | 21%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 22%
|
|================ | 23%
|
|================ | 24%
|
|================= | 24%
|
|================= | 25%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 26%
|
|=================== | 27%
|
|=================== | 28%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 29%
|
|===================== | 30%
|
|===================== | 31%
|
|====================== | 31%
|
|====================== | 32%
|
|======================= | 32%
|
|======================= | 33%
|
|======================= | 34%
|
|======================== | 34%
|
|======================== | 35%
|
|========================= | 35%
|
|========================= | 36%
|
|========================== | 36%
|
|========================== | 37%Error in rma.uni(x$yi, x$vi, weights = x$weights, mods = cbind(X[sample(x$k), :
## Fisher scoring algorithm did not converge. See 'help(rma)' for possible remedies.
##
|
|========================== | 38%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 39%
|
|============================ | 40%
|
|============================ | 41%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 42%
|
|============================== | 43%
|
|============================== | 44%
|
|=============================== | 44%
|
|=============================== | 45%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 46%
|
|================================= | 47%
|
|================================= | 48%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 49%
|
|=================================== | 50%
|
|=================================== | 51%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 52%
|
|===================================== | 53%
|
|===================================== | 54%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 55%
|
|======================================= | 56%
|
|======================================== | 56%
|
|======================================== | 57%
|
|======================================== | 58%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 59%
|
|========================================== | 60%
|
|========================================== | 61%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 62%
|
|============================================ | 63%
|
|============================================ | 64%
|
|============================================= | 64%
|
|============================================= | 65%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 66%
|
|=============================================== | 67%
|
|=============================================== | 68%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 69%
|
|================================================= | 70%
|
|================================================= | 71%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 72%
|
|=================================================== | 73%
|
|=================================================== | 74%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 76%
|
|====================================================== | 77%
|
|====================================================== | 78%
|
|======================================================= | 78%
|
|======================================================= | 79%
|
|======================================================== | 79%
|
|======================================================== | 80%
|
|======================================================== | 81%
|
|========================================================= | 81%
|
|========================================================= | 82%
|
|========================================================== | 82%
|
|========================================================== | 83%
|
|========================================================== | 84%
|
|=========================================================== | 84%
|
|=========================================================== | 85%
|
|============================================================ | 85%
|
|============================================================ | 86%
|
|============================================================= | 86%
|
|============================================================= | 87%
|
|============================================================= | 88%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 89%
|
|=============================================================== | 90%
|
|=============================================================== | 91%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 92%
|
|================================================================= | 93%
|
|================================================================= | 94%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 96%
|
|==================================================================== | 97%
|
|==================================================================== | 98%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 99%
|
|======================================================================| 100%
##
## Test of Moderators (coefficients 2:7):
## F(df1 = 6, df2 = 19) = 3.4118, p-val* = 0.0950
##
## Model Results:
##
## estimate se tval pval* ci.lb ci.ub
## intrcpt -0.1516 0.9214 -0.1645 0.8820 -2.0801 1.7769
## predictedeasy -0.5052 0.8503 -0.5942 0.5960 -2.2849 1.2744
## age.groupall groups 1.4867 0.7404 2.0080 0.1030 -0.0630 3.0364
## age.groupinfant 0.0448 0.5602 0.0800 0.9450 -1.1277 1.2174
## age.groupinfant + > 1 year 1.7272 0.7633 2.2629 0.0750 0.1297 3.3247
## age.groupneonate -0.4705 0.8266 -0.5692 0.6390 -2.2007 1.2596
## age.groupneonate + infant -0.8543 0.6388 -1.3373 0.2610 -2.1914 0.4828
##
## intrcpt
## predictedeasy
## age.groupall groups
## age.groupinfant
## age.groupinfant + > 1 year .
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Subgroup analysis for failed first intubation attempt by age group
sub_first_analysis<-first_analysis[first_analysis$age.group=="neonate" | first_analysis$age.group=="infant" | first_analysis$age.group=="neonate + infant",]
mbin_sub_first_random<-meta::metabin(ffirst.e1,ffirst.t1,ffirst.e2,ffirst.t2,data = sub_first_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_first_random
## OR 95%-CI %W(random)
## Fiadjoe 2012 0.4828 [0.0414; 5.6279] 4.5
## Garcia-Marcinkiewicz 2020 0.5651 [0.3165; 1.0088] 36.0
## Jain 2018 0.3724 [0.0666; 2.0830] 8.5
## salama 2019 0.4444 [0.1001; 1.9740] 10.9
## saran 2019 0.1600 [0.0737; 0.3472] 27.2
## singh 2009 0.6429 [0.0995; 4.1530] 7.4
## tao 2018 0.1765 [0.0195; 1.5966] 5.5
##
## Number of studies combined: k = 7
##
## OR 95%-CI t p-value
## Random effects model 0.3545 [0.2026; 0.6201] -4.54 0.0039
## Prediction interval [0.1199; 1.0477]
##
## Quantifying heterogeneity:
## tau^2 = 0.1255 [0.0000; 0.9793]; tau = 0.3543 [0.0000; 0.9896];
## I^2 = 19.2% [0.0%; 62.9%]; H = 1.11 [1.00; 1.64]
##
## Test of heterogeneity:
## Q d.f. p-value
## 7.42 6 0.2835
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
length(sub_first_analysis$ffirst.e1)
## [1] 7
sum(sub_first_analysis$ffirst.t1,sub_first_analysis$ffirst.t2)
## [1] 1009
sub_first_analysis.2<-first_analysis[first_analysis$age.group=="> 1 year",]
mbin_sub_first_random.2<-meta::metabin(ffirst.e1,ffirst.t1,ffirst.e2,ffirst.t2,data = sub_first_analysis.2,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_first_random.2
## OR 95%-CI %W(random)
## ali 2013 0.2031 [0.0202; 2.0469] 10.5
## Das 2017 0.1724 [0.0189; 1.5759] 11.0
## Giraudon 2017 0.4919 [0.1177; 2.0562] 14.8
## Javaherforooshzadeh 2020 0.6875 [0.2058; 2.2969] 15.9
## Kilinc 2019 3.0000 [0.8538; 10.5413] 15.7
## Kim 2018 1.0000 [0.0605; 16.5338] 8.6
## orozco 2018 0.0541 [0.0142; 0.2056] 15.3
## singh 2017 5.8168 [0.3153; 107.3202] 8.3
##
## Number of studies combined: k = 8
##
## OR 95%-CI t p-value
## Random effects model 0.5206 [0.1461; 1.8548] -1.21 0.2638
## Prediction interval [0.0182; 14.9043]
##
## Quantifying heterogeneity:
## tau^2 = 1.5906 [0.2408; 8.6792]; tau = 1.2612 [0.4907; 2.9460];
## I^2 = 69.8% [37.1%; 85.5%]; H = 1.82 [1.26; 2.62]
##
## Test of heterogeneity:
## Q d.f. p-value
## 23.15 7 0.0016
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
length(sub_first_analysis.2$ffirst.e1)
## [1] 8
sum(sub_first_analysis.2$ffirst.t1,sub_first_analysis.2$ffirst.t2)
## [1] 680
#Estimated probability of failed intubation with direct laryngoscopes in neonates and infants up to 1 year old.
meta::metaprop(event = ffirst.e2,n = ffirst.t2 ,studlab = paste(study),data = sub_first_analysis,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Fiadjoe 2012 0.0667 [0.0082; 0.2207]
## Garcia-Marcinkiewicz 2020 0.1223 [0.0862; 0.1667]
## Jain 2018 0.1562 [0.0528; 0.3279]
## salama 2019 0.2000 [0.0771; 0.3857]
## saran 2019 0.5556 [0.4336; 0.6728]
## singh 2009 0.1000 [0.0211; 0.2653]
## tao 2018 0.1429 [0.0481; 0.3026]
##
## Number of studies combined: k = 7
##
## proportion 95%-CI
## Random effects model 0.1681 [0.0909; 0.2900]
##
## Quantifying heterogeneity:
## tau^2 = 0.6867; tau = 0.8287; I^2 = 84.0%; H = 2.50
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 61.83 6 < 0.0001 Wald-type
## 63.01 6 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
Post-hoc subgroup analysis of failed first intubation attempt for studies using neuromuscular blockade
first_analysis$nmba<-as.factor(first_analysis$nmba)
sub_first_analysis.NMBA<-first_analysis[first_analysis$nmba=="1",]
length(sub_first_analysis.NMBA$ffirst.e1)
## [1] 17
sum(sub_first_analysis.NMBA$ffirst.t1,sub_first_analysis.NMBA$ffirst.t2)
## [1] 2036
mbin_sub_first_analysis.NMBA_random<-meta::metabin(ffirst.e1,ffirst.t1,ffirst.e2,ffirst.t2,data = sub_first_analysis.NMBA,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_first_analysis.NMBA_random
## OR 95%-CI %W(random)
## ali 2013 0.2031 [0.0202; 2.0469] 4.5
## Das 2017 0.1724 [0.0189; 1.5759] 4.7
## Fiadjoe 2012 0.4828 [0.0414; 5.6279] 4.2
## Garcia-Marcinkiewicz 2020 0.5651 [0.3165; 1.0088] 9.1
## Jagannathan 2017 2.5789 [0.4884; 13.6169] 6.1
## Jain 2018 0.3724 [0.0666; 2.0830] 5.9
## Javaherforooshzadeh 2020 0.6875 [0.2058; 2.2969] 7.4
## Kilinc 2019 3.0000 [0.8538; 10.5413] 7.3
## Kim 2018 1.0000 [0.0605; 16.5338] 3.6
## orozco 2018 0.0541 [0.0142; 0.2056] 7.0
## riveros 2013 4.3457 [0.5263; 35.8805] 5.0
## salama 2019 0.4444 [0.1001; 1.9740] 6.6
## singh 2009 0.6429 [0.0995; 4.1530] 5.6
## singh 2017 5.8168 [0.3153; 107.3202] 3.4
## vadi 2016 1.7778 [0.4343; 7.2768] 6.8
## vadi 2017 3.4800 [0.7274; 16.6486] 6.4
## Kim 2008 5.2688 [1.1245; 24.6869] 6.4
##
## Number of studies combined: k = 17
##
## OR 95%-CI t p-value
## Random effects model 0.8950 [0.4507; 1.7774] -0.34 0.7362
## Prediction interval [0.0778; 10.2985]
##
## Quantifying heterogeneity:
## tau^2 = 1.2089 [0.2655; 3.3064]; tau = 1.0995 [0.5152; 1.8184];
## I^2 = 62.4% [36.6%; 77.8%]; H = 1.63 [1.26; 2.12]
##
## Test of heterogeneity:
## Q d.f. p-value
## 42.59 16 0.0003
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
sub_first_analysis.NMBA_infants<-first_analysis[first_analysis$nmba=="1" & (first_analysis$age.group=="neonate" |first_analysis$age.group=="infant" | first_analysis$age.group=="neonate + infant") ,]
length(sub_first_analysis.NMBA_infants$ffirst.e1)
## [1] 5
sum(sub_first_analysis.NMBA_infants$ffirst.t1,sub_first_analysis.NMBA_infants$ffirst.t2)
## [1] 795
mbin_sub_first_analysis.NMBA_infants_random<-meta::metabin(ffirst.e1,ffirst.t1,ffirst.e2,ffirst.t2,data = sub_first_analysis.NMBA_infants,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_first_analysis.NMBA_infants_random
## OR 95%-CI %W(random)
## Fiadjoe 2012 0.4828 [0.0414; 5.6279] 4.0
## Garcia-Marcinkiewicz 2020 0.5651 [0.3165; 1.0088] 70.1
## Jain 2018 0.3724 [0.0666; 2.0830] 8.1
## salama 2019 0.4444 [0.1001; 1.9740] 10.8
## singh 2009 0.6429 [0.0995; 4.1530] 6.9
##
## Number of studies combined: k = 5
##
## OR 95%-CI t p-value
## Random effects model 0.5336 [0.4400; 0.6470] -9.05 0.0008
## Prediction interval [0.4062; 0.7009]
##
## Quantifying heterogeneity:
## tau^2 = 0.0025 [<0.0000; <0.0000]; tau = 0.0503 [<0.0000; <0.0000];
## I^2 = 0.0% [0.0%; 0.0%]; H = 1.00 [1.00; 1.00]
##
## Test of heterogeneity:
## Q d.f. p-value
## 0.31 4 0.9893
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
meta::funnel(mbin_sub_first_analysis.NMBA_infants_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
#Forest plot for failed first intubation attempt in neonates and infants
meta::forest(mbin_sub_first_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Funnel Plot for failed first intubation attempt
meta::funnel(mbin_first_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mbin_first_random, method.bias = "linreg")
##
## Linear regression test of funnel plot asymmetry
##
## data: mbin_first_random
## t = 1.424, df = 19, p-value = 0.1707
## alternative hypothesis: asymmetry in funnel plot
## sample estimates:
## bias se.bias intercept
## 1.2045613 0.8458885 -1.2627519
dmetar::eggers.test(mbin_first_random)
## Intercept ConfidenceInterval t p
## Egger's test 1.205 -0.363-2.773 1.424 0.17066
meta::funnel(mbin_first_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
Failed Intubation Attempts
fia<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Fail.csv")
length(fia$fint.e1)
## [1] 28
#Number of comparisons with zero failed intubation in both arms
fia_zeros<-dplyr::filter(fia,fia$fint.e1==0 & fia$fint.e2==0)
length(fia_zeros$fint.e1)
## [1] 18
#Table for Meta-analysis of failed intubation
fia_analysis<-dplyr::filter(fia,fia$fint.e1>0 | fia$fint.e2>0)
#Number of comparisons and patients meta-analized for failed intubation
length(fia_analysis$fint.e1)
## [1] 10
sum(na.omit(fia_analysis$fint.t1),na.omit(fia_analysis$fint.t2))
## [1] 1385
#Meta-analysis for failed intubation
mbin_fia_fixed<-meta::metabin(fint.e1,fint.t1,fint.e2,fint.t2,data = fia_analysis,studlab = paste(study),comb.fixed = TRUE,comb.random = FALSE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia_fixed
## OR 95%-CI %W(fixed)
## Garcia-Marcinkiewicz 2020 0.4981 [0.1680; 1.4768] 33.9
## Jagannathan 2017 3.0302 [0.1220; 75.2789] 1.7
## Javaherforooshzadeh 2020 0.2857 [0.0527; 1.5494] 19.4
## Kim 2018 1.0000 [0.0605; 16.5338] 3.4
## Nileshwar 2010 18.3793 [0.9581; 352.5684] 1.2
## Saran 2019 1.0000 [0.3724; 2.6851] 27.4
## Shulman 2000 2.0870 [0.1769; 24.6149] 3.2
## Tao 2018 0.3239 [0.0128; 8.2280] 5.1
## Vlatten 2012 11.1951 [0.5692; 220.1934] 1.4
## Yi 2019 3.0923 [0.3135; 30.4982] 3.3
##
## Number of studies combined: k = 10
##
## OR 95%-CI z p-value
## Fixed effect model 1.1461 [0.6956; 1.8884] 0.54 0.5925
## Prediction interval [0.1044; 16.0558]
##
## Quantifying heterogeneity:
## tau^2 = 1.0219 [0.0000; 4.8609]; tau = 1.0109 [0.0000; 2.2047];
## I^2 = 25.8% [0.0%; 64.2%]; H = 1.16 [1.00; 1.67]
##
## Test of heterogeneity:
## Q d.f. p-value
## 12.14 9 0.2057
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Continuity correction of 0.5 in studies with zero cell frequencies
mbin_fia_random<-meta::metabin(fint.e1,fint.t1,fint.e2,fint.t2,data = fia_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia_random
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.4981 [0.1680; 1.4768] 17.2
## Jagannathan 2017 3.0302 [0.1220; 75.2789] 6.2
## Javaherforooshzadeh 2020 0.2857 [0.0527; 1.5494] 13.0
## Kim 2018 1.0000 [0.0605; 16.5338] 7.5
## Nileshwar 2010 18.3793 [0.9581; 352.5684] 6.9
## Saran 2019 1.0000 [0.3724; 2.6851] 17.9
## Shulman 2000 2.0870 [0.1769; 24.6149] 8.8
## Tao 2018 0.3239 [0.0128; 8.2280] 6.1
## Vlatten 2012 11.1951 [0.5692; 220.1934] 6.9
## Yi 2019 3.0923 [0.3135; 30.4982] 9.6
##
## Number of studies combined: k = 10
##
## OR 95%-CI t p-value
## Random effects model 1.2946 [0.5090; 3.2928] 0.63 0.5470
## Prediction interval [0.1044; 16.0558]
##
## Quantifying heterogeneity:
## tau^2 = 1.0219 [0.0000; 4.8609]; tau = 1.0109 [0.0000; 2.2047];
## I^2 = 25.8% [0.0%; 64.2%]; H = 1.16 [1.00; 1.67]
##
## Test of heterogeneity:
## Q d.f. p-value
## 12.14 9 0.2057
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of failed intubation with direct laryngoscopes
meta::metaprop(event = fint.e2,n = fint.t2 ,studlab = study,data = fia,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE,control=list(stepadj=0.5))
## proportion 95%-CI
## Ali 2013 0.0000 [0.0000; 0.1951]
## Das 2017 0.0000 [0.0000; 0.1157]
## Fiadjoe 2012 0.0000 [0.0000; 0.1157]
## Garcia-Marcinkiewicz 2020 0.0360 [0.0174; 0.0652]
## Giraudon 2017 0.0000 [0.0000; 0.0536]
## Inal 2010 0.0000 [0.0000; 0.1372]
## Jagannathan 2017 0.0000 [0.0000; 0.0362]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Javaherforooshzadeh 2020 0.2000 [0.0771; 0.3857]
## Kilinc 2019 0.0000 [0.0000; 0.0881]
## Kim 2018 0.0238 [0.0006; 0.1257]
## Nileshwar 2010 0.0000 [0.0000; 0.1684]
## Orozco 2018 0.0000 [0.0000; 0.0881]
## Pangasa 2019 0.0000 [0.0000; 0.1372]
## Redel 2009 0.0000 [0.0000; 0.1157]
## Riad 2012 0.0000 [0.0000; 0.1372]
## Salama 2019 0.0000 [0.0000; 0.1157]
## Saran 2019 0.1250 [0.0588; 0.2241]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Shulman 2000 0.0400 [0.0010; 0.2035]
## Singh 2009 0.0000 [0.0000; 0.1157]
## Singh 2017 0.0000 [0.0000; 0.0711]
## Tao 2018 0.0286 [0.0007; 0.1492]
## Vadi 2017 0.0000 [0.0000; 0.1122]
## Vlatten 2009 0.0000 [0.0000; 0.1323]
## Vlatten 2012 0.0000 [0.0000; 0.1372]
## White 2012 0.0000 [0.0000; 0.1157]
## Yi 2019 0.0147 [0.0004; 0.0792]
##
## Number of studies combined: k = 28
##
## proportion 95%-CI
## Random effects model 0.0035 [0.0006; 0.0196]
##
## Quantifying heterogeneity:
## tau^2 = 3.9784; tau = 1.9946; I^2 = 82.2%; H = 2.37
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 19.91 27 0.8346 Wald-type
## 69.46 27 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
#Forest plot for failed intubation
meta::forest(mbin_fia_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Direct Laryngoscopes",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for failed intubation
dmetar::find.outliers(mbin_fia_random)
## No outliers detected (random-effects model).
#Influence Analysis for failed intubation
inf_analysis_fia<-dmetar::InfluenceAnalysis(mbin_fia_random,random = TRUE)
## [===========================================================================] DONE
plot(inf_analysis_fia,"baujat")
#Meta-regression for failed intubation
#Controling for population characteristics (general, neck immobilization, cleft palate)
meta::metareg(mbin_fia_random,~population)
##
## Mixed-Effects Model (k = 10; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.7518 (SE = 0.6034)
## tau (square root of estimated tau^2 value): 0.8671
## I^2 (residual heterogeneity / unaccounted variability): 45.83%
## H^2 (unaccounted variability / sampling variability): 1.85
## R^2 (amount of heterogeneity accounted for): 26.43%
##
## Test for Residual Heterogeneity:
## QE(df = 8) = 8.1890, p-val = 0.4152
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 8) = 4.1382, p-val = 0.0764
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 2.9112 1.3700 2.1250 0.0663 -0.2479 6.0704 .
## populationgeneral -2.8819 1.4167 -2.0343 0.0764 -6.1487 0.3850 .
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for operator experience
meta::metareg(mbin_fia_random,~experience)
##
## Mixed-Effects Model (k = 10; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 1.1401 (SE = 0.7815)
## tau (square root of estimated tau^2 value): 1.0678
## I^2 (residual heterogeneity / unaccounted variability): 41.57%
## H^2 (unaccounted variability / sampling variability): 1.71
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 10.1351, p-val = 0.1810
##
## Test of Moderators (coefficients 2:3):
## F(df1 = 2, df2 = 7) = 0.5397, p-val = 0.6054
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.6969 1.0703 -0.6511 0.5358 -3.2277 1.8340
## experienceexperienced 1.0712 1.2133 0.8829 0.4066 -1.7978 3.9401
## experiencenon-experienced 1.3920 1.3897 1.0016 0.3499 -1.8942 4.6781
##
## intrcpt
## experienceexperienced
## experiencenon-experienced
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for age group
meta::metareg(mbin_fia_random,age.group)
## Warning in rma.uni(yi = TE[!exclude], sei = seTE[!exclude], data = dataset, :
## Redundant predictors dropped from the model.
##
## Mixed-Effects Model (k = 10; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 1.0929 (SE = 0.9075)
## tau (square root of estimated tau^2 value): 1.0454
## I^2 (residual heterogeneity / unaccounted variability): 40.88%
## H^2 (unaccounted variability / sampling variability): 1.69
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 5) = 7.2404, p-val = 0.2034
##
## Test of Moderators (coefficients 2:5):
## F(df1 = 4, df2 = 5) = 0.8382, p-val = 0.5554
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 0.4729 0.6339 0.7460 0.4892 -1.1565 2.1023
## age.groupinfant -1.1698 1.2221 -0.9572 0.3824 -4.3113 1.9718
## age.groupinfant + > 1 year 1.3234 1.3409 0.9870 0.3690 -2.1234 4.7702
## age.groupneonate -1.6001 1.8378 -0.8707 0.4238 -6.3242 3.1241
## age.groupneonate + infant -0.4729 1.2049 -0.3925 0.7109 -3.5703 2.6245
##
## intrcpt
## age.groupinfant
## age.groupinfant + > 1 year
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for predicted difficult intubation
meta::metareg(mbin_fia_random,predicted)
##
## Mixed-Effects Model (k = 10; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.7518 (SE = 0.6034)
## tau (square root of estimated tau^2 value): 0.8671
## I^2 (residual heterogeneity / unaccounted variability): 45.83%
## H^2 (unaccounted variability / sampling variability): 1.85
## R^2 (amount of heterogeneity accounted for): 26.43%
##
## Test for Residual Heterogeneity:
## QE(df = 8) = 8.1890, p-val = 0.4152
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 8) = 4.1382, p-val = 0.0764
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 2.9112 1.3700 2.1250 0.0663 -0.2479 6.0704 .
## predictedeasy -2.8819 1.4167 -2.0343 0.0764 -6.1487 0.3850 .
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Subgroup analysis for failed intubation in neonates and infants
fia.infant<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Fail Neo & Infant.csv")
length(fia.infant$fint.e1)
## [1] 8
#Number of comparisons with zero failed intubation in both arms
fia.infant_zeros<-dplyr::filter(fia.infant,fia.infant$fint.e1==0 & fia.infant$fint.e2==0)
length(fia.infant_zeros$fint.e1)
## [1] 5
#Table for Meta-analysis of failed intubation in neonates and infants
fia.infant_analysis<-dplyr::filter(fia.infant,fia.infant$fint.e1>0 | fia.infant$fint.e2>0)
#Number of comparisons and patients meta-analized for failed intubation
length(fia.infant_analysis$fint.e1)
## [1] 3
sum(na.omit(fia.infant_analysis$fint.t1),na.omit(fia.infant_analysis$fint.t2))
## [1] 766
#Meta-analysis for failed intubation in neonates and infants
mbin_fia.infant_fixed<-meta::metabin(fint.e1,fint.t1,fint.e2,fint.t2,data = fia.infant_analysis,studlab = paste(study),comb.fixed = TRUE,comb.random = FALSE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia.infant_fixed
## OR 95%-CI %W(fixed)
## Garcia-Marcinkiewicz 2020 0.4981 [0.1680; 1.4768] 51.0
## Saran 2019 1.0000 [0.3724; 2.6851] 41.2
## Tao 2018 0.3239 [0.0128; 8.2280] 7.7
##
## Number of studies combined: k = 3
##
## OR 95%-CI z p-value
## Fixed effect model 0.6916 [0.3431; 1.3940] -1.03 0.3025
## Prediction interval [0.0051; 93.4124]
##
## Quantifying heterogeneity:
## tau^2 = 0.0743 [0.0000; 11.5469]; tau = 0.2725 [0.0000; 3.3981];
## I^2 = 0.0% [0.0%; 81.0%]; H = 1.00 [1.00; 2.29]
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.10 2 0.5783
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Continuity correction of 0.5 in studies with zero cell frequencies
mbin_fia.infant_random<-meta::metabin(fint.e1,fint.t1,fint.e2,fint.t2,data = fia.infant_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia.infant_random
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.4981 [0.1680; 1.4768] 43.5
## Saran 2019 1.0000 [0.3724; 2.6851] 50.6
## Tao 2018 0.3239 [0.0128; 8.2280] 5.9
##
## Number of studies combined: k = 3
##
## OR 95%-CI t p-value
## Random effects model 0.6908 [0.2128; 2.2418] -1.35 0.3089
## Prediction interval [0.0051; 93.4124]
##
## Quantifying heterogeneity:
## tau^2 = 0.0743 [0.0000; 11.5469]; tau = 0.2725 [0.0000; 3.3981];
## I^2 = 0.0% [0.0%; 81.0%]; H = 1.00 [1.00; 2.29]
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.10 2 0.5783
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of failed intubation with direct laryngoscopes in neonates and infants
meta::metaprop(event = fint.e2,n = fint.t2 ,studlab = study,data = fia.infant,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Fiadjoe 2012 0.0000 [0.0000; 0.1157]
## Garcia-Marcinkiewicz 2020 0.0360 [0.0174; 0.0652]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Salama 2019 0.0000 [0.0000; 0.1157]
## Saran 2019 0.1250 [0.0588; 0.2241]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Singh 2009 0.0000 [0.0000; 0.1157]
## Tao 2018 0.0286 [0.0007; 0.1492]
##
## Number of studies combined: k = 8
##
## proportion 95%-CI
## Random effects model 0.0136 [0.0021; 0.0829]
##
## Quantifying heterogeneity:
## tau^2 = 1.8061; tau = 1.3439; I^2 = 77.6%; H = 2.11
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 8.46 7 0.2935 Wald-type
## 21.53 7 0.0031 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
Post-hoc subgroup analysis of failed intubation attempts for studies using neuromuscular blockade
fia_analysis$nmba<-as.factor(fia_analysis$nmba)
sub_fia_analysis.NMBA<-fia_analysis[fia_analysis$nmba=="1",]
length(sub_fia_analysis.NMBA$fint.e1)
## [1] 6
sum(sub_fia_analysis.NMBA$fint.t1,sub_fia_analysis.NMBA$fint.t2)
## [1] 1072
mbin_sub_fia_analysis.NMBA_random<-meta::metabin(fint.e1,fint.t1,fint.e2,fint.t2,data = sub_fia_analysis.NMBA,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_fia_analysis.NMBA_random
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.4981 [0.1680; 1.4768] 27.0
## Jagannathan 2017 3.0302 [0.1220; 75.2789] 10.8
## Javaherforooshzadeh 2020 0.2857 [0.0527; 1.5494] 21.1
## Kim 2018 1.0000 [0.0605; 16.5338] 12.9
## Nileshwar 2010 18.3793 [0.9581; 352.5684] 12.0
## Yi 2019 3.0923 [0.3135; 30.4982] 16.2
##
## Number of studies combined: k = 6
##
## OR 95%-CI t p-value
## Random effects model 1.2215 [0.2632; 5.6690] 0.34 0.7512
## Prediction interval [0.0351; 42.4841]
##
## Quantifying heterogeneity:
## tau^2 = 1.2774 [0.0000; 12.0954]; tau = 1.1302 [0.0000; 3.4778];
## I^2 = 41.2% [0.0%; 76.7%]; H = 1.30 [1.00; 2.07]
##
## Test of heterogeneity:
## Q d.f. p-value
## 8.50 5 0.1306
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
sub_fia_analysis.NMBA_infants<-fia_analysis[fia_analysis$nmba=="1" & (fia_analysis$age.group=="neonate" |fia_analysis$age.group=="infant" | fia_analysis$age.group=="neonate + infant") ,]
length(sub_fia_analysis.NMBA_infants$fint.e1)
## [1] 1
sum(sub_fia_analysis.NMBA_infants$fint.t1,sub_fia_analysis.NMBA_infants$fint.t2)
## [1] 552
mbin_sub_fia_analysis.NMBA_infants_random<-meta::metabin(fint.e1,fint.t1,fint.e2,fint.t2,data = sub_fia_analysis.NMBA_infants,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_fia_analysis.NMBA_infants_random
## OR 95%-CI z p-value
## 0.4981 [0.1680; 1.4768] -1.26 0.2088
##
## Details:
## - Mantel-Haenszel method
#Forest plot for failed intubation in neonates and infants
meta::forest(mbin_fia.infant_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Funnel Plot for failed intubation
meta::funnel(mbin_fia_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mbin_fia_random, method.bias = "linreg")
##
## Linear regression test of funnel plot asymmetry
##
## data: mbin_fia_random
## t = 1.8224, df = 8, p-value = 0.1059
## alternative hypothesis: asymmetry in funnel plot
## sample estimates:
## bias se.bias intercept
## 1.3544951 0.7432356 -1.1377992
dmetar::eggers.test(mbin_fia_random)
## Intercept ConfidenceInterval t p
## Egger's test 1.354 -0.0179999999999998-2.726 1.822 0.10586
meta::funnel(mbin_fia_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
Failed Intubation Within 2 Attempts
fia.2<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped 2 attempts.csv")
length(fia.2$ftent.e1)
## [1] 17
#Number of comparisons with zero events in both arms
fia.2_zeros<-dplyr::filter(fia.2,fia.2$ftent.e1==0 & fia.2$ftent.e2==0)
length(fia.2_zeros$ftent.e1)
## [1] 8
#Table for Meta-analysis of failed intubation within 2 attempts
fia.2_analysis<-dplyr::filter(fia.2,fia.2$ftent.e1>0 | fia.2$ftent.e2>0)
#Number of comparisons and patients meta-analized for failed intubation within 2 attempts
length(fia.2_analysis$ftent.e1)
## [1] 9
sum(fia.2_analysis$ftent.t1,fia.2_analysis$ftent.t2)
## [1] 740
#Meta-analysis for failed intubation within 2 attempts
mbin_fia.2_fixed<-meta::metabin(ftent.e1,ftent.t1,ftent.e2,ftent.t2,data = fia.2_analysis,studlab = paste(study),comb.fixed = TRUE,comb.random = FALSE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia.2_fixed
## OR 95%-CI %W(fixed)
## Ali 2013 0.3143 [0.0119; 8.2735] 8.4
## Jagannathan 2017 3.0302 [0.1220; 75.2789] 2.8
## Javaherforooshzadeh 2020 0.2857 [0.0527; 1.5494] 32.3
## Kilinc 2019 3.0759 [0.1216; 77.7962] 2.8
## Orozco 2018 0.1001 [0.0052; 1.9243] 25.6
## Salama 2019 0.3224 [0.0126; 8.2353] 8.5
## Tao 2018 0.3239 [0.0128; 8.2280] 8.5
## Vadi 2016 1.3171 [0.1281; 13.5372] 7.5
## Vadi 2017 3.7059 [0.1855; 74.0259] 3.6
##
## Number of studies combined: k = 9
##
## OR 95%-CI z p-value
## Fixed effect model 0.6030 [0.2834; 1.2830] -1.31 0.1891
## Prediction interval [0.0706; 6.0001]
##
## Quantifying heterogeneity:
## tau^2 = 0.7031 [0.0000; 4.0674]; tau = 0.8385 [0.0000; 2.0168];
## I^2 = 0.0% [0.0%; 56.0%]; H = 1.00 [1.00; 1.51]
##
## Test of heterogeneity:
## Q d.f. p-value
## 6.40 8 0.6030
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Continuity correction of 0.5 in studies with zero cell frequencies
mbin_fia.2_random<-meta::metabin(ftent.e1,ftent.t1,ftent.e2,ftent.t2,data = fia.2_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia.2_random
## OR 95%-CI %W(random)
## Ali 2013 0.3143 [0.0119; 8.2735] 8.7
## Jagannathan 2017 3.0302 [0.1220; 75.2789] 9.0
## Javaherforooshzadeh 2020 0.2857 [0.0527; 1.5494] 21.0
## Kilinc 2019 3.0759 [0.1216; 77.7962] 8.9
## Orozco 2018 0.1001 [0.0052; 1.9243] 10.2
## Salama 2019 0.3224 [0.0126; 8.2353] 8.9
## Tao 2018 0.3239 [0.0128; 8.2280] 8.9
## Vadi 2016 1.3171 [0.1281; 13.5372] 14.4
## Vadi 2017 3.7059 [0.1855; 74.0259] 10.0
##
## Number of studies combined: k = 9
##
## OR 95%-CI t p-value
## Random effects model 0.6507 [0.2450; 1.7284] -1.01 0.3401
## Prediction interval [0.0706; 6.0001]
##
## Quantifying heterogeneity:
## tau^2 = 0.7031 [0.0000; 4.0674]; tau = 0.8385 [0.0000; 2.0168];
## I^2 = 0.0% [0.0%; 56.0%]; H = 1.00 [1.00; 1.51]
##
## Test of heterogeneity:
## Q d.f. p-value
## 6.40 8 0.6030
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of failed intubation within 2 attempts with direct laryngoscopes
meta::metaprop(event = ftent.e2,n = ftent.t2 ,studlab = paste(study),data = fia.2,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Ali 2013 0.0588 [0.0015; 0.2869]
## Das 2017 0.0000 [0.0000; 0.1157]
## Fiadjoe 2012 0.0000 [0.0000; 0.1157]
## Jagannathan 2017 0.0000 [0.0000; 0.0362]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Javaherforooshzadeh 2020 0.2000 [0.0771; 0.3857]
## Kilinc 2019 0.0000 [0.0000; 0.0881]
## Orozco 2018 0.1000 [0.0279; 0.2366]
## Pangasa 2019 0.0000 [0.0000; 0.1372]
## Redel 2009 0.0000 [0.0000; 0.1157]
## Salama 2019 0.0333 [0.0008; 0.1722]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Singh 2017 0.0000 [0.0000; 0.0711]
## Tao 2018 0.0286 [0.0007; 0.1492]
## Vadi 2016 0.0526 [0.0013; 0.2603]
## Vadi 2017 0.0000 [0.0000; 0.1122]
## Vlatten 2009 0.0000 [0.0000; 0.1323]
##
## Number of studies combined: k = 17
##
## proportion 95%-CI
## Random effects model 0.0074 [0.0015; 0.0368]
##
## Quantifying heterogeneity:
## tau^2 = 3.2379; tau = 1.7994; I^2 = 75.5%; H = 2.02
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 6.96 16 0.9741 Wald-type
## 43.43 16 0.0002 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
#Forest plot for failed intubation within 2 attempts
meta::forest(mbin_fia.2_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Direct Laryngoscopes",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for failed intubation within 2 attempts
dmetar::find.outliers(mbin_fia.2_random)
## No outliers detected (random-effects model).
#Influence Analysis for failed intubation within 2 attempts
inf_analysis_fia.2<-dmetar::InfluenceAnalysis(mbin_fia.2_random,random = TRUE)
## [===========================================================================] DONE
plot(inf_analysis_fia.2,"baujat")
#Meta-regression for failed intubation within 2 attempts
#Controling for population characteristics (general, obese, neck immobilization, pregnant women, elderly)
meta::metareg(mbin_fia.2_random,~population)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.6172 (SE = 0.6190)
## tau (square root of estimated tau^2 value): 0.7856
## I^2 (residual heterogeneity / unaccounted variability): 24.04%
## H^2 (unaccounted variability / sampling variability): 1.32
## R^2 (amount of heterogeneity accounted for): 12.22%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 4.8605, p-val = 0.6770
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 2.1525, p-val = 0.1858
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 1.3099 1.2529 1.0455 0.3305 -1.6526 4.2725
## populationgeneral -1.9370 1.3203 -1.4671 0.1858 -5.0589 1.1849
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for operator experience
meta::metareg(mbin_fia.2_random,~experience)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.5840 (SE = 0.6155)
## tau (square root of estimated tau^2 value): 0.7642
## I^2 (residual heterogeneity / unaccounted variability): 22.15%
## H^2 (unaccounted variability / sampling variability): 1.28
## R^2 (amount of heterogeneity accounted for): 16.94%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 4.3821, p-val = 0.7349
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 2.8607, p-val = 0.1346
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.8019 0.4374 -1.8331 0.1094 -1.8362 0.2325
## experiencenon-experienced 1.4976 0.8855 1.6914 0.1346 -0.5962 3.5914
##
## intrcpt
## experiencenon-experienced
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for age group
meta::metareg(mbin_fia.2_random,age.group)
## Warning in rma.uni(yi = TE[!exclude], sei = seTE[!exclude], data = dataset, :
## Redundant predictors dropped from the model.
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.5234 (SE = 0.7053)
## tau (square root of estimated tau^2 value): 0.7235
## I^2 (residual heterogeneity / unaccounted variability): 20.80%
## H^2 (unaccounted variability / sampling variability): 1.26
## R^2 (amount of heterogeneity accounted for): 25.56%
##
## Test for Residual Heterogeneity:
## QE(df = 5) = 2.7710, p-val = 0.7352
##
## Test of Moderators (coefficients 2:4):
## F(df1 = 3, df2 = 5) = 2.0271, p-val = 0.2288
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -1.0323 0.5090 -2.0281 0.0983 -2.3406 0.2761
## age.groupall groups 1.7256 0.8858 1.9481 0.1089 -0.5514 4.0025
## age.groupinfant + > 1 year 2.1409 1.3117 1.6322 0.1636 -1.2309 5.5127
## age.groupneonate -0.0973 0.9997 -0.0973 0.9262 -2.6670 2.4724
##
## intrcpt .
## age.groupall groups
## age.groupinfant + > 1 year
## age.groupneonate
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for predicted difficult intubation
meta::metareg(mbin_fia.2_random,predicted)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.6172 (SE = 0.6190)
## tau (square root of estimated tau^2 value): 0.7856
## I^2 (residual heterogeneity / unaccounted variability): 24.04%
## H^2 (unaccounted variability / sampling variability): 1.32
## R^2 (amount of heterogeneity accounted for): 12.22%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 4.8605, p-val = 0.6770
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 2.1525, p-val = 0.1858
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 1.3099 1.2529 1.0455 0.3305 -1.6526 4.2725
## predictedeasy -1.9370 1.3203 -1.4671 0.1858 -5.0589 1.1849
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Subgroup analysis for failed intubation within 2 attempts in neonates and infants
fia.2.infant<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped 2 attempts Neo & Infant.csv")
length(fia.2.infant$ftent.e1)
## [1] 5
#Number of comparisons with zero failed intubation within 2 attempts in both arms
fia.2.infant_zeros<-dplyr::filter(fia.2.infant,fia.2.infant$ftent.e1==0 & fia.2.infant$ftent.e2==0)
length(fia.2.infant_zeros$ftent.e1)
## [1] 3
#Table for Meta-analysis of failed intubation within 2 attempts in neonates and infants
fia.2.infant_analysis<-dplyr::filter(fia.2.infant,fia.2.infant$ftent.e1>0 | fia.2.infant$ftent.e2>0)
#Number of comparisons and patients meta-analized for failed intubation within 2 attempts
length(fia.2.infant_analysis$ftent.e1)
## [1] 2
sum(na.omit(fia.2.infant_analysis$ftent.t1),na.omit(fia.2.infant_analysis$ftent.t2))
## [1] 130
#Meta-analysis for failed intubation within 2 attempts in neonates and infants
mbin_fia.2.infant_fixed<-meta::metabin(ftent.e1,ftent.t1,ftent.e2,ftent.t2,data = fia.2.infant_analysis,studlab = paste(study),comb.fixed = TRUE,comb.random = FALSE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia.2.infant_fixed
## OR 95%-CI %W(fixed)
## Salama 2019 0.3224 [0.0126; 8.2353] 49.9
## Tao 2018 0.3239 [0.0128; 8.2280] 50.1
##
## Number of studies combined: k = 2
##
## OR 95%-CI z p-value
## Fixed effect model 0.3232 [0.0327; 3.1891] -0.97 0.3335
##
## Quantifying heterogeneity:
## tau^2 < 0.0001; tau < 0.0001; I^2 = 0.0%; H = 1.00
##
## Test of heterogeneity:
## Q d.f. p-value
## 0.00 1 0.9984
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Continuity correction of 0.5 in studies with zero cell frequencies
mbin_fia.2.infant_random<-meta::metabin(ftent.e1,ftent.t1,ftent.e2,ftent.t2,data = fia.2.infant_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_fia.2.infant_random
## OR 95%-CI %W(random)
## Salama 2019 0.3224 [0.0126; 8.2353] 49.9
## Tao 2018 0.3239 [0.0128; 8.2280] 50.1
##
## Number of studies combined: k = 2
##
## OR 95%-CI t p-value
## Random effects model 0.3232 [0.3135; 0.3331] -474.30 0.0013
##
## Quantifying heterogeneity:
## tau^2 < 0.0001; tau < 0.0001; I^2 = 0.0%; H = 1.00
##
## Test of heterogeneity:
## Q d.f. p-value
## 0.00 1 0.9984
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of failed intubation within 2 attempts with direct laryngoscopes in neonates and infants
meta::metaprop(event = ftent.e2,n = ftent.t2 ,studlab = study,data = fia.2.infant,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Fiadjoe 2012 0.0000 [0.0000; 0.1157]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Salama 2019 0.0333 [0.0008; 0.1722]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Tao 2018 0.0286 [0.0007; 0.1492]
##
## Number of studies combined: k = 5
##
## proportion 95%-CI
## Random effects model 0.0126 [0.0031; 0.0489]
##
## Quantifying heterogeneity:
## tau^2 = 0; tau = 0; I^2 = 0.0%; H = 1.00
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 0.01 4 1.0000 Wald-type
## 3.63 4 0.4588 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
Post-hoc subgroup analysis of failed intubation within 2 attempts for studies using neuromuscular blockade
fia.2_analysis$nmba<-as.factor(fia.2_analysis$nmba)
sub_fia.2_analysis.NMBA<-fia.2_analysis[fia.2_analysis$nmba=="1",]
length(sub_fia.2_analysis.NMBA$ftent.e1)
## [1] 8
sum(sub_fia.2_analysis.NMBA$ftent.t1,sub_fia.2_analysis.NMBA$ftent.t2)
## [1] 670
mbin_sub_fia.2_analysis.NMBA_random<-meta::metabin(ftent.e1,ftent.t1,ftent.e2,ftent.t2,data = sub_fia.2_analysis.NMBA,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_fia.2_analysis.NMBA_random
## OR 95%-CI %W(random)
## Ali 2013 0.3143 [0.0119; 8.2735] 9.7
## Jagannathan 2017 3.0302 [0.1220; 75.2789] 10.0
## Javaherforooshzadeh 2020 0.2857 [0.0527; 1.5494] 22.5
## Kilinc 2019 3.0759 [0.1216; 77.7962] 9.9
## Orozco 2018 0.1001 [0.0052; 1.9243] 11.3
## Salama 2019 0.3224 [0.0126; 8.2353] 9.8
## Vadi 2016 1.3171 [0.1281; 13.5372] 15.7
## Vadi 2017 3.7059 [0.1855; 74.0259] 11.1
##
## Number of studies combined: k = 8
##
## OR 95%-CI t p-value
## Random effects model 0.7009 [0.2319; 2.1181] -0.76 0.4721
## Prediction interval [0.0590; 8.3235]
##
## Quantifying heterogeneity:
## tau^2 = 0.8040 [0.0000; 5.5498]; tau = 0.8966 [0.0000; 2.3558];
## I^2 = 0.0% [0.0%; 63.6%]; H = 1.00 [1.00; 1.66]
##
## Test of heterogeneity:
## Q d.f. p-value
## 6.24 7 0.5123
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
sub_fia.2_analysis.NMBA_infants<-fia.2_analysis[fia.2_analysis$nmba=="1" & (fia.2_analysis$age.group=="neonate" |fia.2_analysis$age.group=="infant" | fia.2_analysis$age.group=="neonate + infant") ,]
length(sub_fia.2_analysis.NMBA_infants$ftent.e1)
## [1] 1
sum(sub_fia.2_analysis.NMBA_infants$ftent.t1,sub_fia.2_analysis.NMBA_infants$ftent.t2)
## [1] 60
mbin_sub_fia.2_analysis.NMBA_infants_random<-meta::metabin(ftent.e1,ftent.t1,ftent.e2,ftent.t2,data = sub_fia.2_analysis.NMBA_infants,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_fia.2_analysis.NMBA_infants_random
## OR 95%-CI z p-value
## 0.3224 [0.0126; 8.2353] -0.68 0.4936
##
## Details:
## - Mantel-Haenszel method
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Forest plot for failed intubation within 2 attempts in neonates and infants
meta::forest(mbin_fia.2.infant_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Funnel Plot for failed intubation within 2 attempts
meta::funnel(mbin_fia.2_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mbin_fia.2_random, method.bias = "linreg")
## Warning in print.metabias(x): Number of studies (k=9) too small to test for small study effects (k.min=10). Change argument 'k.min' if appropriate.
dmetar::eggers.test(mbin_fia.2_random)
## Warning in dmetar::eggers.test(mbin_fia.2_random): Your meta-analysis contains k
## = 9 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 1.05 -1.498-3.598 0.837 0.43021
meta::funnel(mbin_fia.2_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
Percentage of Glottic Opening (POGO)
pogo<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped POGO.csv")
## Warning in read.table(file = file, header = header, sep = sep, quote = quote, :
## incomplete final line found by readTableHeader on '~/Desktop/SR VLs Ped/
## Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table
## Pairwise Ped POGO.csv'
#Number of comparisons and patients meta-analized for POGO
length(pogo$mpogo.1)
## [1] 2
sum(pogo$fpogo.1,pogo$fpogo.2)
## [1] 134
#Meta-analysis for POGO
mcont_pogo<-meta::metacont(fpogo.1,mpogo.1,sdpogo.1,fpogo.2,mpogo.2,sdpogo.2,data=pogo,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,prediction = TRUE,sm="MD")
mcont_pogo
## MD 95%-CI %W(random)
## Ali 2013 25.0000 [23.2861; 26.7139] 51.3
## Singh 2017 3.2500 [-3.8250; 10.3250] 48.7
##
## Number of studies combined: k = 2
##
## MD 95%-CI z p-value
## Random effects model 14.4070 [-6.9005; 35.7144] 1.33 0.1851
##
## Quantifying heterogeneity:
## tau^2 = 229.6338; tau = 15.1537; I^2 = 97.1% [92.4%; 98.9%]; H = 5.86 [3.64; 9.42]
##
## Test of heterogeneity:
## Q d.f. p-value
## 34.29 1 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2
#Forest plot for POGO
meta::forest(mcont_pogo,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Direct Laryngoscopes",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for POGO
dmetar::find.outliers(mcont_pogo)
## No outliers detected (random-effects model).
#Funnel Plot for POGO
meta::funnel(mcont_pogo,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mcont_pogo, method.bias = "linreg")
## Warning in print.metabias(x): Number of studies (k=2) too small to test for
## small study effects.
meta::funnel(mcont_pogo,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
trimfill_pogo<-meta::trimfill(mcont_pogo)
## Warning in trimfill.meta(mcont_pogo): Minimal number of three studies for trim-
## and-fill method
trimfill_pogo
## NULL
Difficult Laryngoscopy by Cormack and Lehane Classification
cormack<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Cormack.csv")
length(cormack$fcormack.e1)
## [1] 16
#Number of comparisons with zero events in both arms
cormack_zeros<-dplyr::filter(cormack,cormack$fcormack.e1==0 & cormack$fcormack.e2==0)
length(cormack_zeros$fcormack.e1)
## [1] 7
#Table for Meta-analysis of Cormack and Lehane
cormack_analysis<-dplyr::filter(cormack,cormack$fcormack.e1>0 | cormack$fcormack.e2>0)
#Number of comparisons and patients meta-analized for Cormack and Lehane
length(cormack_analysis$fcormack.e1)
## [1] 9
sum(cormack_analysis$fcormack.t1,cormack_analysis$fcormack.t2)
## [1] 960
#Meta-analysis for Cormack and Lehane
mbin_cormack_random<-meta::metabin(fcormack.e1,fcormack.t1,fcormack.e2,fcormack.t2,data = cormack_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_cormack_random
## OR 95%-CI %W(random)
## Giraudon 2017 0.3384 [0.0135; 8.4594] 8.5
## Jagannathan 2017 1.0000 [0.0617; 16.2123] 10.4
## Jain 2018 0.1937 [0.0089; 4.2006] 9.0
## Javaherforooshzadeh 2020 0.0618 [0.0033; 1.1516] 9.7
## Kilinc 2019 0.1901 [0.0088; 4.0884] 9.1
## Riveros 2013 3.3016 [1.1718; 9.3025] 26.1
## Shayeghi 2007 3.3051 [0.1295; 84.3222] 8.4
## Vadi 2017 0.4918 [0.0297; 8.1366] 10.3
## Yi 2019 0.3285 [0.0131; 8.2062] 8.5
##
## Number of studies combined: k = 9
##
## OR 95%-CI t p-value
## Random effects model 0.6582 [0.2190; 1.9781] -0.88 0.4063
## Prediction interval [0.0544; 7.9573]
##
## Quantifying heterogeneity:
## tau^2 = 0.8833 [0.0000; 4.7487]; tau = 0.9398 [0.0000; 2.1792];
## I^2 = 35.1% [0.0%; 70.1%]; H = 1.24 [1.00; 1.83]
##
## Test of heterogeneity:
## Q d.f. p-value
## 12.34 8 0.1368
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of difficult laryngoscopy (C&L≥3) with direct laryngoscopes
meta::metaprop(event = fcormack.e2,n = fcormack.t2 ,studlab = paste(study),data = cormack,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Giraudon 2017 0.0149 [0.0004; 0.0804]
## Inal 2010 0.0000 [0.0000; 0.1372]
## Jagannathan 2017 0.0100 [0.0003; 0.0545]
## Jain 2018 0.0625 [0.0077; 0.2081]
## Javaherforooshzadeh 2020 0.2000 [0.0771; 0.3857]
## Kilinc 2019 0.0500 [0.0061; 0.1692]
## Kim 2018 0.0000 [0.0000; 0.0841]
## Manirajan 2020 0.0000 [0.0000; 0.0903]
## Pangasa 2019 0.0000 [0.0000; 0.1372]
## Redel 2009 0.0000 [0.0000; 0.1157]
## Riveros 2013 0.1111 [0.0371; 0.2405]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Singh 2009 0.0000 [0.0000; 0.1157]
## Vadi 2016 0.0000 [0.0000; 0.1765]
## Vadi 2017 0.0323 [0.0008; 0.1670]
## Yi 2019 0.0147 [0.0004; 0.0792]
##
## Number of studies combined: k = 16
##
## proportion 95%-CI
## Random effects model 0.0154 [0.0053; 0.0435]
##
## Quantifying heterogeneity:
## tau^2 = 1.6541; tau = 1.2861; I^2 = 66.8%; H = 1.73
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 18.00 15 0.2628 Wald-type
## 38.85 15 0.0007 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
#Forest plot for Cormack and Lehane
meta::forest(mbin_cormack_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for Cormack and Lehane
dmetar::find.outliers(mbin_cormack_random)
## No outliers detected (random-effects model).
#Influence Analysis for Cormack and Lehane
inf_analysis_cormack<-dmetar::InfluenceAnalysis(mbin_cormack_random,random = TRUE)
## [===========================================================================] DONE
plot(inf_analysis_cormack,"baujat")
#Meta-regression for Cormack and Lehane
#Controling for population characteristics (general, obese, neck immobilization)
meta::metareg(mbin_cormack_random,population)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 1.0070 (SE = 0.7078)
## tau (square root of estimated tau^2 value): 1.0035
## I^2 (residual heterogeneity / unaccounted variability): 38.07%
## H^2 (unaccounted variability / sampling variability): 1.61
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 11.9587, p-val = 0.1019
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 0.0319, p-val = 0.8633
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.7097 1.5684 -0.4525 0.6646 -4.4185 2.9991
## populationgeneral 0.2961 1.6575 0.1787 0.8633 -3.6232 4.2155
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for operator experience
meta::metareg(mbin_cormack_random,experience)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.9893 (SE = 0.7032)
## tau (square root of estimated tau^2 value): 0.9946
## I^2 (residual heterogeneity / unaccounted variability): 36.75%
## H^2 (unaccounted variability / sampling variability): 1.58
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 12.1079, p-val = 0.0971
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 0.0617, p-val = 0.8110
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.5186 0.5950 -0.8717 0.4123 -1.9255 0.8883
## experiencenon-experienced 0.2814 1.1331 0.2484 0.8110 -2.3979 2.9608
##
## intrcpt
## experiencenon-experienced
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for age group
meta::metareg(mbin_cormack_random,age.group)
## Warning in rma.uni(yi = TE[!exclude], sei = seTE[!exclude], data = dataset, :
## Redundant predictors dropped from the model.
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.6620 (SE = 0.7526)
## tau (square root of estimated tau^2 value): 0.8136
## I^2 (residual heterogeneity / unaccounted variability): 24.42%
## H^2 (unaccounted variability / sampling variability): 1.32
## R^2 (amount of heterogeneity accounted for): 25.05%
##
## Test for Residual Heterogeneity:
## QE(df = 5) = 3.9023, p-val = 0.5636
##
## Test of Moderators (coefficients 2:4):
## F(df1 = 3, df2 = 5) = 2.3101, p-val = 0.1935
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -1.7032 0.6718 -2.5352 0.0522 -3.4302 0.0237
## age.groupall groups 2.4070 0.9218 2.6113 0.0476 0.0376 4.7764
## age.groupinfant 1.4221 1.1742 1.2110 0.2800 -1.5964 4.4405
## age.groupinfant + > 1 year 1.7032 1.4072 1.2104 0.2802 -1.9140 5.3205
##
## intrcpt .
## age.groupall groups *
## age.groupinfant
## age.groupinfant + > 1 year
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for predicted difficult intubation
meta::metareg(mbin_cormack_random,predicted)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 1.0070 (SE = 0.7078)
## tau (square root of estimated tau^2 value): 1.0035
## I^2 (residual heterogeneity / unaccounted variability): 38.07%
## H^2 (unaccounted variability / sampling variability): 1.61
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 11.9587, p-val = 0.1019
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 0.0319, p-val = 0.8633
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.7097 1.5684 -0.4525 0.6646 -4.4185 2.9991
## predictedeasy 0.2961 1.6575 0.1787 0.8633 -3.6232 4.2155
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Subgroup analysis for Cormack and Lehane in neonates and infants
cormack.infant<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Cormack Neo & Infant.csv")
## Warning in read.table(file = file, header = header, sep = sep, quote = quote, :
## incomplete final line found by readTableHeader on '~/Desktop/SR VLs Ped/
## Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table
## Pairwise Ped Cormack Neo & Infant.csv'
length(cormack.infant$fcormack.e1)
## [1] 4
#Number of comparisons with zero difficult laryngoscopies in both arms
cormack.infant_zeros<-dplyr::filter(cormack.infant,cormack.infant$fcormack.e1==0 & cormack.infant$fcormack.e2==0)
length(cormack.infant_zeros$fcormack.e1)
## [1] 2
#Table for Meta-analysis of Cormack and Lehane in neonates and infants
cormack.infant_analysis<-dplyr::filter(cormack.infant,cormack.infant$fcormack.e1>0 | cormack.infant$fcormack.e2>0)
#Number of comparisons and patients meta-analized for Cormack and Lehane
length(cormack.infant_analysis$fcormack.e1)
## [1] 2
sum(na.omit(cormack.infant_analysis$fcormack.t1),na.omit(cormack.infant_analysis$fcormack.t2))
## [1] 125
#Meta-analysis for Cormack and Lehane in neonates and infants
mbin_cormack.infant_fixed<-meta::metabin(fcormack.e1,fcormack.t1,fcormack.e2,fcormack.t2,data = cormack.infant_analysis,studlab = paste(study),comb.fixed = TRUE,comb.random = FALSE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_cormack.infant_fixed
## OR 95%-CI %W(fixed)
## Jain 2018 0.1937 [0.0089; 4.2006] 84.0
## Shayeghi 2007 3.3051 [0.1295; 84.3222] 16.0
##
## Number of studies combined: k = 2
##
## OR 95%-CI z p-value
## Fixed effect model 0.6909 [0.1135; 4.2057] -0.40 0.6883
##
## Quantifying heterogeneity:
## tau^2 = 1.7568; tau = 1.3254; I^2 = 35.5%; H = 1.24
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.55 1 0.2133
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Continuity correction of 0.5 in studies with zero cell frequencies
mbin_cormack.infant_random<-meta::metabin(fcormack.e1,fcormack.t1,fcormack.e2,fcormack.t2,data = cormack.infant_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_cormack.infant_random
## OR 95%-CI %W(random)
## Jain 2018 0.1937 [0.0089; 4.2006] 51.5
## Shayeghi 2007 3.3051 [0.1295; 84.3222] 48.5
##
## Number of studies combined: k = 2
##
## OR 95%-CI t p-value
## Random effects model 0.7660 [0.0000; 51122718.3128] -0.19 0.8817
##
## Quantifying heterogeneity:
## tau^2 = 1.7568; tau = 1.3254; I^2 = 35.5%; H = 1.24
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.55 1 0.2133
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of difficult laryngoscopy with direct laryngoscopes in neonates and infants
meta::metaprop(event = fcormack.e2,n = fcormack.t2 ,studlab = study,data = cormack.infant,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Jain 2018 0.0625 [0.0077; 0.2081]
## Manirajan 2020 0.0000 [0.0000; 0.0903]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Singh 2009 0.0000 [0.0000; 0.1157]
##
## Number of studies combined: k = 4
##
## proportion 95%-CI
## Random effects model 0.0069 [0.0001; 0.2531]
##
## Quantifying heterogeneity:
## tau^2 = 1.9050; tau = 1.3802; I^2 = 57.0%; H = 1.52
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 0.00 3 1.0000 Wald-type
## 5.80 3 0.1220 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
Post-hoc subgroup analysis of Cormack and Lehane classification for studies using neuromuscular blockade
cormack_analysis$nmba<-as.factor(cormack_analysis$nmba)
sub_cormack_analysis.NMBA<-cormack_analysis[cormack_analysis$nmba=="1",]
length(sub_cormack_analysis.NMBA$fcormack.e1)
## [1] 8
sum(sub_cormack_analysis.NMBA$fcormack.t1,sub_cormack_analysis.NMBA$fcormack.t2)
## [1] 828
mbin_sub_cormack_analysis.NMBA_random<-meta::metabin(fcormack.e1,fcormack.t1,fcormack.e2,fcormack.t2,data = sub_cormack_analysis.NMBA,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_cormack_analysis.NMBA_random
## OR 95%-CI %W(random)
## Jagannathan 2017 1.0000 [0.0617; 16.2123] 11.6
## Jain 2018 0.1937 [0.0089; 4.2006] 10.1
## Javaherforooshzadeh 2020 0.0618 [0.0033; 1.1516] 10.9
## Kilinc 2019 0.1901 [0.0088; 4.0884] 10.2
## Riveros 2013 3.3016 [1.1718; 9.3025] 26.9
## Shayeghi 2007 3.3051 [0.1295; 84.3222] 9.4
## Vadi 2017 0.4918 [0.0297; 8.1366] 11.5
## Yi 2019 0.3285 [0.0131; 8.2062] 9.5
##
## Number of studies combined: k = 8
##
## OR 95%-CI t p-value
## Random effects model 0.6766 [0.1952; 2.3458] -0.74 0.4817
## Prediction interval [0.0409; 11.2064]
##
## Quantifying heterogeneity:
## tau^2 = 1.0396 [0.0000; 6.4958]; tau = 1.0196 [0.0000; 2.5487];
## I^2 = 40.4% [0.0%; 73.7%]; H = 1.30 [1.00; 1.95]
##
## Test of heterogeneity:
## Q d.f. p-value
## 11.75 7 0.1090
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
sub_cormack_analysis.NMBA_infants<-cormack_analysis[cormack_analysis$nmba=="1" & (cormack_analysis$age.group=="neonate" |cormack_analysis$age.group=="infant" | cormack_analysis$age.group=="neonate + infant") ,]
length(sub_cormack_analysis.NMBA_infants$fcormack.e1)
## [1] 2
sum(sub_cormack_analysis.NMBA_infants$fcormack.t1,sub_cormack_analysis.NMBA_infants$fcormack.t2)
## [1] 125
mbin_sub_cormack_analysis.NMBA_infants_random<-meta::metabin(fcormack.e1,fcormack.t1,fcormack.e2,fcormack.t2,data = sub_cormack_analysis.NMBA_infants,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_cormack_analysis.NMBA_infants_random
## OR 95%-CI %W(random)
## Jain 2018 0.1937 [0.0089; 4.2006] 51.5
## Shayeghi 2007 3.3051 [0.1295; 84.3222] 48.5
##
## Number of studies combined: k = 2
##
## OR 95%-CI t p-value
## Random effects model 0.7660 [0.0000; 51122718.3128] -0.19 0.8817
##
## Quantifying heterogeneity:
## tau^2 = 1.7568; tau = 1.3254; I^2 = 35.5%; H = 1.24
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.55 1 0.2133
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Forest plot for difficult laryngoscopy in neonates and infants
meta::forest(mbin_cormack.infant_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Funnel Plot for Cormack and Lehane
meta::funnel(mbin_cormack_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mbin_cormack_random, method.bias = "linreg")
## Warning in print.metabias(x): Number of studies (k=9) too small to test for small study effects (k.min=10). Change argument 'k.min' if appropriate.
dmetar::eggers.test(mbin_cormack_random)
## Warning in dmetar::eggers.test(mbin_cormack_random): Your meta-analysis contains
## k = 9 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 -2.105 -3.281--0.929 -3.591 0.00885
meta::funnel(mbin_cormack_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
trimfill_cormack<-meta::trimfill(mbin_cormack_random)
trimfill_cormack
## OR 95%-CI %W(random)
## Giraudon 2017 0.3384 [0.0135; 8.4594] 6.6
## Jagannathan 2017 1.0000 [0.0617; 16.2123] 7.4
## Jain 2018 0.1937 [0.0089; 4.2006] 6.9
## Javaherforooshzadeh 2020 0.0618 [0.0033; 1.1516] 7.1
## Kilinc 2019 0.1901 [0.0088; 4.0884] 6.9
## Riveros 2013 3.3016 [1.1718; 9.3025] 10.6
## Shayeghi 2007 3.3051 [0.1295; 84.3222] 6.6
## Vadi 2017 0.4918 [0.0297; 8.1366] 7.3
## Yi 2019 0.3285 [0.0131; 8.2062] 6.6
## Filled: Giraudon 2017 17.3846 [0.6955; 434.5583] 6.6
## Filled: Yi 2019 17.9115 [0.7169; 447.4908] 6.6
## Filled: Jain 2018 30.3812 [1.4006; 659.0108] 6.9
## Filled: Kilinc 2019 30.9449 [1.4390; 665.4436] 6.9
## Filled: Javaherforooshzadeh 2020 95.2143 [5.1087; 1774.5566] 7.1
##
## Number of studies combined: k = 14 (with 5 added studies)
##
## OR 95%-CI t p-value
## Random effects model 2.1305 [0.5601; 8.1045] 1.22 0.2430
## Prediction interval [0.0253; 179.4731]
##
## Quantifying heterogeneity:
## tau^2 = 3.7583 [0.5222; 11.9178]; tau = 1.9386 [0.7227; 3.4522];
## I^2 = 57.3% [22.5%; 76.4%]; H = 1.53 [1.14; 2.06]
##
## Test of heterogeneity:
## Q d.f. p-value
## 30.42 13 0.0041
##
## Details on meta-analytical method:
## - Inverse variance method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Trim-and-fill method to adjust for funnel plot asymmetry
Time for Intubation
time<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Time.csv")
#Number of comparisons and patients meta-analized for time for intubation
length(time$mtime.1)
## [1] 20
sum(time$ftime.1,time$ftime.2)
## [1] 1438
#Meta-analysis for time for intubation
mcont_time<-meta::metacont(ftime.1,mtime.1,sdtime.1,ftime.2,mtime.2,sdtime.2,data=time,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,prediction = TRUE,sm="MD")
mcont_time
## MD 95%-CI %W(random)
## Ali 2013 -5.7000 [-10.8561; -0.5439] 4.9
## Das 2017 -3.6000 [ -4.1072; -3.0928] 6.1
## Jain 2018 -6.1000 [-10.2824; -1.9176] 5.3
## Javaherforooshzadeh 2020 4.0000 [ -3.4734; 11.4734] 4.1
## Kilinc 2019 16.6000 [ 12.1470; 21.0530] 5.2
## Kim 2008 12.2000 [ 7.7986; 16.6014] 5.2
## Manirajan 2020 0.8700 [ 0.0110; 1.7290] 6.0
## Nileshwar 2010 37.5600 [ 21.0401; 54.0799] 1.8
## Okumura 2019 5.1000 [ -0.2335; 10.4335] 4.9
## Orozco 2018 -9.0000 [-11.4985; -6.5015] 5.8
## Pangasa 2019 5.9000 [ 4.3335; 7.4665] 5.9
## Redel 2009 1.0000 [ -1.5303; 3.5303] 5.7
## Riad 2012 -28.7600 [-39.4959; -18.0241] 3.0
## Saran 2019 -11.7000 [-13.2799; -10.1201] 5.9
## Shayeghi 2007 5.4600 [ 2.2802; 8.6398] 5.6
## Shulman 2000 6.0000 [ 1.7599; 10.2401] 5.3
## Singh 2009 1.8800 [ 0.7804; 2.9796] 6.0
## Singh 2017 5.0400 [ 3.7850; 6.2950] 6.0
## Tao 2018 -1.4600 [ -7.2538; 4.3338] 4.7
## White 2012 21.0000 [ 8.6299; 33.3701] 2.6
##
## Number of studies combined: k = 20
##
## MD 95%-CI z p-value
## Random effects model 1.6524 [ -1.0002; 4.3050] 1.22 0.2221
## Prediction interval [-10.2376; 13.5425]
##
## Quantifying heterogeneity:
## tau^2 = 30.1976 [28.9605; 164.7442]; tau = 5.4952 [5.3815; 12.8353];
## I^2 = 97.4% [96.7%; 97.9%]; H = 6.16 [5.51; 6.89]
##
## Test of heterogeneity:
## Q d.f. p-value
## 721.49 19 < 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
#Forest plot for time for intubation
meta::forest(mcont_time,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Direct Laryngoscopes",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for time for intubation
dmetar::find.outliers(mcont_time)
## Identified outliers (random-effects model)
## ------------------------------------------
## "Das 2017", "Jain 2018", "Kilinc 2019", "Kim 2008", "Nileshwar 2010", "Orozco 2018", "Pangasa 2019", "Riad 2012", "Saran 2019", "White 2012"
##
## Results with outliers removed
## -----------------------------
## MD 95%-CI %W(random) exclude
## Ali 2013 -5.7000 [-10.8561; -0.5439] 6.5
## Das 2017 -3.6000 [ -4.1072; -3.0928] 0.0 *
## Jain 2018 -6.1000 [-10.2824; -1.9176] 0.0 *
## Javaherforooshzadeh 2020 4.0000 [ -3.4734; 11.4734] 3.9
## Kilinc 2019 16.6000 [ 12.1470; 21.0530] 0.0 *
## Kim 2008 12.2000 [ 7.7986; 16.6014] 0.0 *
## Manirajan 2020 0.8700 [ 0.0110; 1.7290] 16.0
## Nileshwar 2010 37.5600 [ 21.0401; 54.0799] 0.0 *
## Okumura 2019 5.1000 [ -0.2335; 10.4335] 6.3
## Orozco 2018 -9.0000 [-11.4985; -6.5015] 0.0 *
## Pangasa 2019 5.9000 [ 4.3335; 7.4665] 0.0 *
## Redel 2009 1.0000 [ -1.5303; 3.5303] 12.1
## Riad 2012 -28.7600 [-39.4959; -18.0241] 0.0 *
## Saran 2019 -11.7000 [-13.2799; -10.1201] 0.0 *
## Shayeghi 2007 5.4600 [ 2.2802; 8.6398] 10.5
## Shulman 2000 6.0000 [ 1.7599; 10.2401] 8.1
## Singh 2009 1.8800 [ 0.7804; 2.9796] 15.6
## Singh 2017 5.0400 [ 3.7850; 6.2950] 15.3
## Tao 2018 -1.4600 [ -7.2538; 4.3338] 5.6
## White 2012 21.0000 [ 8.6299; 33.3701] 0.0 *
##
## Number of studies combined: k = 10
##
## MD 95%-CI z p-value
## Random effects model 2.4064 [ 0.7150; 4.0978] 2.79 0.0053
## Prediction interval [-2.8570; 7.6698]
##
## Quantifying heterogeneity:
## tau^2 = 4.4651 [1.6149; 30.3358]; tau = 2.1131 [1.2708; 5.5078];
## I^2 = 81.7% [67.4%; 89.7%]; H = 2.33 [1.75; 3.11]
##
## Test of heterogeneity:
## Q d.f. p-value
## 49.06 9 < 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-regression for time for intubation
#Controling for population characteristics (general, obese, neck immobilization)
meta::metareg(mcont_time,population)
##
## Mixed-Effects Model (k = 20; tau^2 estimator: DL)
##
## tau^2 (estimated amount of residual heterogeneity): 29.3846 (SE = 20.1166)
## tau (square root of estimated tau^2 value): 5.4208
## I^2 (residual heterogeneity / unaccounted variability): 97.55%
## H^2 (unaccounted variability / sampling variability): 40.88
## R^2 (amount of heterogeneity accounted for): 2.69%
##
## Test for Residual Heterogeneity:
## QE(df = 17) = 695.0327, p-val < .0001
##
## Test of Moderators (coefficients 2:3):
## QM(df = 2) = 13.5621, p-val = 0.0011
##
## Model Results:
##
## estimate se zval pval ci.lb
## intrcpt 37.5600 10.0213 3.7480 0.0002 17.9185
## populationcleft lip and palate -32.4600 11.7140 -2.7711 0.0056 -55.4190
## populationgeneral -36.7835 10.1165 -3.6360 0.0003 -56.6115
## ci.ub
## intrcpt 57.2015 ***
## populationcleft lip and palate -9.5010 **
## populationgeneral -16.9556 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for operator experience
meta::metareg(mcont_time,experience)
##
## Mixed-Effects Model (k = 20; tau^2 estimator: DL)
##
## tau^2 (estimated amount of residual heterogeneity): 35.7307 (SE = 25.4591)
## tau (square root of estimated tau^2 value): 5.9775
## I^2 (residual heterogeneity / unaccounted variability): 97.50%
## H^2 (unaccounted variability / sampling variability): 39.99
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 18) = 719.9051, p-val < .0001
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 0.0504, p-val = 0.8224
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## intrcpt 1.5300 1.6822 0.9095 0.3631 -1.7670 4.8270
## experiencenon-experienced 0.7554 3.3652 0.2245 0.8224 -5.8404 7.3511
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for age group
meta::metareg(mcont_time,age.group)
##
## Mixed-Effects Model (k = 20; tau^2 estimator: DL)
##
## tau^2 (estimated amount of residual heterogeneity): 51.1060 (SE = 35.6215)
## tau (square root of estimated tau^2 value): 7.1488
## I^2 (residual heterogeneity / unaccounted variability): 97.71%
## H^2 (unaccounted variability / sampling variability): 43.61
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 15) = 654.2086, p-val < .0001
##
## Test of Moderators (coefficients 2:5):
## QM(df = 4) = 4.9708, p-val = 0.2903
##
## Model Results:
##
## estimate se zval pval ci.lb
## intrcpt 1.7419 2.4550 0.7095 0.4780 -3.0698
## age.groupinfant -0.4279 4.4380 -0.0964 0.9232 -9.1261
## age.groupinfant + > 1 year 8.0403 5.1930 1.5483 0.1215 -2.1377
## age.groupneonate -3.2019 8.1161 -0.3945 0.6932 -19.1091
## age.groupneonate + infant -6.6298 5.6410 -1.1753 0.2399 -17.6859
## ci.ub
## intrcpt 6.5535
## age.groupinfant 8.2704
## age.groupinfant + > 1 year 18.2184
## age.groupneonate 12.7054
## age.groupneonate + infant 4.4263
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for predicted difficult intubation
meta::metareg(mcont_time,predicted)
##
## Mixed-Effects Model (k = 20; tau^2 estimator: DL)
##
## tau^2 (estimated amount of residual heterogeneity): 29.8903 (SE = 20.4382)
## tau (square root of estimated tau^2 value): 5.4672
## I^2 (residual heterogeneity / unaccounted variability): 97.46%
## H^2 (unaccounted variability / sampling variability): 39.36
## R^2 (amount of heterogeneity accounted for): 1.02%
##
## Test for Residual Heterogeneity:
## QE(df = 18) = 708.4640, p-val < .0001
##
## Test of Moderators (coefficient 2):
## QM(df = 1) = 5.8650, p-val = 0.0154
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## intrcpt 13.8580 5.2185 2.6556 0.0079 3.6299 24.0861 **
## predictedeasy -13.0816 5.4016 -2.4218 0.0154 -23.6687 -2.4946 *
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Multiple Meta-regression for time for intubation
str(time)
## 'data.frame': 20 obs. of 16 variables:
## $ study : Factor w/ 20 levels "Ali 2013","Das 2017",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ population : Factor w/ 3 levels "cervical immobilization",..: 3 3 3 3 3 3 3 1 2 3 ...
## $ age.group : Factor w/ 5 levels "> 1 year","infant",..: 1 1 2 1 1 3 2 1 2 1 ...
## $ predicted : Factor w/ 2 levels "difficult","easy": 2 2 2 2 2 2 2 1 1 2 ...
## $ country : Factor w/ 11 levels "canada","china",..: 5 5 5 6 8 3 5 5 7 11 ...
## $ nature : Factor w/ 2 levels "","e": 2 2 1 2 2 1 2 2 2 2 ...
## $ experience : Factor w/ 2 levels "experienced",..: 1 1 1 1 1 1 1 1 2 1 ...
## $ nmba : int 1 1 1 1 1 1 1 1 1 1 ...
## $ intervention: Factor w/ 1 level "Videolaryngoscope": 1 1 1 1 1 1 1 1 1 1 ...
## $ reference : Factor w/ 1 level "Direct Laryngoscope": 1 1 1 1 1 1 1 1 1 1 ...
## $ mtime.1 : num 34.4 11.5 32.1 33.3 32.3 ...
## $ sdtime.1 : num 7.1 0.49 5.5 15.72 12.9 ...
## $ ftime.1 : num 17 30 31 30 40 103 39 14 20 40 ...
## $ mtime.2 : num 40.1 15.1 38.2 29.3 15.7 ...
## $ sdtime.2 : num 8.2 1.33 10.7 13.75 6.33 ...
## $ ftime.2 : num 17 30 32 30 40 100 39 20 20 40 ...
model_time<-metafor::rma.uni(m1i = mtime.1,sd1i = sdtime.1,n1i = ftime.1,m2i = mtime.2,sd2i = sdtime.2,n2i = ftime.2,data = time,method = "ML", measure = "SMD", mods = ~predicted+age.group,test = "knha")
model_time
##
## Mixed-Effects Model (k = 20; tau^2 estimator: ML)
##
## tau^2 (estimated amount of residual heterogeneity): 1.6199 (SE = 0.5380)
## tau (square root of estimated tau^2 value): 1.2728
## I^2 (residual heterogeneity / unaccounted variability): 95.70%
## H^2 (unaccounted variability / sampling variability): 23.24
## R^2 (amount of heterogeneity accounted for): 12.60%
##
## Test for Residual Heterogeneity:
## QE(df = 14) = 377.2988, p-val < .0001
##
## Test of Moderators (coefficients 2:6):
## F(df1 = 5, df2 = 14) = 0.3713, p-val = 0.8600
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 1.0889 1.2266 0.8877 0.3897 -1.5421 3.7198
## predictedeasy -1.1200 1.2399 -0.9033 0.3816 -3.7793 1.5393
## age.groupinfant 0.0502 0.9480 0.0529 0.9585 -1.9831 2.0835
## age.groupinfant + > 1 year 0.6331 1.0364 0.6109 0.5510 -1.5897 2.8560
## age.groupneonate -0.0856 1.6430 -0.0521 0.9592 -3.6095 3.4384
## age.groupneonate + infant -0.7571 1.2182 -0.6215 0.5443 -3.3699 1.8557
##
## intrcpt
## predictedeasy
## age.groupinfant
## age.groupinfant + > 1 year
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
metafor::permutest(model_time)
## Running 1000 iterations for approximate permutation test.
##
|
| | 0%
|
| | 1%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|== | 4%
|
|=== | 4%
|
|=== | 5%
|
|==== | 5%
|
|==== | 6%
|
|===== | 6%
|
|===== | 7%
|
|===== | 8%
|
|====== | 8%
|
|====== | 9%
|
|======= | 9%
|
|======= | 10%
|
|======= | 11%
|
|======== | 11%
|
|======== | 12%
|
|========= | 12%
|
|========= | 13%
|
|========= | 14%
|
|========== | 14%
|
|========== | 15%
|
|=========== | 15%
|
|=========== | 16%
|
|============ | 16%
|
|============ | 17%
|
|============ | 18%
|
|============= | 18%
|
|============= | 19%
|
|============== | 19%
|
|============== | 20%
|
|============== | 21%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 22%
|
|================ | 23%
|
|================ | 24%
|
|================= | 24%
|
|================= | 25%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 26%
|
|=================== | 27%
|
|=================== | 28%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 29%
|
|===================== | 30%
|
|===================== | 31%
|
|====================== | 31%
|
|====================== | 32%
|
|======================= | 32%
|
|======================= | 33%
|
|======================= | 34%
|
|======================== | 34%
|
|======================== | 35%
|
|========================= | 35%
|
|========================= | 36%
|
|========================== | 36%
|
|========================== | 37%
|
|========================== | 38%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 39%
|
|============================ | 40%
|
|============================ | 41%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 42%
|
|============================== | 43%
|
|============================== | 44%
|
|=============================== | 44%
|
|=============================== | 45%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 46%
|
|================================= | 47%
|
|================================= | 48%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 49%
|
|=================================== | 50%
|
|=================================== | 51%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 52%
|
|===================================== | 53%
|
|===================================== | 54%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 55%
|
|======================================= | 56%
|
|======================================== | 56%
|
|======================================== | 57%
|
|======================================== | 58%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 59%
|
|========================================== | 60%
|
|========================================== | 61%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 62%
|
|============================================ | 63%
|
|============================================ | 64%
|
|============================================= | 64%
|
|============================================= | 65%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 66%
|
|=============================================== | 67%
|
|=============================================== | 68%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 69%
|
|================================================= | 70%
|
|================================================= | 71%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 72%
|
|=================================================== | 73%
|
|=================================================== | 74%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 76%
|
|====================================================== | 77%
|
|====================================================== | 78%
|
|======================================================= | 78%
|
|======================================================= | 79%
|
|======================================================== | 79%
|
|======================================================== | 80%
|
|======================================================== | 81%
|
|========================================================= | 81%
|
|========================================================= | 82%
|
|========================================================== | 82%
|
|========================================================== | 83%
|
|========================================================== | 84%
|
|=========================================================== | 84%
|
|=========================================================== | 85%
|
|============================================================ | 85%
|
|============================================================ | 86%
|
|============================================================= | 86%
|
|============================================================= | 87%
|
|============================================================= | 88%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 89%
|
|=============================================================== | 90%
|
|=============================================================== | 91%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 92%
|
|================================================================= | 93%
|
|================================================================= | 94%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 96%
|
|==================================================================== | 97%
|
|==================================================================== | 98%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 99%
|
|======================================================================| 100%
##
## Test of Moderators (coefficients 2:6):
## F(df1 = 5, df2 = 14) = 0.3713, p-val* = 0.8610
##
## Model Results:
##
## estimate se tval pval* ci.lb ci.ub
## intrcpt 1.0889 1.2266 0.8877 0.3760 -1.5421 3.7198
## predictedeasy -1.1200 1.2399 -0.9033 0.3710 -3.7793 1.5393
## age.groupinfant 0.0502 0.9480 0.0529 0.9630 -1.9831 2.0835
## age.groupinfant + > 1 year 0.6331 1.0364 0.6109 0.5670 -1.5897 2.8560
## age.groupneonate -0.0856 1.6430 -0.0521 0.9570 -3.6095 3.4384
## age.groupneonate + infant -0.7571 1.2182 -0.6215 0.5470 -3.3699 1.8557
##
## intrcpt
## predictedeasy
## age.groupinfant
## age.groupinfant + > 1 year
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Estimating the mean time to intubation for direct laryngoscopes
meta::metamean(n = time$ftime.2,mean= time$mtime.2, sd=time$sdtime.2,studlab = study,data = time,method.tau = "SJ",sm = "MRAW",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## mean 95%-CI %W(random)
## Ali 2013 40.1000 [36.2020; 43.9980] 5.0
## Das 2017 15.1300 [14.6541; 15.6059] 5.1
## Jain 2018 38.2000 [34.4927; 41.9073] 5.0
## Javaherforooshzadeh 2020 29.3300 [24.4097; 34.2503] 4.9
## Kilinc 2019 15.7000 [13.7383; 17.6617] 5.1
## Kim 2008 23.8000 [21.0757; 26.5243] 5.1
## Manirajan 2020 25.0300 [24.5843; 25.4757] 5.1
## Nileshwar 2010 38.1500 [31.0765; 45.2235] 4.7
## Okumura 2019 26.4000 [22.4995; 30.3005] 5.0
## Orozco 2018 27.0000 [24.8307; 29.1693] 5.1
## Pangasa 2019 13.1000 [12.2768; 13.9232] 5.1
## Redel 2009 13.0000 [11.2108; 14.7892] 5.1
## Riad 2012 51.6000 [41.1338; 62.0662] 4.2
## Saran 2019 41.7000 [40.3372; 43.0628] 5.1
## Shayeghi 2007 15.4100 [13.9894; 16.8306] 5.1
## Shulman 2000 20.0000 [17.6480; 22.3520] 5.1
## Singh 2009 16.3000 [15.7883; 16.8117] 5.1
## Singh 2017 10.7000 [10.0625; 11.3375] 5.1
## Tao 2018 33.0900 [27.6137; 38.5663] 4.8
## White 2012 26.3000 [22.1849; 30.4151] 5.0
##
## Number of studies combined: k = 20
##
## mean 95%-CI
## Random effects model 25.6384 [20.3637; 30.9131]
##
## Quantifying heterogeneity:
## tau^2 = 123.4357 [68.3599; 272.1053]; tau = 11.1102 [8.2680; 16.4956];
## I^2 = 99.4% [99.4%; 99.5%]; H = 13.47 [12.61; 14.40]
##
## Test of heterogeneity:
## Q d.f. p-value
## 3449.18 19 0
##
## Details on meta-analytical method:
## - Inverse variance method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Untransformed (raw) means
#Subgroup analysis of time to intubation for neonates and infants
time.infant<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Time Neo & Infant.csv")
#Number of comparisons and patients meta-analized for time for intubation
length(time.infant$mtime.1)
## [1] 7
sum(time.infant$ftime.1,time.infant$ftime.2)
## [1] 517
#Meta-analysis for time for intubation in neonates and infants
mcont_time.infant<-meta::metacont(ftime.1,mtime.1,sdtime.1,ftime.2,mtime.2,sdtime.2,data=time.infant,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,prediction = TRUE,sm="MD")
mcont_time.infant
## MD 95%-CI %W(random)
## Jain 2018 -6.1000 [-10.2824; -1.9176] 13.8
## Manirajan 2020 0.8700 [ 0.0110; 1.7290] 15.6
## Okumura 2019 5.1000 [ -0.2335; 10.4335] 12.8
## Saran 2019 -11.7000 [-13.2799; -10.1201] 15.4
## Shayeghi 2007 5.4600 [ 2.2802; 8.6398] 14.5
## Singh 2009 1.8800 [ 0.7804; 2.9796] 15.5
## Tao 2018 -1.4600 [ -7.2538; 4.3338] 12.4
##
## Number of studies combined: k = 7
##
## MD 95%-CI z p-value
## Random effects model -0.9449 [ -5.4550; 3.5653] -0.41 0.6814
## Prediction interval [-17.0259; 15.1362]
##
## Quantifying heterogeneity:
## tau^2 = 33.8401 [12.7748; 222.4733]; tau = 5.8172 [3.5742; 14.9155];
## I^2 = 97.6% [96.4%; 98.3%]; H = 6.40 [5.27; 7.76]
##
## Test of heterogeneity:
## Q d.f. p-value
## 245.48 6 < 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
#Estimating the mean time to intubation for direct laryngoscopes in neonates and infants
meta::metamean(n = time.infant$ftime.2,mean= time.infant$mtime.2, sd=time.infant$sdtime.2,studlab = study,data = time.infant,method.tau = "SJ",sm = "MRAW",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## mean 95%-CI %W(random)
## Jain 2018 38.2000 [34.4927; 41.9073] 14.1
## Manirajan 2020 25.0300 [24.5843; 25.4757] 14.6
## Okumura 2019 26.4000 [22.4995; 30.3005] 14.1
## Saran 2019 41.7000 [40.3372; 43.0628] 14.5
## Shayeghi 2007 15.4100 [13.9894; 16.8306] 14.5
## Singh 2009 16.3000 [15.7883; 16.8117] 14.6
## Tao 2018 33.0900 [27.6137; 38.5663] 13.6
##
## Number of studies combined: k = 7
##
## mean 95%-CI
## Random effects model 27.9263 [18.4427; 37.4100]
##
## Quantifying heterogeneity:
## tau^2 = 102.6850 [42.0363; 503.4189]; tau = 10.1334 [6.4835; 22.4370];
## I^2 = 99.6% [99.5%; 99.7%]; H = 16.49 [14.89; 18.26]
##
## Test of heterogeneity:
## Q d.f. p-value
## 1630.88 6 0
##
## Details on meta-analytical method:
## - Inverse variance method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Untransformed (raw) means
Post-hoc subgroup analysis of time to intubation for studies using neuromuscular blockade
sub_time.NMBA<-time[time$nmba=="1",]
length(sub_time.NMBA$mtime.1)
## [1] 17
sum(sub_time.NMBA$ftime.1,sub_time.NMBA$ftime.2)
## [1] 1174
mcont_sub_time.NMBA<-meta::metacont(ftime.1,mtime.1,sdtime.1,ftime.2,mtime.2,sdtime.2,data=sub_time.NMBA,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,prediction = TRUE,sm="MD")
mcont_sub_time.NMBA
## MD 95%-CI %W(random)
## Ali 2013 -5.7000 [-10.8561; -0.5439] 5.8
## Das 2017 -3.6000 [ -4.1072; -3.0928] 7.4
## Jain 2018 -6.1000 [-10.2824; -1.9176] 6.3
## Javaherforooshzadeh 2020 4.0000 [ -3.4734; 11.4734] 4.7
## Kilinc 2019 16.6000 [ 12.1470; 21.0530] 6.1
## Kim 2008 12.2000 [ 7.7986; 16.6014] 6.2
## Manirajan 2020 0.8700 [ 0.0110; 1.7290] 7.4
## Nileshwar 2010 37.5600 [ 21.0401; 54.0799] 1.9
## Okumura 2019 5.1000 [ -0.2335; 10.4335] 5.7
## Orozco 2018 -9.0000 [-11.4985; -6.5015] 7.0
## Pangasa 2019 5.9000 [ 4.3335; 7.4665] 7.2
## Redel 2009 1.0000 [ -1.5303; 3.5303] 6.9
## Riad 2012 -28.7600 [-39.4959; -18.0241] 3.3
## Shayeghi 2007 5.4600 [ 2.2802; 8.6398] 6.7
## Singh 2009 1.8800 [ 0.7804; 2.9796] 7.3
## Singh 2017 5.0400 [ 3.7850; 6.2950] 7.3
## White 2012 21.0000 [ 8.6299; 33.3701] 2.8
##
## Number of studies combined: k = 17
##
## MD 95%-CI z p-value
## Random effects model 2.4242 [-0.2260; 5.0744] 1.79 0.0730
## Prediction interval [-8.5445; 13.3929]
##
## Quantifying heterogeneity:
## tau^2 = 24.6542 [25.1710; 170.3725]; tau = 4.9653 [5.0171; 13.0527];
## I^2 = 97.0% [96.1%; 97.7%]; H = 5.77 [5.08; 6.55]
##
## Test of heterogeneity:
## Q d.f. p-value
## 532.36 16 < 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
sub_time.NMBA_infants<-time[time$nmba=="1" & (time$age.group=="neonate" |time$age.group=="infant" | time$age.group=="neonate + infant") ,]
length(sub_time.NMBA_infants$mtime.1)
## [1] 5
sum(sub_time.NMBA_infants$ftime.1,sub_time.NMBA_infants$ftime.2)
## [1] 303
mcont_sub_time.NMBA_infant<-meta::metacont(ftime.1,mtime.1,sdtime.1,ftime.2,mtime.2,sdtime.2,data=sub_time.NMBA_infants,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,prediction = TRUE,sm="MD")
mcont_sub_time.NMBA_infant
## MD 95%-CI %W(random)
## Jain 2018 -6.1000 [-10.2824; -1.9176] 13.9
## Manirajan 2020 0.8700 [ 0.0110; 1.7290] 29.3
## Okumura 2019 5.1000 [ -0.2335; 10.4335] 10.3
## Shayeghi 2007 5.4600 [ 2.2802; 8.6398] 18.0
## Singh 2009 1.8800 [ 0.7804; 2.9796] 28.5
##
## Number of studies combined: k = 5
##
## MD 95%-CI z p-value
## Random effects model 1.4560 [-0.6402; 3.5523] 1.36 0.1734
## Prediction interval [-5.5521; 8.4641]
##
## Quantifying heterogeneity:
## tau^2 = 3.7054 [2.1968; >100.0000]; tau = 1.9249 [1.4821; >10.0000];
## I^2 = 82.3% [59.3%; 92.3%]; H = 2.38 [1.57; 3.60]
##
## Test of heterogeneity:
## Q d.f. p-value
## 22.58 4 0.0002
##
## 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::metabias(mcont_sub_time.NMBA, method.bias = "linreg")
##
## Linear regression test of funnel plot asymmetry
##
## data: mcont_sub_time.NMBA
## t = 1.7055, df = 15, p-value = 0.1087
## alternative hypothesis: asymmetry in funnel plot
## sample estimates:
## bias se.bias intercept
## 3.147707 1.845580 -2.324222
#Forest plot for time to intubation in neonates and infants
meta::forest(mcont_time.infant,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Funnel Plot for time for intubation
meta::funnel(mcont_time,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mcont_time, method.bias = "linreg")
##
## Linear regression test of funnel plot asymmetry
##
## data: mcont_time
## t = 1.3218, df = 18, p-value = 0.2028
## alternative hypothesis: asymmetry in funnel plot
## sample estimates:
## bias se.bias intercept
## 2.518808 1.905557 -2.569222
dmetar::eggers.test(mcont_time)
## Intercept ConfidenceInterval t p
## Egger's test 2.519 -1.205-6.243 1.322 0.20278
meta::funnel(mcont_time,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
trimfill_time<-meta::trimfill(mcont_time)
trimfill_time
## MD 95%-CI %W(random)
## Ali 2013 -5.7000 [-10.8561; -0.5439] 4.3
## Das 2017 -3.6000 [ -4.1072; -3.0928] 5.2
## Jain 2018 -6.1000 [-10.2824; -1.9176] 4.6
## Javaherforooshzadeh 2020 4.0000 [ -3.4734; 11.4734] 3.7
## Kilinc 2019 16.6000 [ 12.1470; 21.0530] 4.5
## Kim 2008 12.2000 [ 7.7986; 16.6014] 4.5
## Manirajan 2020 0.8700 [ 0.0110; 1.7290] 5.1
## Nileshwar 2010 37.5600 [ 21.0401; 54.0799] 1.7
## Okumura 2019 5.1000 [ -0.2335; 10.4335] 4.3
## Orozco 2018 -9.0000 [-11.4985; -6.5015] 4.9
## Pangasa 2019 5.9000 [ 4.3335; 7.4665] 5.1
## Redel 2009 1.0000 [ -1.5303; 3.5303] 4.9
## Riad 2012 -28.7600 [-39.4959; -18.0241] 2.8
## Saran 2019 -11.7000 [-13.2799; -10.1201] 5.1
## Shayeghi 2007 5.4600 [ 2.2802; 8.6398] 4.8
## Shulman 2000 6.0000 [ 1.7599; 10.2401] 4.6
## Singh 2009 1.8800 [ 0.7804; 2.9796] 5.1
## Singh 2017 5.0400 [ 3.7850; 6.2950] 5.1
## Tao 2018 -1.4600 [ -7.2538; 4.3338] 4.1
## White 2012 21.0000 [ 8.6299; 33.3701] 2.4
## Filled: Kim 2008 -14.9812 [-19.3826; -10.5799] 4.5
## Filled: Kilinc 2019 -19.3812 [-23.8343; -14.9282] 4.5
## Filled: White 2012 -23.7812 [-36.1513; -11.4111] 2.4
## Filled: Nileshwar 2010 -40.3412 [-56.8612; -23.8213] 1.7
##
## Number of studies combined: k = 24 (with 4 added studies)
##
## MD 95%-CI z p-value
## Random effects model -1.3292 [ -3.9665; 1.3081] -0.99 0.3232
## Prediction interval [-13.9133; 11.2548]
##
## Quantifying heterogeneity:
## tau^2 = 35.0088 [42.3628; 214.2952]; tau = 5.9168 [6.5087; 14.6388];
## I^2 = 97.3% [96.7%; 97.8%]; H = 6.10 [5.51; 6.76]
##
## Test of heterogeneity:
## Q d.f. p-value
## 856.43 23 < 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
## - Trim-and-fill method to adjust for funnel plot asymmetry
Major complications
major<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Major.csv")
length(major$fmajor.e1)
## [1] 19
#Number of comparisons with zero events in both arms
major_zeros<-dplyr::filter(major,major$fmajor.e1==0 & major$fmajor.e2==0)
length(major_zeros$fmajor.e1)
## [1] 10
#Table for Meta-analysis of Major complications
major_analysis<-dplyr::filter(major,major$fmajor.e1>0 | major$fmajor.e2>0)
#Number of comparisons and patients meta-analized for Major complications
length(major_analysis$fmajor.e1)
## [1] 9
sum(major_analysis$fmajor.t1,major_analysis$fmajor.t2)
## [1] 1395
#Meta-analysis for Major complications
mbin_major_random<-meta::metabin(fmajor.e1,fmajor.t1,fmajor.e2,fmajor.t2,data = major_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_major_random
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.2598 [0.0851; 0.7929] 22.1
## Giraudon 2017 1.0312 [0.0631; 16.8411] 5.7
## Jagannathan 2017 0.3266 [0.0334; 3.1944] 8.1
## Nileshwar 2010 1.0000 [0.0582; 17.1812] 5.5
## Riveros 2013 0.5000 [0.0305; 8.1840] 5.7
## Salama 2019 1.0000 [0.1315; 7.6046] 9.8
## Saran 2019 0.2000 [0.0923; 0.4333] 30.8
## Tao 2018 0.0781 [0.0041; 1.4704] 5.2
## Vadi 2016 0.8571 [0.0730; 10.0643] 7.1
##
## Number of studies combined: k = 9
##
## OR 95%-CI t p-value
## Random effects model 0.3445 [0.1899; 0.6247] -4.13 0.0033
## Prediction interval [0.0873; 1.3595]
##
## Quantifying heterogeneity:
## tau^2 = 0.2705 [0.0000; 1.4430]; tau = 0.5201 [0.0000; 1.2012];
## I^2 = 0.0% [0.0%; 49.2%]; H = 1.00 [1.00; 1.40]
##
## Test of heterogeneity:
## Q d.f. p-value
## 5.54 8 0.6984
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of major complications with direct laryngoscopes
meta::metaprop(event = fmajor.e2,n = fmajor.t2 ,studlab = paste(study),data = major,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Garcia-Marcinkiewicz 2020 0.0540 [0.0305; 0.0874]
## Giraudon 2017 0.0149 [0.0004; 0.0804]
## Inal 2010 0.0000 [0.0000; 0.1372]
## Jagannathan 2017 0.0300 [0.0062; 0.0852]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Javaherforooshzadeh 2020 0.0000 [0.0000; 0.1157]
## Manirajan 2020 0.0000 [0.0000; 0.0903]
## Nileshwar 2010 0.0500 [0.0013; 0.2487]
## Okumura 2019 0.0000 [0.0000; 0.1684]
## Pangasa 2019 0.0000 [0.0000; 0.1372]
## Riveros 2013 0.0222 [0.0006; 0.1177]
## Salama 2019 0.0667 [0.0082; 0.2207]
## Saran 2019 0.5000 [0.3798; 0.6202]
## Shulman 2000 0.0000 [0.0000; 0.1372]
## Singh 2017 0.0000 [0.0000; 0.0711]
## Tao 2018 0.1429 [0.0481; 0.3026]
## Vadi 2016 0.0526 [0.0013; 0.2603]
## Vadi 2017 0.0000 [0.0000; 0.1122]
## Vlatten 2009 0.0000 [0.0000; 0.1323]
##
## Number of studies combined: k = 19
##
## proportion 95%-CI
## Random effects model 0.0148 [0.0044; 0.0483]
##
## Quantifying heterogeneity:
## tau^2 = 3.1134; tau = 1.7645; I^2 = 87.0%; H = 2.78
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 95.28 18 < 0.0001 Wald-type
## 154.09 18 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
#Forest plot for major complications
meta::forest(mbin_major_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for major complications
dmetar::find.outliers(mbin_major_random)
## No outliers detected (random-effects model).
#Influence Analysis for major complications
inf_analysis_major<-dmetar::InfluenceAnalysis(mbin_major_random,random = TRUE)
## [===========================================================================] DONE
plot(inf_analysis_major,"baujat")
#Meta-regression for major complications
#Controling for population characteristics (general, obese, neck immobilization)
meta::metareg(mbin_major_random,population)
## Warning in rma.uni(yi = TE[!exclude], sei = seTE[!exclude], data = dataset, :
## Redundant predictors dropped from the model.
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.2722 (SE = 0.2923)
## tau (square root of estimated tau^2 value): 0.5218
## I^2 (residual heterogeneity / unaccounted variability): 26.40%
## H^2 (unaccounted variability / sampling variability): 1.36
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 4.7967, p-val = 0.6848
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 0.9959, p-val = 0.3515
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.0000 1.0982 -0.0000 1.0000 -2.5968 2.5968
## populationgeneral -1.1276 1.1299 -0.9979 0.3515 -3.7994 1.5442
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for operator experience
meta::metareg(mbin_major_random,experience)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.3359 (SE = 0.3439)
## tau (square root of estimated tau^2 value): 0.5795
## I^2 (residual heterogeneity / unaccounted variability): 19.79%
## H^2 (unaccounted variability / sampling variability): 1.25
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 6) = 4.6084, p-val = 0.5949
##
## Test of Moderators (coefficients 2:3):
## F(df1 = 2, df2 = 6) = 0.2969, p-val = 0.7535
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -1.3480 0.6206 -2.1721 0.0728 -2.8666 0.1705
## experienceexperienced 0.5773 0.7852 0.7353 0.4899 -1.3440 2.4987
## experiencenon-experienced 0.2262 0.7622 0.2968 0.7766 -1.6389 2.0913
##
## intrcpt .
## experienceexperienced
## experiencenon-experienced
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for age group
meta::metareg(mbin_major_random,age.group)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.3432 (SE = 0.5028)
## tau (square root of estimated tau^2 value): 0.5858
## I^2 (residual heterogeneity / unaccounted variability): 15.80%
## H^2 (unaccounted variability / sampling variability): 1.19
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 3) = 2.0422, p-val = 0.5637
##
## Test of Moderators (coefficients 2:6):
## F(df1 = 5, df2 = 3) = 0.7559, p-val = 0.6350
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt 0.0156 0.8247 0.0189 0.9861 -2.6089 2.6401
## age.groupall groups -0.4108 1.1313 -0.3631 0.7406 -4.0111 3.1896
## age.groupinfant -1.3636 1.0279 -1.3266 0.2766 -4.6350 1.9077
## age.groupinfant + > 1 year -1.1346 1.2797 -0.8867 0.4406 -5.2072 2.9379
## age.groupneonate -0.9172 1.0936 -0.8387 0.4632 -4.3977 2.5633
## age.groupneonate + infant -1.6251 0.9806 -1.6573 0.1960 -4.7457 1.4955
##
## intrcpt
## age.groupall groups
## age.groupinfant
## age.groupinfant + > 1 year
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for predicted difficult intubation
meta::metareg(mbin_major_random,predicted)
##
## Mixed-Effects Model (k = 9; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.2722 (SE = 0.2923)
## tau (square root of estimated tau^2 value): 0.5218
## I^2 (residual heterogeneity / unaccounted variability): 26.40%
## H^2 (unaccounted variability / sampling variability): 1.36
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 7) = 4.7967, p-val = 0.6848
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 7) = 0.9959, p-val = 0.3515
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.0000 1.0982 -0.0000 1.0000 -2.5968 2.5968
## predictedeasy -1.1276 1.1299 -0.9979 0.3515 -3.7994 1.5442
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Subgroup analysis for major complications in neonates and infants
major.infant<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Major Neo & Infant.csv")
length(major.infant$fmajor.e1)
## [1] 7
#Number of comparisons with zero difficult laryngoscopies in both arms
major.infant_zeros<-dplyr::filter(major.infant,major.infant$fmajor.e1==0 & major.infant$fmajor.e2==0)
length(major.infant_zeros$fmajor.e1)
## [1] 3
#Table for Meta-analysis of major complications in neonates and infants
major.infant_analysis<-dplyr::filter(major.infant,major.infant$fmajor.e1>0 | major.infant$fmajor.e2>0)
#Number of comparisons and patients meta-analized for major complications
length(major.infant_analysis$fmajor.e1)
## [1] 4
sum(na.omit(major.infant_analysis$fmajor.t1),na.omit(major.infant_analysis$fmajor.t2))
## [1] 826
#Meta-analysis for major complications in neonates and infants
mbin_major.infant_fixed<-meta::metabin(fmajor.e1,fmajor.t1,fmajor.e2,fmajor.t2,data = major.infant_analysis,studlab = paste(study),comb.fixed = TRUE,comb.random = FALSE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_major.infant_fixed
## OR 95%-CI %W(fixed)
## Garcia-Marcinkiewicz 2020 0.2598 [0.0851; 0.7929] 28.2
## Salama 2019 1.0000 [0.1315; 7.6046] 3.6
## Saran 2019 0.2000 [0.0923; 0.4333] 57.7
## Tao 2018 0.0781 [0.0041; 1.4704] 10.4
##
## Number of studies combined: k = 4
##
## OR 95%-CI z p-value
## Fixed effect model 0.2329 [0.1296; 0.4183] -4.88 < 0.0001
## Prediction interval [0.0102; 6.5868]
##
## Quantifying heterogeneity:
## tau^2 = 0.4138 [0.0000; 13.8902]; tau = 0.6433 [0.0000; 3.7270];
## I^2 = 0.0% [0.0%; 83.0%]; H = 1.00 [1.00; 2.42]
##
## Test of heterogeneity:
## Q d.f. p-value
## 2.69 3 0.4411
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Continuity correction of 0.5 in studies with zero cell frequencies
mbin_major.infant_random<-meta::metabin(fmajor.e1,fmajor.t1,fmajor.e2,fmajor.t2,data = major.infant_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_major.infant_random
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.2598 [0.0851; 0.7929] 32.6
## Salama 2019 1.0000 [0.1315; 7.6046] 16.2
## Saran 2019 0.2000 [0.0923; 0.4333] 42.2
## Tao 2018 0.0781 [0.0041; 1.4704] 9.0
##
## Number of studies combined: k = 4
##
## OR 95%-CI t p-value
## Random effects model 0.2595 [0.0753; 0.8944] -3.47 0.0404
## Prediction interval [0.0102; 6.5868]
##
## Quantifying heterogeneity:
## tau^2 = 0.4138 [0.0000; 13.8902]; tau = 0.6433 [0.0000; 3.7270];
## I^2 = 0.0% [0.0%; 83.0%]; H = 1.00 [1.00; 2.42]
##
## Test of heterogeneity:
## Q d.f. p-value
## 2.69 3 0.4411
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of major complications with direct laryngoscopes in neonates and infants
meta::metaprop(event = fmajor.e2,n = fmajor.t2 ,studlab = study,data = major.infant,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Garcia-Marcinkiewicz 2020 0.0540 [0.0305; 0.0874]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Manirajan 2020 0.0000 [0.0000; 0.0903]
## Okumura 2019 0.0000 [0.0000; 0.1684]
## Salama 2019 0.0667 [0.0082; 0.2207]
## Saran 2019 0.5000 [0.3798; 0.6202]
## Tao 2018 0.1429 [0.0481; 0.3026]
##
## Number of studies combined: k = 7
##
## proportion 95%-CI
## Random effects model 0.0397 [0.0067; 0.2026]
##
## Quantifying heterogeneity:
## tau^2 = 3.6653; tau = 1.9145; I^2 = 94.1%; H = 4.11
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 69.22 6 < 0.0001 Wald-type
## 100.37 6 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
Post-hoc subgroup analysis of major complications for studies using neuromuscular blockade
major_analysis$nmba<-as.factor(major_analysis$nmba)
sub_major_analysis.NMBA<-major_analysis[major_analysis$nmba=="1",]
length(sub_major_analysis.NMBA$fmajor.e1)
## [1] 6
sum(sub_major_analysis.NMBA$fmajor.t1,sub_major_analysis.NMBA$fmajor.t2)
## [1] 1049
mbin_sub_major_analysis.NMBA_random<-meta::metabin(fmajor.e1,fmajor.t1,fmajor.e2,fmajor.t2,data = sub_major_analysis.NMBA,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_major_analysis.NMBA_random
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.2598 [0.0851; 0.7929] 44.1
## Jagannathan 2017 0.3266 [0.0334; 3.1944] 12.6
## Nileshwar 2010 1.0000 [0.0582; 17.1812] 8.3
## Riveros 2013 0.5000 [0.0305; 8.1840] 8.5
## Salama 2019 1.0000 [0.1315; 7.6046] 15.6
## Vadi 2016 0.8571 [0.0730; 10.0643] 10.9
##
## Number of studies combined: k = 6
##
## OR 95%-CI t p-value
## Random effects model 0.4445 [0.2264; 0.8727] -3.09 0.0272
## Prediction interval [0.1483; 1.3319]
##
## Quantifying heterogeneity:
## tau^2 = 0.0874 [0.0000; 1.1448]; tau = 0.2956 [0.0000; 1.0699];
## I^2 = 0.0% [0.0%; 41.1%]; H = 1.00 [1.00; 1.30]
##
## Test of heterogeneity:
## Q d.f. p-value
## 2.15 5 0.8274
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
sub_major_analysis.NMBA_infants<-major_analysis[major_analysis$nmba=="1" & (major_analysis$age.group=="neonate" |major_analysis$age.group=="infant" | major_analysis$age.group=="neonate + infant") ,]
length(sub_major_analysis.NMBA_infants$fmajor.e1)
## [1] 2
sum(sub_major_analysis.NMBA_infants$fmajor.t1,sub_major_analysis.NMBA_infants$fmajor.t2)
## [1] 612
mbin_sub_major_analysis.NMBA_infants_random<-meta::metabin(fmajor.e1,fmajor.t1,fmajor.e2,fmajor.t2,data = sub_major_analysis.NMBA_infants,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "OR")
mbin_sub_major_analysis.NMBA_infants_random
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.2598 [0.0851; 0.7929] 67.7
## Salama 2019 1.0000 [0.1315; 7.6046] 32.3
##
## Number of studies combined: k = 2
##
## OR 95%-CI t p-value
## Random effects model 0.4015 [0.0001; 1209.2746] -1.45 0.3849
##
## Quantifying heterogeneity:
## tau^2 = 0.3583; tau = 0.5986; I^2 = 23.2%; H = 1.14
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.30 1 0.2538
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
meta::funnel(mbin_sub_major_analysis.NMBA_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
#Forest plot for major complications in neonates and infants
meta::forest(mbin_major.infant_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Funnel Plot for major complications
meta::funnel(mbin_major_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mbin_major_random, method.bias = "linreg")
## Warning in print.metabias(x): Number of studies (k=9) too small to test for small study effects (k.min=10). Change argument 'k.min' if appropriate.
dmetar::eggers.test(mbin_major_random)
## Warning in dmetar::eggers.test(mbin_major_random): Your meta-analysis contains k
## = 9 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 1.011 0.0309999999999999-1.991 2.171 0.06648
meta::funnel(mbin_major_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
trimfill_major<-meta::trimfill(mbin_major_random)
trimfill_major
## OR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.2598 [0.0851; 0.7929] 14.1
## Giraudon 2017 1.0312 [0.0631; 16.8411] 5.5
## Jagannathan 2017 0.3266 [0.0334; 3.1944] 7.2
## Nileshwar 2010 1.0000 [0.0582; 17.1812] 5.3
## Riveros 2013 0.5000 [0.0305; 8.1840] 5.5
## Salama 2019 1.0000 [0.1315; 7.6046] 8.3
## Saran 2019 0.2000 [0.0923; 0.4333] 16.7
## Tao 2018 0.0781 [0.0041; 1.4704] 5.1
## Vadi 2016 0.8571 [0.0730; 10.0643] 6.5
## Filled: Vadi 2016 0.0578 [0.0049; 0.6790] 6.5
## Filled: Nileshwar 2010 0.0496 [0.0029; 0.8516] 5.3
## Filled: Salama 2019 0.0496 [0.0065; 0.3769] 8.3
## Filled: Giraudon 2017 0.0481 [0.0029; 0.7850] 5.5
##
## Number of studies combined: k = 13 (with 4 added studies)
##
## OR 95%-CI t p-value
## Random effects model 0.2277 [0.1137; 0.4559] -4.64 0.0006
## Prediction interval [0.0297; 1.7439]
##
## Quantifying heterogeneity:
## tau^2 = 0.7540 [0.0000; 2.6821]; tau = 0.8684 [0.0000; 1.6377];
## I^2 = 0.3% [0.0%; 56.7%]; H = 1.00 [1.00; 1.52]
##
## Test of heterogeneity:
## Q d.f. p-value
## 12.04 12 0.4426
##
## Details on meta-analytical method:
## - Inverse variance method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Trim-and-fill method to adjust for funnel plot asymmetry
Minor complications
minor<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Minor.csv")
length(minor$fminor.e1)
## [1] 29
#Number of comparisons with zero events in both arms
minor_zeros<-dplyr::filter(minor,minor$fminor.e1==0 & minor$fminor.e2==0)
length(minor_zeros$fminor.e1)
## [1] 15
#Table for Meta-analysis of minor complications
minor_analysis<-dplyr::filter(minor,minor$fminor.e1>0 | minor$fminor.e2>0)
#Number of comparisons and patients meta-analized for minor complications
length(minor_analysis$fminor.e1)
## [1] 14
sum(minor_analysis$fminor.t1,minor_analysis$fminor.t2)
## [1] 1710
#Meta-analysis for minor complications
mbin_minor_random<-meta::metabin(fminor.e1,fminor.t1,fminor.e2,fminor.t2,data = minor_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "RR")
mbin_minor_random
## RR 95%-CI %W(random)
## Ali 2013 0.2000 [0.0103; 3.8719] 3.6
## Das 2017 0.3333 [0.0367; 3.0260] 5.4
## Garcia-Marcinkiewicz 2020 0.9019 [0.3531; 2.3033] 10.8
## Giraudon 2017 1.0308 [0.4807; 2.2105] 11.6
## Jagannathan 2017 1.4211 [0.8471; 2.3839] 12.7
## Okumura 2019 0.2000 [0.0256; 1.5623] 5.9
## Orozco 2018 0.1429 [0.0184; 1.1085] 5.9
## Riveros 2013 9.0000 [0.4988; 162.3778] 3.8
## Salama 2019 0.2500 [0.0296; 2.1081] 5.6
## Saran 2019 0.4000 [0.0802; 1.9950] 7.6
## Singh 2009 0.3333 [0.0141; 7.8648] 3.3
## Vadi 2017 3.0000 [0.1270; 70.8729] 3.3
## White 2012 1.0000 [0.5822; 1.7177] 12.6
## Yi 2019 4.0000 [0.8814; 18.1539] 8.0
##
## Number of studies combined: k = 14
##
## RR 95%-CI t p-value
## Random effects model 0.7836 [0.4208; 1.4592] -0.85 0.4121
## Prediction interval [0.0996; 6.1638]
##
## Quantifying heterogeneity:
## tau^2 = 0.8133 [0.0000; 2.6557]; tau = 0.9018 [0.0000; 1.6296];
## I^2 = 31.4% [0.0%; 63.8%]; H = 1.21 [1.00; 1.66]
##
## Test of heterogeneity:
## Q d.f. p-value
## 18.96 13 0.1243
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of minor complications with direct laryngoscopes
meta::metaprop(event = fminor.e2,n = fminor.t2 ,studlab = paste(study),data = minor,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Ali 2013 0.1176 [0.0146; 0.3644]
## Das 2017 0.1000 [0.0211; 0.2653]
## Fiadjoe 2012 0.0000 [0.0000; 0.1157]
## Garcia-Marcinkiewicz 2020 0.0324 [0.0149; 0.0606]
## Giraudon 2017 0.1642 [0.0849; 0.2748]
## Inal 2010 0.0000 [0.0000; 0.1372]
## Jagannathan 2017 0.1900 [0.1184; 0.2807]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Javaherforooshzadeh 2020 0.0000 [0.0000; 0.1157]
## Manirajan 2020 0.0000 [0.0000; 0.0903]
## Nileshwar 2010 0.0000 [0.0000; 0.1684]
## Okumura 2019 0.2500 [0.0866; 0.4910]
## Orozco 2018 0.1750 [0.0734; 0.3278]
## Pangasa 2019 0.0000 [0.0000; 0.1372]
## Redel 2009 0.0000 [0.0000; 0.1157]
## Riveros 2013 0.0000 [0.0000; 0.0787]
## Riveros 2013 0.0000 [0.0000; 0.0787]
## Salama 2019 0.1333 [0.0376; 0.3072]
## Saran 2019 0.0694 [0.0229; 0.1547]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Singh 2009 0.0333 [0.0008; 0.1722]
## Singh 2017 0.0000 [0.0000; 0.0711]
## Singh 2017 0.0000 [0.0000; 0.0711]
## Tao 2018 0.0000 [0.0000; 0.1000]
## Vadi 2017 0.0000 [0.0000; 0.1122]
## Vadi 2017 0.0000 [0.0000; 0.1122]
## Vlatten 2009 0.0000 [0.0000; 0.1323]
## White 2012 0.4667 [0.2834; 0.6567]
## Yi 2019 0.0294 [0.0036; 0.1022]
##
## Number of studies combined: k = 29
##
## proportion 95%-CI
## Random effects model 0.0138 [0.0040; 0.0460]
##
## Quantifying heterogeneity:
## tau^2 = 4.7702; tau = 2.1841; I^2 = 91.9%; H = 3.52
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 58.75 28 0.0006 Wald-type
## 163.21 28 < 0.0001 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
#Forest plot for minor complications
meta::forest(mbin_minor_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Detecting Outliers for minor complications
dmetar::find.outliers(mbin_minor_random)
## No outliers detected (random-effects model).
#Influence Analysis for minor complications
inf_analysis_minor<-dmetar::InfluenceAnalysis(mbin_minor_random,random = TRUE)
## [===========================================================================] DONE
plot(inf_analysis_minor,"baujat")
#Meta-regression for minor complications
#Controling for population characteristics (general, obese, neck immobilization)
meta::metareg(mbin_minor_random,population)
##
## Mixed-Effects Model (k = 14; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.8061 (SE = 0.4466)
## tau (square root of estimated tau^2 value): 0.8978
## I^2 (residual heterogeneity / unaccounted variability): 72.27%
## H^2 (unaccounted variability / sampling variability): 3.61
## R^2 (amount of heterogeneity accounted for): 0.89%
##
## Test for Residual Heterogeneity:
## QE(df = 11) = 16.0833, p-val = 0.1381
##
## Test of Moderators (coefficients 2:3):
## F(df1 = 2, df2 = 11) = 1.0314, p-val = 0.3885
##
## Model Results:
##
## estimate se tval pval ci.lb
## intrcpt 1.0986 1.5851 0.6931 0.5026 -2.3901
## populationcleft lip and palate -2.7081 1.9792 -1.3683 0.1985 -7.0642
## populationgeneral -1.3021 1.6134 -0.8070 0.4367 -4.8531
## ci.ub
## intrcpt 4.5873
## populationcleft lip and palate 1.6481
## populationgeneral 2.2490
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for operator experience
meta::metareg(mbin_minor_random,experience)
##
## Mixed-Effects Model (k = 14; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.9525 (SE = 0.4970)
## tau (square root of estimated tau^2 value): 0.9760
## I^2 (residual heterogeneity / unaccounted variability): 65.52%
## H^2 (unaccounted variability / sampling variability): 2.90
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 11) = 17.8631, p-val = 0.0848
##
## Test of Moderators (coefficients 2:3):
## F(df1 = 2, df2 = 11) = 0.0561, p-val = 0.9457
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.1033 0.9749 -0.1059 0.9175 -2.2490 2.0424
## experienceexperienced -0.0747 1.0818 -0.0690 0.9462 -2.4556 2.3063
## experiencenon-experienced -0.2695 1.0851 -0.2483 0.8084 -2.6578 2.1188
##
## intrcpt
## experienceexperienced
## experiencenon-experienced
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for age group
meta::metareg(mbin_minor_random,age.group)
## Warning in rma.uni(yi = TE[!exclude], sei = seTE[!exclude], data = dataset, :
## Redundant predictors dropped from the model.
##
## Mixed-Effects Model (k = 14; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.7159 (SE = 0.5078)
## tau (square root of estimated tau^2 value): 0.8461
## I^2 (residual heterogeneity / unaccounted variability): 66.38%
## H^2 (unaccounted variability / sampling variability): 2.97
## R^2 (amount of heterogeneity accounted for): 11.97%
##
## Test for Residual Heterogeneity:
## QE(df = 8) = 11.5348, p-val = 0.1732
##
## Test of Moderators (coefficients 2:6):
## F(df1 = 5, df2 = 8) = 1.1974, p-val = 0.3900
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.3249 0.4677 -0.6948 0.5068 -1.4034 0.7535
## age.groupall groups 2.0104 1.1561 1.7390 0.1202 -0.6554 4.6763
## age.groupinfant -0.2938 0.8173 -0.3595 0.7286 -2.1785 1.5909
## age.groupinfant + > 1 year 0.5014 0.7098 0.7063 0.5000 -1.1355 2.1382
## age.groupneonate -1.0613 1.2617 -0.8412 0.4247 -3.9708 1.8481
## age.groupneonate + infant -0.6451 0.9624 -0.6703 0.5215 -2.8644 1.5742
##
## intrcpt
## age.groupall groups
## age.groupinfant
## age.groupinfant + > 1 year
## age.groupneonate
## age.groupneonate + infant
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Controling for predicted difficult intubation
meta::metareg(mbin_minor_random,predicted)
##
## Mixed-Effects Model (k = 14; tau^2 estimator: SJ)
##
## tau^2 (estimated amount of residual heterogeneity): 0.8744 (SE = 0.4493)
## tau (square root of estimated tau^2 value): 0.9351
## I^2 (residual heterogeneity / unaccounted variability): 72.46%
## H^2 (unaccounted variability / sampling variability): 3.63
## R^2 (amount of heterogeneity accounted for): 0.00%
##
## Test for Residual Heterogeneity:
## QE(df = 12) = 18.0636, p-val = 0.1138
##
## Test of Moderators (coefficient 2):
## F(df1 = 1, df2 = 12) = 0.1649, p-val = 0.6918
##
## Model Results:
##
## estimate se tval pval ci.lb ci.ub
## intrcpt -0.6287 0.9808 -0.6410 0.5335 -2.7657 1.5083
## predictedeasy 0.4183 1.0301 0.4061 0.6918 -1.8260 2.6626
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Subgroup analysis for minor complications in neonates and infants
minor.infant<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Pairwise Analyses/Table Pairwise Ped Minor Neo & Infant.csv")
length(minor.infant$fminor.e1)
## [1] 10
#Number of comparisons with zero difficult laryngoscopies in both arms
minor.infant_zeros<-dplyr::filter(minor.infant,minor.infant$fminor.e1==0 & minor.infant$fminor.e2==0)
length(minor.infant_zeros$fminor.e1)
## [1] 5
#Table for Meta-analysis of minor complications in neonates and infants
minor.infant_analysis<-dplyr::filter(minor.infant,minor.infant$fminor.e1>0 | minor.infant$fminor.e2>0)
#Number of comparisons and patients meta-analized for minor complications
length(minor.infant_analysis$fminor.e1)
## [1] 5
sum(na.omit(minor.infant_analysis$fminor.t1),na.omit(minor.infant_analysis$fminor.t2))
## [1] 856
#Meta-analysis for minor complications in neonates and infants
mbin_minor.infant_fixed<-meta::metabin(fminor.e1,fminor.t1,fminor.e2,fminor.t2,data = minor.infant_analysis,studlab = paste(study),comb.fixed = TRUE,comb.random = FALSE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "RR")
mbin_minor.infant_fixed
## RR 95%-CI %W(fixed)
## Garcia-Marcinkiewicz 2020 0.9019 [0.3531; 2.3033] 36.6
## Okumura 2019 0.2000 [0.0256; 1.5623] 20.5
## Salama 2019 0.2500 [0.0296; 2.1081] 16.4
## Saran 2019 0.4000 [0.0802; 1.9950] 20.5
## Singh 2009 0.3333 [0.0141; 7.8648] 6.1
##
## Number of studies combined: k = 5
##
## RR 95%-CI z p-value
## Fixed effect model 0.5139 [0.2642; 0.9999] -1.96 0.0500
## Prediction interval [0.1180; 2.1123]
##
## Quantifying heterogeneity:
## tau^2 = 0.1160 [0.0000; 2.2213]; tau = 0.3405 [0.0000; 1.4904];
## I^2 = 0.0% [0.0%; 70.0%]; H = 1.00 [1.00; 1.82]
##
## Test of heterogeneity:
## Q d.f. p-value
## 2.77 4 0.5969
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Continuity correction of 0.5 in studies with zero cell frequencies
mbin_minor.infant_random<-meta::metabin(fminor.e1,fminor.t1,fminor.e2,fminor.t2,data = minor.infant_analysis,studlab = paste(study),comb.fixed = FALSE,comb.random = TRUE,method.tau = "SJ",hakn = TRUE,prediction = TRUE,incr = 0.5,sm = "RR")
mbin_minor.infant_random
## RR 95%-CI %W(random)
## Garcia-Marcinkiewicz 2020 0.9019 [0.3531; 2.3033] 47.3
## Okumura 2019 0.2000 [0.0256; 1.5623] 13.4
## Salama 2019 0.2500 [0.0296; 2.1081] 12.6
## Saran 2019 0.4000 [0.0802; 1.9950] 20.7
## Singh 2009 0.3333 [0.0141; 7.8648] 6.0
##
## Number of studies combined: k = 5
##
## RR 95%-CI t p-value
## Random effects model 0.4993 [0.2176; 1.1455] -2.32 0.0809
## Prediction interval [0.1180; 2.1123]
##
## Quantifying heterogeneity:
## tau^2 = 0.1160 [0.0000; 2.2213]; tau = 0.3405 [0.0000; 1.4904];
## I^2 = 0.0% [0.0%; 70.0%]; H = 1.00 [1.00; 1.82]
##
## Test of heterogeneity:
## Q d.f. p-value
## 2.77 4 0.5969
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Continuity correction of 0.5 in studies with zero cell frequencies
#Estimated probability of minor complications with direct laryngoscopes in neonates and infants
meta::metaprop(event = fminor.e2,n = fminor.t2 ,studlab = study,data = minor.infant,method = "GLMM",sm = "PLOGIT",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## proportion 95%-CI
## Fiadjoe 2012 0.0000 [0.0000; 0.1157]
## Garcia-Marcinkiewicz 2020 0.0324 [0.0149; 0.0606]
## Jain 2018 0.0000 [0.0000; 0.1089]
## Manirajan 2020 0.0000 [0.0000; 0.0903]
## Okumura 2019 0.2500 [0.0866; 0.4910]
## Salama 2019 0.1333 [0.0376; 0.3072]
## Saran 2019 0.0694 [0.0229; 0.1547]
## Shayeghi 2007 0.0000 [0.0000; 0.1089]
## Singh 2009 0.0333 [0.0008; 0.1722]
## Tao 2018 0.0000 [0.0000; 0.1000]
##
## Number of studies combined: k = 10
##
## proportion 95%-CI
## Random effects model 0.0236 [0.0061; 0.0869]
##
## Quantifying heterogeneity:
## tau^2 = 2.0556; tau = 1.4338; I^2 = 81.1%; H = 2.30
##
## Test of heterogeneity:
## Q d.f. p-value Test
## 16.39 9 0.0592 Wald-type
## 30.78 9 0.0003 Likelihood-Ratio
##
## Details on meta-analytical method:
## - Random intercept logistic regression model
## - Maximum-likelihood estimator for tau^2
## - Hartung-Knapp adjustment for random effects model
## - Logit transformation
## - Clopper-Pearson confidence interval for individual studies
## - Continuity correction of 0.5 in studies with zero cell frequencies
## (only used to calculate individual study results)
#Forest plot for minor complications in neonates and infants
meta::forest(mbin_minor.infant_random,sortvar=TE,lab.e="Videolaryngoscopes",lab.c="Macintosh",col.study="black",col.square="black",col.diamond="blue")
#Funnel Plot for minor complications
meta::funnel(mbin_minor_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
meta::metabias(mbin_minor_random, method.bias = "linreg")
##
## Linear regression test of funnel plot asymmetry
##
## data: mbin_minor_random
## t = -1.4808, df = 12, p-value = 0.1644
## alternative hypothesis: asymmetry in funnel plot
## sample estimates:
## bias se.bias intercept
## -0.7920668 0.5349006 0.3705592
dmetar::eggers.test(mbin_minor_random)
## Intercept ConfidenceInterval t p
## Egger's test -0.792 -1.772-0.188 -1.481 0.16444
meta::funnel(mbin_minor_random,ref.triangle=TRUE,contour.levels=c(0.9,0.95,0.99),col.contour=c("darkblue","blue","lightblue"))
trimfill_minor<-meta::trimfill(mbin_minor_random)
trimfill_minor
## RR 95%-CI %W(random)
## Ali 2013 0.2000 [0.0103; 3.8719] 3.6
## Das 2017 0.3333 [0.0367; 3.0260] 5.0
## Garcia-Marcinkiewicz 2020 0.9019 [0.3531; 2.3033] 8.7
## Giraudon 2017 1.0308 [0.4807; 2.2105] 9.1
## Jagannathan 2017 1.4211 [0.8471; 2.3839] 9.7
## Okumura 2019 0.2000 [0.0256; 1.5623] 5.4
## Orozco 2018 0.1429 [0.0184; 1.1085] 5.4
## Riveros 2013 9.0000 [0.4988; 162.3778] 3.7
## Salama 2019 0.2500 [0.0296; 2.1081] 5.2
## Saran 2019 0.4000 [0.0802; 1.9950] 6.6
## Singh 2009 0.3333 [0.0141; 7.8648] 3.3
## Vadi 2017 3.0000 [0.1270; 70.8729] 3.3
## White 2012 1.0000 [0.5822; 1.7177] 9.7
## Yi 2019 4.0000 [0.8814; 18.1539] 6.9
## Filled: Ali 2013 6.1841 [0.3194; 119.7212] 3.6
## Filled: Okumura 2019 6.1841 [0.7916; 48.3084] 5.4
## Filled: Orozco 2018 8.6577 [1.1157; 67.1812] 5.4
##
## Number of studies combined: k = 17 (with 3 added studies)
##
## RR 95%-CI t p-value
## Random effects model 1.0481 [0.5356; 2.0508] 0.15 0.8840
## Prediction interval [0.0910; 12.0695]
##
## Quantifying heterogeneity:
## tau^2 = 1.2142 [0.0000; 3.3909]; tau = 1.1019 [0.0000; 1.8414];
## I^2 = 41.1% [0.0%; 66.9%]; H = 1.30 [1.00; 1.74]
##
## Test of heterogeneity:
## Q d.f. p-value
## 27.15 16 0.0398
##
## Details on meta-analytical method:
## - Inverse variance method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Trim-and-fill method to adjust for funnel plot asymmetry
#Network Meta-analyses: each device assessed individualy
Network meta-analysis of failed first intubation attempt
net.first<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped First.csv")
sum(net.first$sampleSize)
## [1] 2324
table(net.first$treatment)
##
## Airtraq C_MAC C_MAC_D
## 3 2 1
## C_MAC_Miller_VL Glidescope KingVision_non_channelled
## 5 11 2
## Maccoy Macintosh McGrath_MAC
## 1 16 2
## Miller Truview
## 11 5
id<-c("Airtraq","C_MAC","C_MAC_D","C_MAC_Miller_VL","Glidescope","KingVision_non_channelled","Maccoy","Macintosh","McGrath_MAC","Miller","Truview")
description<-c("Airtraq","C-MAC","C-MAC D","C-MAC Miller","GlideScope","KingVision non-channelled","McCoy","Macintosh","McGrath MAC","Miller","Truview")
treat.codes.first<-data.frame(id,description)
node.first.samplesize<-c(sum(net.first$sampleSize[net.first$treatment=="Airtraq"]),sum(net.first$sampleSize[net.first$treatment=="C_MAC"]),sum(net.first$sampleSize[net.first$treatment=="C_MAC_D"]),sum(net.first$sampleSize[net.first$treatment=="C_MAC_Miller_VL"]),sum(net.first$sampleSize[net.first$treatment=="Glidescope"]),sum(net.first$sampleSize[net.first$treatment=="KingVision_non_channelled"]),sum(net.first$sampleSize[net.first$treatment=="Maccoy"]),sum(net.first$sampleSize[net.first$treatment=="Macintosh"]),sum(net.first$sampleSize[net.first$treatment=="McGrath_MAC"]),sum(net.first$sampleSize[net.first$treatment=="Miller"]),sum(net.first$sampleSize[net.first$treatment=="Truview"]))
node.first<-data.frame(id,node.first.samplesize)
graph.first<-gemtc::mtc.network(data.ab = net.first,treatments = treat.codes.first)
summary(graph.first)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Airtraq C_MAC C_MAC_D
## 3 2 1
## C_MAC_Miller_VL Glidescope KingVision_non_channelled
## 5 11 2
## Maccoy Macintosh McGrath_MAC
## 1 16 2
## Miller Truview
## 11 5
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 22 5
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Airtraq Macintosh 2
## 2 Airtraq Miller 1
## 3 C_MAC C_MAC_D 1
## 4 C_MAC Macintosh 1
## 5 C_MAC Truview 1
## 6 C_MAC_Miller_VL Glidescope 2
## 7 C_MAC_Miller_VL Miller 4
## 8 C_MAC_Miller_VL Truview 1
## 9 Glidescope Macintosh 7
## 10 Glidescope Miller 4
## 11 Glidescope Truview 1
## 12 KingVision_non_channelled Macintosh 1
## 13 KingVision_non_channelled Miller 1
## 14 Maccoy Macintosh 1
## 15 Maccoy Miller 1
## 16 Macintosh McGrath_MAC 2
## 17 Macintosh Miller 2
## 18 Macintosh Truview 3
## 19 Miller Truview 1
radian.rescale <- function(x, start=0, direction=1) {
c.rotate <- function(x) (x + start) %% (2 * pi) * direction
c.rotate(rescale(x, c(0, 2 * pi), range(x)))
}
lab.locs <- radian.rescale(x=1:11, direction=-1, start=0)
plot(graph.first,use.description = TRUE,vertex.shape="circle",vertex.color="dark blue",vertex.frame.color="black",vertex.size=node.first$node.first.samplesize/20,vertex.label.color="dark blue",vertex.label.dist=c(2,2,1,1.5,3,5.5,1.5,3,1.5,3,2.5),vertex.label.cex=1.0,edge.color="black",vertex.label.degree=lab.locs,edge.label=c(2,NA,NA,NA,NA,2,4,NA,7,4,NA,NA,NA,NA,NA,2,2,3,NA),edge.label.x=c(0.14,NA,NA,NA,NA,-0.45,-0.068,NA,-0.725,-0.34,NA,NA,NA,NA,NA,-0.36,-0.1,0.48,NA),edge.label.y=c(-0.35,NA,NA,NA,NA,0.92,0.55,NA,0.35,0.15,NA,NA,NA,NA,NA,-0.87,-0.81,-0.56,NA))
model.first <- mtc.model(graph.first,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.first.1 <- mtc.run(model.first, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 70
## Total graph size: 1329
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.first.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC.C_MAC_D 8.1049 4.0717 0.20359 0.68869
## d.Macintosh.Airtraq -2.2534 0.9941 0.04970 0.05930
## d.Macintosh.C_MAC 0.7658 2.0096 0.10048 0.15085
## d.Macintosh.Glidescope 0.6905 0.6496 0.03248 0.03922
## d.Macintosh.KingVision_non_channelled 2.0359 1.6275 0.08138 0.10770
## d.Macintosh.Maccoy -0.4800 1.7630 0.08815 0.13463
## d.Macintosh.McGrath_MAC -0.5371 1.1210 0.05605 0.05378
## d.Macintosh.Miller 0.9185 0.7736 0.03868 0.04572
## d.Macintosh.Truview 2.0795 0.9118 0.04559 0.05565
## d.Miller.C_MAC_Miller_VL -0.4720 0.5836 0.02918 0.02916
## sd.d 1.1010 0.4169 0.02085 0.03227
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC.C_MAC_D 1.9522 4.8397 7.9226 10.44822 17.1258
## d.Macintosh.Airtraq -4.0303 -2.9627 -2.2493 -1.60118 -0.1343
## d.Macintosh.C_MAC -3.2839 -0.5995 0.7501 1.97486 4.9834
## d.Macintosh.Glidescope -0.5329 0.2772 0.6405 1.07401 2.0917
## d.Macintosh.KingVision_non_channelled -1.0432 1.0812 1.9783 2.98968 5.6333
## d.Macintosh.Maccoy -3.7878 -1.5960 -0.3682 0.60993 3.0457
## d.Macintosh.McGrath_MAC -2.5710 -1.2697 -0.5663 0.18775 1.7435
## d.Macintosh.Miller -0.4706 0.3933 0.9281 1.39465 2.6568
## d.Macintosh.Truview 0.2731 1.4907 2.0720 2.65219 4.0276
## d.Miller.C_MAC_Miller_VL -1.5197 -0.8843 -0.4975 -0.07045 0.7658
## sd.d 0.3459 0.8305 1.0454 1.30729 2.1467
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 52.69343 42.80640 95.49983
##
## 59 data points, ratio 0.8931, I^2 = 0%
mcmc.first.2 <- mtc.run(model.first, n.adapt = 50000, n.iter = 1e6, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 70
## Total graph size: 1329
##
## Initializing model
summary(mcmc.first.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 50010:1050000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 1e+05
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC.C_MAC_D 24.7904 17.5017 0.0276726 0.5902183
## d.Macintosh.Airtraq -2.2409 0.9806 0.0015505 0.0019797
## d.Macintosh.C_MAC 0.6220 1.9624 0.0031029 0.0053183
## d.Macintosh.Glidescope 0.7646 0.6229 0.0009848 0.0011922
## d.Macintosh.KingVision_non_channelled 2.0580 1.7071 0.0026991 0.0032446
## d.Macintosh.Maccoy -0.6137 1.8009 0.0028475 0.0048995
## d.Macintosh.McGrath_MAC -0.5349 1.1792 0.0018645 0.0019278
## d.Macintosh.Miller 0.9336 0.7324 0.0011581 0.0014895
## d.Macintosh.Truview 2.0943 0.9358 0.0014796 0.0018439
## d.Miller.C_MAC_Miller_VL -0.4677 0.6497 0.0010272 0.0010952
## sd.d 1.1657 0.3792 0.0005996 0.0009845
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC.C_MAC_D 2.5836 11.0118 20.8890 34.84606 66.8926
## d.Macintosh.Airtraq -4.1982 -2.8693 -2.2366 -1.60886 -0.2990
## d.Macintosh.C_MAC -3.4245 -0.5953 0.6698 1.88891 4.3986
## d.Macintosh.Glidescope -0.4322 0.3584 0.7515 1.15326 2.0485
## d.Macintosh.KingVision_non_channelled -1.2353 0.9472 2.0195 3.13106 5.5537
## d.Macintosh.Maccoy -4.4711 -1.7070 -0.5176 0.58530 2.6838
## d.Macintosh.McGrath_MAC -2.8876 -1.2901 -0.5310 0.22200 1.8043
## d.Macintosh.Miller -0.4806 0.4540 0.9203 1.39598 2.4270
## d.Macintosh.Truview 0.3432 1.4713 2.0596 2.67616 4.0526
## d.Miller.C_MAC_Miller_VL -1.7399 -0.8812 -0.4765 -0.06266 0.8501
## sd.d 0.5458 0.8995 1.1213 1.38395 2.0459
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 51.35129 42.86538 94.21667
##
## 59 data points, ratio 0.8704, I^2 = 0%
gelman.plot(mcmc.first.1)
gelman.plot(mcmc.first.2)
gelman.diag(mcmc.first.1)$mpsrf
## [1] 1.213802
gelman.diag(mcmc.first.2)$mpsrf
## [1] 1.001452
anohe.first<-gemtc::mtc.anohe(graph.first,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 59
## Total graph size: 1058
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 79
## Total graph size: 1120
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 70
## Total graph size: 1329
##
## Initializing model
summary(anohe.first)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Airtraq Macintosh 0.00000 0.00000 0.5516954
## 2 Airtraq Miller NA 0.00000 0.5267631
## 3 C_MAC_Miller_VL Glidescope 0.00000 0.00000 0.4119693
## 4 C_MAC_Miller_VL Miller 82.20990 76.75623 0.9573134
## 5 C_MAC_Miller_VL Truview NA 0.00000 0.5858917
## 6 C_MAC C_MAC_D NA NA NA
## 7 C_MAC Macintosh NA NA NA
## 8 C_MAC Truview NA NA NA
## 9 Glidescope Macintosh 30.97467 22.97183 0.6167267
## 10 Glidescope Miller 0.00000 0.00000 0.9201322
## 11 Glidescope Truview NA 0.00000 0.9593539
## 12 KingVision_non_channelled Macintosh NA 0.00000 0.7470174
## 13 KingVision_non_channelled Miller NA 0.00000 0.9960237
## 14 Maccoy Macintosh NA NA NA
## 15 Maccoy Miller NA NA NA
## 16 Macintosh McGrath_MAC 0.00000 0.00000 NA
## 17 Macintosh Miller 62.89046 50.52436 0.5660287
## 18 Macintosh Truview 0.00000 0.00000 0.8126501
## 19 Miller Truview NA 64.68872 0.2623376
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 65.37973 36.33548
nodesplit.first <- gemtc::mtc.nodesplit(graph.first, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 71
## Total graph size: 1631
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 71
## Total graph size: 1630
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 69
## Total graph size: 1587
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 69
## Total graph size: 1583
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 71
## Total graph size: 1630
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 58
## Unobserved stochastic nodes: 70
## Total graph size: 1608
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 69
## Total graph size: 1585
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 58
## Unobserved stochastic nodes: 70
## Total graph size: 1608
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 71
## Total graph size: 1630
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 71
## Total graph size: 1630
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 58
## Unobserved stochastic nodes: 70
## Total graph size: 1607
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 69
## Total graph size: 1583
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 71
## Total graph size: 1630
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 59
## Unobserved stochastic nodes: 70
## Total graph size: 1329
##
## Initializing model
summary(nodesplit.first)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.Airtraq.Macintosh 0.46355
## 2 -> direct 2.6 (0.41, 5.0)
## 3 -> indirect 1.0 (-2.7, 5.3)
## 4 -> network 2.2 (0.30, 4.2)
## 5 d.Airtraq.Miller 0.47025
## 6 -> direct 2.1 (-1.2, 6.2)
## 7 -> indirect 3.8 (1.1, 6.6)
## 8 -> network 3.2 (1.0, 5.5)
## 9 d.C_MAC_Miller_VL.Glidescope 0.16905
## 10 -> direct -0.36 (-2.0, 1.3)
## 11 -> indirect 1.3 (-0.65, 3.1)
## 12 -> network 0.30 (-1.2, 1.8)
## 13 d.C_MAC_Miller_VL.Miller 0.52675
## 14 -> direct 0.29 (-1.4, 1.9)
## 15 -> indirect 1.7 (-2.6, 6.5)
## 16 -> network 0.48 (-0.85, 1.7)
## 17 d.C_MAC_Miller_VL.Truview 0.53285
## 18 -> direct 2.5 (-0.78, 6.6)
## 19 -> indirect 1.3 (-1.1, 3.6)
## 20 -> network 1.6 (-0.23, 3.6)
## 21 d.Glidescope.Macintosh 0.51315
## 22 -> direct -0.99 (-2.6, 0.45)
## 23 -> indirect -0.021 (-2.9, 2.6)
## 24 -> network -0.76 (-2.1, 0.43)
## 25 d.Glidescope.Miller 0.86090
## 26 -> direct -0.028 (-1.4, 1.4)
## 27 -> indirect -0.24 (-2.3, 1.9)
## 28 -> network 0.17 (-1.1, 1.4)
## 29 d.Glidescope.Truview 0.98815
## 30 -> direct 1.3 (-1.9, 4.7)
## 31 -> indirect 1.4 (-0.97, 4.0)
## 32 -> network 1.3 (-0.40, 3.2)
## 33 d.KingVision_non_channelled.Macintosh 0.64175
## 34 -> direct -17. (-86., 44.)
## 35 -> indirect -2.0 (-5.6, 1.3)
## 36 -> network -2.0 (-5.5, 1.2)
## 37 d.KingVision_non_channelled.Miller 0.69555
## 38 -> direct -1.1 (-4.3, 1.9)
## 39 -> indirect -14. (-88., 43.)
## 40 -> network -1.1 (-4.3, 1.9)
## 41 d.Macintosh.Miller 0.35245
## 42 -> direct -0.22 (-3.1, 2.8)
## 43 -> indirect 1.3 (-0.33, 3.0)
## 44 -> network 0.93 (-0.48, 2.4)
## 45 d.Macintosh.Truview 0.39270
## 46 -> direct 3.1 (0.28, 7.0)
## 47 -> indirect 1.4 (-1.5, 4.4)
## 48 -> network 2.1 (0.33, 4.1)
## 49 d.Miller.Truview 0.18150
## 50 -> direct -0.53 (-3.8, 2.6)
## 51 -> indirect 1.9 (-0.13, 4.3)
## 52 -> network 1.1 (-0.57, 3.0)
forest(gemtc::relative.effect(mcmc.first.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.first <- gemtc::rank.probability(mcmc.first.2, preferredDirection = -1)
plot(rank.probability.first, beside=TRUE)
sucra.first <- dmetar::sucra(rank.probability.first, lower.is.better = FALSE)
sucra.first
## SUCRA
## Airtraq 0.9540402
## McGrath_MAC 0.7343072
## Maccoy 0.7118047
## Macintosh 0.6743160
## C_MAC_Miller_VL 0.5618305
## C_MAC 0.5102142
## Glidescope 0.4632115
## Miller 0.4148795
## KingVision_non_channelled 0.2688397
## Truview 0.1976057
## C_MAC_D 0.0089505
Network meta-analysis of failed first intubation attempt in neonates and infants
net.first.infants<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped First Neo and Infants.csv")
sum(net.first.infants$sampleSize)
## [1] 599
sum(net.first.infants$responders)
## [1] 90
table(net.first.infants$treatment)
##
## C_MAC_Miller_VL Glidescope Macintosh Miller Truview
## 4 3 2 5 2
id<-c("C_MAC_Miller_VL","Glidescope","Macintosh","Miller","Truview")
description<-c("C-MAC Miller","GlideScope","Macintosh","Miller","Truview")
treat.codes.first.infants<-data.frame(id,description)
graph.first.infants<-gemtc::mtc.network(data.ab = net.first.infants,treatments = treat.codes.first.infants)
summary(graph.first.infants)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## C_MAC_Miller_VL Glidescope Macintosh Miller Truview
## 4 3 2 5 2
##
## $`Number of n-arm studies`
## 2-arm
## 8
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 C_MAC_Miller_VL Macintosh 1
## 2 C_MAC_Miller_VL Miller 2
## 3 C_MAC_Miller_VL Truview 1
## 4 Glidescope Macintosh 1
## 5 Glidescope Miller 2
## 6 Miller Truview 1
plot(graph.first.infants,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.frame.color="grey",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.first.infants <- mtc.model(graph.first.infants,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.first.infants.1 <- mtc.run(model.first.infants, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 21
## Total graph size: 367
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.first.infants.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh 2.895 1.5935 0.07968 0.16767
## d.C_MAC_Miller_VL.Miller 1.709 0.6378 0.03189 0.04460
## d.C_MAC_Miller_VL.Truview 1.723 1.0326 0.05163 0.07877
## d.Macintosh.Glidescope -2.101 1.4231 0.07115 0.13087
## sd.d 0.585 0.4499 0.02249 0.04035
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -0.139184 1.9125 2.8457 3.7838 6.3450
## d.C_MAC_Miller_VL.Miller 0.296844 1.3298 1.7100 2.0106 3.1722
## d.C_MAC_Miller_VL.Truview -0.074185 0.9834 1.7086 2.3576 3.9355
## d.Macintosh.Glidescope -5.283171 -2.8505 -2.0499 -1.1152 0.6529
## sd.d 0.009384 0.2241 0.4867 0.8692 1.6350
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 12.98683 12.21300 25.19983
##
## 16 data points, ratio 0.8117, I^2 = 0%
mcmc.first.infants.2 <- mtc.run(model.first.infants, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 21
## Total graph size: 367
##
## Initializing model
summary(mcmc.first.infants.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh 2.9455 1.8674 0.009337 0.027831
## d.C_MAC_Miller_VL.Miller 1.7663 0.6469 0.003234 0.004771
## d.C_MAC_Miller_VL.Truview 1.7894 0.9598 0.004799 0.007805
## d.Macintosh.Glidescope -2.0868 1.5166 0.007583 0.023365
## sd.d 0.6225 0.4575 0.002287 0.005008
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -0.60246 1.7360 2.8885 4.101 6.8345
## d.C_MAC_Miller_VL.Miller 0.41411 1.3979 1.7681 2.135 3.1003
## d.C_MAC_Miller_VL.Truview -0.05948 1.1757 1.7590 2.376 3.8089
## d.Macintosh.Glidescope -5.43680 -2.9846 -1.9768 -1.079 0.6431
## sd.d 0.02452 0.2457 0.5231 0.922 1.6531
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 12.95025 12.33156 25.28181
##
## 16 data points, ratio 0.8094, I^2 = 0%
gelman.plot(mcmc.first.infants.1)
gelman.plot(mcmc.first.infants.2)
gelman.diag(mcmc.first.infants.1)$mpsrf
## [1] 1.104716
gelman.diag(mcmc.first.infants.2)$mpsrf
## [1] 1.001237
anohe.first.infants<-gemtc::mtc.anohe(graph.first.infants,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 16
## Total graph size: 302
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 23
## Total graph size: 347
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 21
## Total graph size: 367
##
## Initializing model
summary(anohe.first.infants)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 C_MAC_Miller_VL Macintosh NA 0 0.5654910
## 2 C_MAC_Miller_VL Miller 0 0 0.7768532
## 3 C_MAC_Miller_VL Truview NA 0 0.6059532
## 4 Glidescope Macintosh NA 0 0.7970514
## 5 Glidescope Miller 0 0 0.9561186
## 6 Miller Truview NA 0 0.5954584
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 0 0
nodesplit.first.infants <- gemtc::mtc.nodesplit(graph.first.infants, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 22
## Total graph size: 457
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 22
## Total graph size: 454
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 22
## Total graph size: 454
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 22
## Total graph size: 453
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 22
## Total graph size: 453
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 22
## Total graph size: 453
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 21
## Total graph size: 367
##
## Initializing model
summary(nodesplit.first.infants)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.C_MAC_Miller_VL.Macintosh 0.66260
## 2 -> direct -6.0 (-55., 32.)
## 3 -> indirect 3.0 (-0.54, 7.2)
## 4 -> network 2.9 (-0.64, 7.0)
## 5 d.C_MAC_Miller_VL.Miller 0.51780
## 6 -> direct 1.6 (0.014, 3.1)
## 7 -> indirect 2.9 (-0.84, 7.1)
## 8 -> network 1.8 (0.43, 3.1)
## 9 d.C_MAC_Miller_VL.Truview 0.48530
## 10 -> direct 2.4 (-0.17, 6.2)
## 11 -> indirect 1.1 (-2.1, 4.0)
## 12 -> network 1.8 (-0.088, 3.8)
## 13 d.Glidescope.Macintosh 0.49820
## 14 -> direct 2.0 (-0.58, 5.6)
## 15 -> indirect -11. (-58., 26.)
## 16 -> network 2.0 (-0.65, 5.6)
## 17 d.Glidescope.Miller 0.43550
## 18 -> direct 0.86 (-0.88, 2.7)
## 19 -> indirect 16. (-22., 65.)
## 20 -> network 0.89 (-0.84, 2.8)
## 21 d.Miller.Truview 0.47685
## 22 -> direct -0.53 (-3.3, 2.1)
## 23 -> indirect 0.83 (-2.2, 4.8)
## 24 -> network -0.0059 (-1.9, 2.0)
forest(gemtc::relative.effect(mcmc.first.infants.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.first.infants <- gemtc::rank.probability(mcmc.first.infants.2, preferredDirection = -1)
plot(rank.probability.first.infants, beside=TRUE)
sucra.first.infants <- dmetar::sucra(rank.probability.first.infants, lower.is.better = FALSE)
sucra.first.infants
## SUCRA
## C_MAC_Miller_VL 0.9292750
## Glidescope 0.6916500
## Truview 0.3689000
## Miller 0.3523562
## Macintosh 0.1578188
Network meta-analysis of failed first intubation attempt for clustered blades according to their geometry
net.first.cluster<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped First Clustered.csv")
sum(net.first.cluster$sampleSize)
## [1] 2189
table(net.first.cluster$treatment)
##
## Channelled_VL DL Hyperangulated_VL Standard_VL
## 3 23 18 9
id<-c("Channelled_VL","DL","Hyperangulated_VL","Standard_VL")
description<-c("Channelled-VL","Direct laryngoscope","Hyperangulated-VL","Standard-VL")
treat.codes.first.cluster<-data.frame(id,description)
graph.first.cluster<-gemtc::mtc.network(data.ab = net.first.cluster,treatments = treat.codes.first.cluster)
summary(graph.first.cluster)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Channelled_VL DL Hyperangulated_VL Standard_VL
## 3 23 18 9
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 22 3
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Channelled_VL DL 3
## 2 DL Hyperangulated_VL 16
## 3 DL Standard_VL 7
## 4 Hyperangulated_VL Standard_VL 5
plot(graph.first.cluster,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.frame.color="light grey",vertex.size=20,vertex.label.color="dark blue",,vertex.label.cex=1.0,edge.color="light blue")
model.first.cluster <- mtc.model(graph.first.cluster,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.first.cluster.1 <- mtc.run(model.first.cluster, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 53
## Unobserved stochastic nodes: 57
## Total graph size: 1088
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.first.cluster.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.DL.Channelled_VL -2.3900 0.9601 0.04801 0.06592
## d.DL.Hyperangulated_VL 0.6529 0.4137 0.02069 0.02353
## d.DL.Standard_VL -0.5237 0.5273 0.02637 0.03007
## sd.d 1.1738 0.3517 0.01759 0.02237
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.DL.Channelled_VL -4.1207 -3.0198 -2.4375 -1.8481 -0.4515
## d.DL.Hyperangulated_VL -0.1723 0.3837 0.6346 0.9087 1.4731
## d.DL.Standard_VL -1.5389 -0.8911 -0.5304 -0.1686 0.4177
## sd.d 0.5833 0.9337 1.1240 1.3958 1.8979
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 46.80989 36.30028 83.11016
##
## 53 data points, ratio 0.8832, I^2 = 0%
mcmc.first.cluster.2 <- mtc.run(model.first.cluster, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 53
## Unobserved stochastic nodes: 57
## Total graph size: 1088
##
## Initializing model
summary(mcmc.first.cluster.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.DL.Channelled_VL -2.4740 0.9263 0.004632 0.005791
## d.DL.Hyperangulated_VL 0.6805 0.4154 0.002077 0.002465
## d.DL.Standard_VL -0.5233 0.5058 0.002529 0.002699
## sd.d 1.1229 0.3397 0.001699 0.002836
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.DL.Channelled_VL -4.3545 -3.0655 -2.4603 -1.8651 -0.6744
## d.DL.Hyperangulated_VL -0.1140 0.4110 0.6716 0.9407 1.5311
## d.DL.Standard_VL -1.5283 -0.8499 -0.5231 -0.1998 0.4863
## sd.d 0.5614 0.8869 1.0873 1.3185 1.9004
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 46.44763 35.63013 82.07776
##
## 53 data points, ratio 0.8764, I^2 = 0%
gelman.plot(mcmc.first.cluster.1)
gelman.plot(mcmc.first.cluster.2)
gelman.diag(mcmc.first.cluster.1)$mpsrf
## [1] 1.014394
gelman.diag(mcmc.first.cluster.2)$mpsrf
## [1] 1.000681
anohe.first.cluster<-gemtc::mtc.anohe(graph.first.cluster,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 53
## Unobserved stochastic nodes: 53
## Total graph size: 959
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 53
## Unobserved stochastic nodes: 58
## Total graph size: 1011
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 53
## Unobserved stochastic nodes: 57
## Total graph size: 1088
##
## Initializing model
summary(anohe.first.cluster)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Channelled_VL DL 0.00000 0.00000 NA
## 2 DL Hyperangulated_VL 21.54775 18.11726 0.6111609
## 3 DL Standard_VL 65.94711 59.58384 0.9477567
## 4 Hyperangulated_VL Standard_VL 61.91936 56.51371 0.7825278
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 43.85286 42.82378
nodesplit.first.cluster <- gemtc::mtc.nodesplit(graph.first.cluster, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 50
## Unobserved stochastic nodes: 55
## Total graph size: 1081
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 50
## Unobserved stochastic nodes: 55
## Total graph size: 1079
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 50
## Unobserved stochastic nodes: 55
## Total graph size: 1082
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 53
## Unobserved stochastic nodes: 57
## Total graph size: 1088
##
## Initializing model
summary(nodesplit.first.cluster)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.DL.Hyperangulated_VL 0.3611
## 2 -> direct 0.68 (-0.038, 1.5)
## 3 -> indirect 2.0 (-0.58, 5.8)
## 4 -> network 0.67 (-0.11, 1.5)
## 5 d.DL.Standard_VL 0.0925
## 6 -> direct -0.23 (-1.4, 1.1)
## 7 -> indirect -2.9 (-7.0, 0.011)
## 8 -> network -0.53 (-1.5, 0.49)
## 9 d.Hyperangulated_VL.Standard_VL 0.4996
## 10 -> direct -0.97 (-2.5, 0.22)
## 11 -> indirect -1.7 (-3.4, 0.057)
## 12 -> network -1.2 (-2.3, -0.17)
forest(gemtc::relative.effect(mcmc.first.cluster.2, t1 = "DL"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.first.cluster <- gemtc::rank.probability(mcmc.first.cluster.2, preferredDirection = -1)
plot(rank.probability.first.cluster, beside=TRUE)
sucra.first.cluster <- dmetar::sucra(rank.probability.first.cluster, lower.is.better = FALSE)
sucra.first.cluster
## SUCRA
## Channelled_VL 0.98751667
## Standard_VL 0.62516667
## DL 0.36685000
## Hyperangulated_VL 0.02046667
Network meta-analysis of failed first intubation attempt in neonates and infants clustered acconding to their geometry
net.first.infants.cluster<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped First Neo and Infants Clustered.csv")
sum(net.first.infants.cluster$sampleSize)
## [1] 599
sum(net.first.infants.cluster$responders)
## [1] 90
table(net.first.infants.cluster$treatment)
##
## DL hyperangulated_VL standard_VL
## 7 5 4
id<-c("DL","hyperangulated_VL","standard_VL")
description<-c("Direct laryngoscope","Hyperangulated-VL","Standard-VL")
treat.codes.first.infants.cluster<-data.frame(id,description)
graph.first.infants.cluster<-gemtc::mtc.network(data.ab = net.first.infants.cluster,treatments = treat.codes.first.infants.cluster)
summary(graph.first.infants.cluster)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## DL hyperangulated_VL standard_VL
## 7 5 4
##
## $`Number of n-arm studies`
## 2-arm
## 8
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 DL hyperangulated_VL 4
## 2 DL standard_VL 3
## 3 hyperangulated_VL standard_VL 1
plot(graph.first.infants.cluster,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.frame.color="grey",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.first.infants.cluster <- mtc.model(graph.first.infants.cluster,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.first.infants.cluster.1 <- mtc.run(model.first.infants.cluster, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 19
## Total graph size: 347
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.first.infants.cluster.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.DL.hyperangulated_VL -0.7468 0.5215 0.02607 0.02879
## d.DL.standard_VL -1.9019 0.5511 0.02756 0.02959
## sd.d 0.5313 0.3966 0.01983 0.03401
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.DL.hyperangulated_VL -1.80516 -1.0831 -0.7412 -0.4388 0.2363
## d.DL.standard_VL -3.06642 -2.2278 -1.9023 -1.5377 -0.9187
## sd.d 0.02198 0.2078 0.4358 0.7886 1.4725
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 12.50476 10.75603 23.26078
##
## 16 data points, ratio 0.7815, I^2 = 0%
mcmc.first.infants.cluster.2 <- mtc.run(model.first.infants.cluster, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 19
## Total graph size: 347
##
## Initializing model
summary(mcmc.first.infants.cluster.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.DL.hyperangulated_VL -0.7240 0.5474 0.002737 0.004168
## d.DL.standard_VL -1.9299 0.5880 0.002940 0.003780
## sd.d 0.5492 0.4213 0.002106 0.004698
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.DL.hyperangulated_VL -1.83747 -1.0684 -0.7211 -0.3721 0.3466
## d.DL.standard_VL -3.17293 -2.2591 -1.9147 -1.5834 -0.7747
## sd.d 0.02059 0.2074 0.4526 0.8035 1.5743
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 12.37808 10.57200 22.95008
##
## 16 data points, ratio 0.7736, I^2 = 0%
gelman.plot(mcmc.first.infants.cluster.1)
gelman.plot(mcmc.first.infants.cluster.2)
gelman.diag(mcmc.first.infants.cluster.1)$mpsrf
## [1] 1.02216
gelman.diag(mcmc.first.infants.cluster.2)$mpsrf
## [1] 1.001676
anohe.first.infants.cluster<-gemtc::mtc.anohe(graph.first.infants.cluster,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 16
## Total graph size: 302
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 20
## Total graph size: 341
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 19
## Total graph size: 347
##
## Initializing model
summary(anohe.first.infants.cluster)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 DL hyperangulated_VL 0 0.00000 0.3964063
## 2 DL standard_VL 0 0.00000 0.4593680
## 3 hyperangulated_VL standard_VL NA 19.99288 0.3633588
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 0 0
nodesplit.first.infants.cluster <- gemtc::mtc.nodesplit(graph.first.infants.cluster, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 20
## Total graph size: 395
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 20
## Total graph size: 395
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 20
## Total graph size: 393
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 16
## Unobserved stochastic nodes: 19
## Total graph size: 347
##
## Initializing model
summary(nodesplit.first.infants.cluster)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.DL.hyperangulated_VL 0.23835
## 2 -> direct -0.99 (-2.3, 0.16)
## 3 -> indirect 0.79 (-2.0, 4.7)
## 4 -> network -0.72 (-1.8, 0.33)
## 5 d.DL.standard_VL 0.23640
## 6 -> direct -1.7 (-3.0, -0.23)
## 7 -> indirect -3.5 (-7.3, -0.67)
## 8 -> network -1.9 (-3.2, -0.78)
## 9 d.hyperangulated_VL.standard_VL 0.22590
## 10 -> direct -2.5 (-6.1, 0.021)
## 11 -> indirect -0.67 (-2.4, 1.2)
## 12 -> network -1.2 (-2.6, 0.17)
forest(gemtc::relative.effect(mcmc.first.infants.cluster.2, t1 = "DL"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.first.infants.cluster <- gemtc::rank.probability(mcmc.first.infants.cluster.2, preferredDirection = -1)
plot(rank.probability.first.infants.cluster, beside=TRUE)
sucra.first.infants.cluster <- dmetar::sucra(rank.probability.first.infants.cluster, lower.is.better = FALSE)
sucra.first.infants.cluster
## SUCRA
## standard_VL 0.9789125
## hyperangulated_VL 0.4774375
## DL 0.0436500
Network meta-analysis of failed intubationt within two attempts
net.two<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped 2 attempts.csv")
sum(net.two$sampleSize)
## [1] 1335
table(net.two$treatment)
##
## Airtraq C_MAC_Miller_VL Glidescope
## 4 6 7
## KingVision_non_channelled Macintosh Miller
## 1 10 9
## Truview
## 3
id<-c("Airtraq","C_MAC_Miller_VL","Glidescope","KingVision_non_channelled","Macintosh","Miller","Truview")
description<-c("Airtraq","C-MAC Miller","Glidescope","King Vision Non-channelled","Macintosh","Miller","Truview")
treat.codes.two<-data.frame(id,description)
graph.two<-gemtc::mtc.network(data.ab = net.two,treatments = treat.codes.two)
summary(graph.two)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Airtraq C_MAC_Miller_VL Glidescope
## 4 6 7
## KingVision_non_channelled Macintosh Miller
## 1 10 9
## Truview
## 3
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 17 2
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Airtraq C_MAC_Miller_VL 1
## 2 Airtraq Macintosh 2
## 3 Airtraq Miller 1
## 4 C_MAC_Miller_VL Glidescope 2
## 5 C_MAC_Miller_VL Macintosh 1
## 6 C_MAC_Miller_VL Miller 3
## 7 C_MAC_Miller_VL Truview 1
## 8 Glidescope Macintosh 3
## 9 Glidescope Miller 4
## 10 KingVision_non_channelled Miller 1
## 11 Macintosh Miller 2
## 12 Macintosh Truview 2
plot(graph.two,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.two <- gemtc::mtc.model(graph.two,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.two.1 <- gemtc::mtc.run(model.two, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 47
## Total graph size: 858
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.two.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Airtraq -6.23287 3.9985 0.19992 0.73631
## d.C_MAC_Miller_VL.Glidescope -0.18335 1.3109 0.06554 0.11838
## d.C_MAC_Miller_VL.Macintosh 0.07487 2.0620 0.10310 0.34717
## d.C_MAC_Miller_VL.Miller -0.59957 1.4892 0.07446 0.13238
## d.C_MAC_Miller_VL.Truview 7.50529 4.5303 0.22652 0.75798
## d.Miller.KingVision_non_channelled 25.27634 17.2431 0.86216 3.90315
## sd.d 1.20084 0.6794 0.03397 0.07314
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Airtraq -15.7664 -8.6663 -6.0014 -3.3031 0.9437
## d.C_MAC_Miller_VL.Glidescope -2.7379 -1.0173 -0.1089 0.7207 2.2062
## d.C_MAC_Miller_VL.Macintosh -3.4783 -1.3692 -0.1193 1.2901 4.5960
## d.C_MAC_Miller_VL.Miller -3.5805 -1.4584 -0.5512 0.2648 2.3042
## d.C_MAC_Miller_VL.Truview -0.2688 3.9257 7.6132 10.4532 16.6625
## d.Miller.KingVision_non_channelled 0.4856 9.4249 24.5413 37.4053 62.6408
## sd.d 0.1025 0.5681 1.2665 1.7744 2.2512
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 19.70410 13.40608 33.11018
##
## 40 data points, ratio 0.4926, I^2 = 0%
mcmc.two.2 <- gemtc::mtc.run(model.two, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 47
## Total graph size: 858
##
## Initializing model
summary(mcmc.two.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Airtraq -11.3296 8.8476 0.044238 0.63114
## d.C_MAC_Miller_VL.Glidescope -0.2354 1.3179 0.006590 0.01455
## d.C_MAC_Miller_VL.Macintosh 0.3172 2.4282 0.012141 0.04229
## d.C_MAC_Miller_VL.Miller -0.8018 1.4721 0.007360 0.01618
## d.C_MAC_Miller_VL.Truview 10.8492 8.0209 0.040104 0.45054
## d.Miller.KingVision_non_channelled 27.4562 20.9554 0.104777 1.01359
## sd.d 1.1748 0.6653 0.003326 0.01149
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Airtraq -34.27489 -15.5202 -9.5218 -5.1153 0.5508
## d.C_MAC_Miller_VL.Glidescope -2.87612 -1.0713 -0.2217 0.6016 2.3903
## d.C_MAC_Miller_VL.Macintosh -4.31896 -1.2534 0.2433 1.8388 5.2786
## d.C_MAC_Miller_VL.Miller -3.86224 -1.7072 -0.7390 0.1469 2.0237
## d.C_MAC_Miller_VL.Truview 0.43101 4.9662 9.2108 14.8406 30.9193
## d.Miller.KingVision_non_channelled 0.65131 11.0993 22.9027 39.6205 80.3793
## sd.d 0.05037 0.6106 1.1900 1.7522 2.2462
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 19.81728 13.98480 33.80208
##
## 40 data points, ratio 0.4954, I^2 = 0%
gelman.plot(mcmc.two.1)
gelman.plot(mcmc.two.2)
gelman.diag(mcmc.two.1)$mpsrf
## [1] 2.158663
gelman.diag(mcmc.two.2)$mpsrf
## [1] 1.046839
anohe.two<-gemtc::mtc.anohe(graph.two,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 40
## Total graph size: 709
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 53
## Total graph size: 772
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 47
## Total graph size: 858
##
## Initializing model
summary(anohe.two)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Airtraq C_MAC_Miller_VL NA 0.00000 0.7793228
## 2 Airtraq Macintosh 98.92350 0.00000 0.2838502
## 3 Airtraq Miller NA 0.00000 0.7319815
## 4 C_MAC_Miller_VL Glidescope 0.00000 0.00000 0.9889134
## 5 C_MAC_Miller_VL Macintosh NA 0.00000 0.6721985
## 6 C_MAC_Miller_VL Miller 32.20544 0.00000 0.8492037
## 7 C_MAC_Miller_VL Truview NA 0.00000 0.1111173
## 8 Glidescope Macintosh 44.40845 16.34103 0.9731192
## 9 Glidescope Miller 53.72872 0.00000 0.7949903
## 10 KingVision_non_channelled Miller NA NA NA
## 11 Macintosh Miller 98.13532 0.00000 0.6125545
## 12 Macintosh Truview 98.01730 0.00000 0.5709715
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 97.58554 0
nodesplit.two <- gemtc::mtc.nodesplit(graph.two, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 1000
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 999
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 999
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 38
## Unobserved stochastic nodes: 46
## Total graph size: 952
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 999
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 38
## Unobserved stochastic nodes: 46
## Total graph size: 950
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 999
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 999
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 38
## Unobserved stochastic nodes: 46
## Total graph size: 950
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 999
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 48
## Total graph size: 999
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 47
## Total graph size: 858
##
## Initializing model
summary(nodesplit.two)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.Airtraq.C_MAC_Miller_VL 0.36725
## 2 -> direct -9.9 (-76., 42.)
## 3 -> indirect 12. (0.020, 40.)
## 4 -> network 9.2 (-0.50, 30.)
## 5 d.Airtraq.Macintosh 0.18550
## 6 -> direct 13. (2.1, 45.)
## 7 -> indirect -14. (-67., 25.)
## 8 -> network 9.3 (1.4, 30.)
## 9 d.Airtraq.Miller 0.33620
## 10 -> direct -11. (-73., 35.)
## 11 -> indirect 11. (-0.61, 36.)
## 12 -> network 8.5 (-1.3, 29.)
## 13 d.C_MAC_Miller_VL.Glidescope 0.61675
## 14 -> direct 0.0045 (-2.7, 2.7)
## 15 -> indirect 5.3 (-19., 27.)
## 16 -> network -0.23 (-3.0, 2.4)
## 17 d.C_MAC_Miller_VL.Macintosh 0.63285
## 18 -> direct -12. (-80., 39.)
## 19 -> indirect 0.27 (-4.5, 5.4)
## 20 -> network 0.26 (-4.6, 5.4)
## 21 d.C_MAC_Miller_VL.Miller 0.18050
## 22 -> direct -1.5 (-5.8, 1.6)
## 23 -> indirect 21. (-10., 58.)
## 24 -> network -0.75 (-3.9, 2.1)
## 25 d.C_MAC_Miller_VL.Truview 0.11470
## 26 -> direct 16. (1.4, 52.)
## 27 -> indirect -16. (-70., 21.)
## 28 -> network 8.4 (0.22, 29.)
## 29 d.Glidescope.Macintosh 0.12805
## 30 -> direct -0.044 (-4.4, 4.3)
## 31 -> indirect 18. (-3.6, 51.)
## 32 -> network 0.46 (-3.5, 5.0)
## 33 d.Glidescope.Miller 0.15390
## 34 -> direct -0.43 (-3.4, 2.3)
## 35 -> indirect -28. (-78., 8.1)
## 36 -> network -0.53 (-3.4, 2.1)
## 37 d.Macintosh.Miller 0.46760
## 38 -> direct -17. (-72., 22.)
## 39 -> indirect -0.99 (-6.2, 3.8)
## 40 -> network -1.0 (-6.2, 3.7)
## 41 d.Macintosh.Truview 0.16790
## 42 -> direct -15. (-72., 26.)
## 43 -> indirect 17. (0.74, 49.)
## 44 -> network 8.3 (-1.7, 30.)
forest(relative.effect(mcmc.two.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.two <- gemtc::rank.probability(mcmc.two.2, preferredDirection = -1)
plot(rank.probability.two, beside=TRUE)
sucra.two <- dmetar::sucra(rank.probability.two, lower.is.better = FALSE)
sucra.two
## SUCRA
## Airtraq 0.9778583
## Miller 0.6786250
## Glidescope 0.5806625
## C_MAC_Miller_VL 0.5405833
## Macintosh 0.5176250
## Truview 0.1414083
## KingVision_non_channelled 0.0632375
Network meta-analysis of failed intubation within 2 attempts in neonates and infants
net.two.infants<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped 2 attempts Neo and Infants.csv")
sum(net.two.infants$sampleSize)
## [1] 395
table(net.two.infants$treatment)
##
## C_MAC_Miller_VL Glidescope Macintosh Miller Truview
## 3 3 2 3 1
id<-c("C_MAC_Miller_VL","Glidescope","Macintosh","Miller","Truview")
description<-c("C-MAC Miller","Glidescope","Macintosh","Miller","Truview")
treat.codes.two.infants<-data.frame(id,description)
graph.two.infants<-gemtc::mtc.network(data.ab = net.two.infants,treatments = treat.codes.two.infants)
summary(graph.two.infants)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## C_MAC_Miller_VL Glidescope Macintosh Miller Truview
## 3 3 2 3 1
##
## $`Number of n-arm studies`
## 2-arm
## 6
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 C_MAC_Miller_VL Macintosh 1
## 2 C_MAC_Miller_VL Miller 1
## 3 C_MAC_Miller_VL Truview 1
## 4 Glidescope Macintosh 1
## 5 Glidescope Miller 2
plot(graph.two.infants,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.frame.color="grey",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.two.infants <- mtc.model(graph.two.infants,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.two.infants.1 <- mtc.run(model.two.infants, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 17
## Total graph size: 280
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.two.infants.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh -13.3534 14.499 0.72496 3.02233
## d.C_MAC_Miller_VL.Miller -10.6173 16.745 0.83723 2.21934
## d.C_MAC_Miller_VL.Truview 7.4792 5.019 0.25096 0.98593
## d.Macintosh.Glidescope -6.8067 5.388 0.26941 1.11588
## sd.d 0.9403 0.605 0.03025 0.05374
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -43.74320 -22.5602 -12.263 -2.939 12.252
## d.C_MAC_Miller_VL.Miller -39.74292 -25.5271 -11.562 5.086 14.432
## d.C_MAC_Miller_VL.Truview 0.36195 3.6734 6.723 10.007 21.008
## d.Macintosh.Glidescope -17.21451 -11.1622 -5.803 -2.610 1.798
## sd.d 0.02744 0.3999 0.915 1.455 1.975
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 4.280445 3.474818 7.755263
##
## 12 data points, ratio 0.3567, I^2 = 0%
mcmc.two.infants.2 <- mtc.run(model.two.infants, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 17
## Total graph size: 280
##
## Initializing model
summary(mcmc.two.infants.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh -7.538 17.8980 0.089490 1.271075
## d.C_MAC_Miller_VL.Miller -9.186 18.1671 0.090836 1.296026
## d.C_MAC_Miller_VL.Truview 18.484 12.1019 0.060510 0.896241
## d.Macintosh.Glidescope -15.444 11.8368 0.059184 0.700795
## sd.d 1.007 0.5847 0.002924 0.005396
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -46.46661 -19.1799 -5.900 4.906 24.4544
## d.C_MAC_Miller_VL.Miller -47.21849 -21.1398 -7.784 3.581 23.8633
## d.C_MAC_Miller_VL.Truview 1.59474 8.6974 16.649 26.450 44.7692
## d.Macintosh.Glidescope -43.84147 -22.3759 -12.998 -6.245 0.5057
## sd.d 0.04953 0.4974 1.006 1.513 1.9728
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 3.892184 3.424957 7.317141
##
## 12 data points, ratio 0.3243, I^2 = 0%
gelman.plot(mcmc.two.infants.1)
gelman.plot(mcmc.two.infants.2)
gelman.diag(mcmc.two.infants.1)$mpsrf
## [1] 3.788439
gelman.diag(mcmc.two.infants.2)$mpsrf
## [1] 1.054625
anohe.two.infants<-gemtc::mtc.anohe(graph.two.infants,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 12
## Total graph size: 222
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 18
## Total graph size: 259
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 17
## Total graph size: 280
##
## Initializing model
summary(anohe.two.infants)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 C_MAC_Miller_VL Macintosh NA 0.000000 0.8845451
## 2 C_MAC_Miller_VL Miller NA 0.000000 0.9827247
## 3 C_MAC_Miller_VL Truview NA NA NA
## 4 Glidescope Macintosh NA 0.000000 0.8759861
## 5 Glidescope Miller 3.548795 6.624002 NA
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 11.39211 0
nodesplit.two.infants <- gemtc::mtc.nodesplit(graph.two.infants, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 18
## Total graph size: 368
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 18
## Total graph size: 368
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 18
## Total graph size: 366
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 18
## Total graph size: 366
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 17
## Total graph size: 280
##
## Initializing model
summary(nodesplit.two.infants)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.C_MAC_Miller_VL.Macintosh 0.88340
## 2 -> direct -9.5 (-61., 30.)
## 3 -> indirect -5.8 (-65., 50.)
## 4 -> network -6.0 (-46., 25.)
## 5 d.C_MAC_Miller_VL.Miller 0.92735
## 6 -> direct -12. (-66., 30.)
## 7 -> indirect -16. (-84., 38.)
## 8 -> network -9.2 (-50., 21.)
## 9 d.Glidescope.Macintosh 0.96210
## 10 -> direct 14. (-0.51, 49.)
## 11 -> indirect 15. (-57., 83.)
## 12 -> network 14. (-0.43, 44.)
## 13 d.Glidescope.Miller 0.97460
## 14 -> direct 8.3 (-1.4, 31.)
## 15 -> indirect 11. (-64., 94.)
## 16 -> network 9.9 (-1.1, 37.)
forest(gemtc::relative.effect(mcmc.two.infants.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.two.infants <- gemtc::rank.probability(mcmc.two.infants.2, preferredDirection = -1)
plot(rank.probability.two.infants, beside=TRUE)
sucra.two.infants <- dmetar::sucra(rank.probability.two.infants, lower.is.better = FALSE)
sucra.two.infants
## SUCRA
## Glidescope 0.9477125
## Miller 0.5408625
## Macintosh 0.5079375
## C_MAC_Miller_VL 0.4479375
## Truview 0.0555500
Network meta-analysis of failed intubation
net.fail<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped fail.csv")
sum(net.fail$sampleSize)
## [1] 2078
sum(net.fail$responders)
## [1] 38
table(net.fail$treatment)
##
## Airtraq Bullard C_MAC_Miller_VL
## 6 2 6
## Glidescope KingVision_non_channelled Macintosh
## 6 1 15
## McGrath_MAC Miller Pentax_AWS
## 2 13 1
## Truview
## 5
id<-c("Airtraq","Bullard","C_MAC_Miller_VL","Glidescope","KingVision_non_channelled","Macintosh","McGrath_MAC","Miller","Pentax_AWS","Truview")
description<-c("Airtraq","Bullard","C-MAC Miller","Glidescope","King Vision Non-channelled","Macintosh","McGrath MAC","Miller", "Pentax AWS","Truview")
treat.codes.fail<-data.frame(id,description)
graph.fail<-gemtc::mtc.network(data.ab = net.fail,treatments = treat.codes.fail)
summary(graph.fail)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Airtraq Bullard C_MAC_Miller_VL
## 6 2 6
## Glidescope KingVision_non_channelled Macintosh
## 6 1 15
## McGrath_MAC Miller Pentax_AWS
## 2 13 1
## Truview
## 5
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 27 1
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Airtraq C_MAC_Miller_VL 1
## 2 Airtraq Macintosh 3
## 3 Airtraq Miller 2
## 4 Bullard Macintosh 1
## 5 Bullard Miller 1
## 6 C_MAC_Miller_VL Glidescope 1
## 7 C_MAC_Miller_VL Macintosh 1
## 8 C_MAC_Miller_VL Miller 3
## 9 C_MAC_Miller_VL Truview 1
## 10 Glidescope Macintosh 3
## 11 Glidescope Miller 3
## 12 KingVision_non_channelled Miller 1
## 13 Macintosh McGrath_MAC 2
## 14 Macintosh Miller 2
## 15 Macintosh Pentax_AWS 1
## 16 Macintosh Truview 2
## 17 Miller Truview 2
plot(graph.fail,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.fail <- gemtc::mtc.model(graph.fail,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.fail.1 <- gemtc::mtc.run(model.fail, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 67
## Total graph size: 1223
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.fail.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.Airtraq 8.00932 13.2709 0.66355 2.82686
## d.Macintosh.Bullard 5.63003 3.5860 0.17930 0.36403
## d.Macintosh.C_MAC_Miller_VL 2.95836 4.3930 0.21965 0.62457
## d.Macintosh.Glidescope -7.41885 8.0691 0.40345 0.96257
## d.Macintosh.McGrath_MAC -0.05411 2.6089 0.13045 0.19177
## d.Macintosh.Miller 3.37375 4.2422 0.21211 0.61456
## d.Macintosh.Pentax_AWS 1.65005 2.3114 0.11557 0.14736
## d.Macintosh.Truview 7.89036 5.6080 0.28040 1.06627
## d.Miller.KingVision_non_channelled 16.77221 11.3225 0.56612 1.86762
## sd.d 1.51765 0.7732 0.03866 0.09909
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Macintosh.Airtraq -13.11200 -1.0158 4.6744 17.781 43.894
## d.Macintosh.Bullard -0.79400 3.1851 5.2685 7.581 13.790
## d.Macintosh.C_MAC_Miller_VL -5.91654 -0.1310 3.0687 5.828 11.467
## d.Macintosh.Glidescope -27.16700 -9.3672 -5.0054 -1.899 2.153
## d.Macintosh.McGrath_MAC -5.22708 -1.6329 -0.1972 1.323 6.118
## d.Macintosh.Miller -4.39882 0.2947 3.1896 6.188 12.008
## d.Macintosh.Pentax_AWS -2.76340 0.2536 1.4680 3.188 6.213
## d.Macintosh.Truview -1.35584 3.4287 7.3649 12.886 18.048
## d.Miller.KingVision_non_channelled -0.03745 9.0747 14.7440 22.088 47.969
## sd.d 0.20694 0.8738 1.4702 2.150 2.829
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 16.01713 13.72319 29.74033
##
## 57 data points, ratio 0.281, I^2 = 0%
mcmc.fail.2 <- gemtc::mtc.run(model.fail, n.adapt = 6000, n.iter = 1e6, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 67
## Total graph size: 1223
##
## Initializing model
summary(mcmc.fail.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 6010:1006000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 1e+05
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.Airtraq 32.20299 27.9450 0.044185 0.999968
## d.Macintosh.Bullard 7.31194 5.1113 0.008082 0.061651
## d.Macintosh.C_MAC_Miller_VL 5.24009 5.6839 0.008987 0.069911
## d.Macintosh.Glidescope -7.72531 7.5753 0.011978 0.107411
## d.Macintosh.McGrath_MAC -0.06986 2.4682 0.003903 0.006779
## d.Macintosh.Miller 5.47004 5.4511 0.008619 0.067955
## d.Macintosh.Pentax_AWS 1.52744 2.2167 0.003505 0.005413
## d.Macintosh.Truview 14.37285 9.0192 0.014261 0.142668
## d.Miller.KingVision_non_channelled 35.03925 26.3312 0.041633 0.399886
## sd.d 1.47956 0.8425 0.001332 0.005631
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Macintosh.Airtraq -8.87827 11.0093 27.5703 48.792 98.463
## d.Macintosh.Bullard 0.04081 3.7240 6.2873 9.913 19.686
## d.Macintosh.C_MAC_Miller_VL -4.41029 1.4687 4.5619 8.368 18.119
## d.Macintosh.Glidescope -26.84372 -11.5548 -6.0040 -2.312 2.466
## d.Macintosh.McGrath_MAC -5.10974 -1.5702 -0.0618 1.445 4.916
## d.Macintosh.Miller -3.35769 1.7870 4.6944 8.399 18.001
## d.Macintosh.Pentax_AWS -2.82069 0.1719 1.4441 2.820 6.223
## d.Macintosh.Truview 0.01092 7.9066 13.1509 19.694 35.207
## d.Miller.KingVision_non_channelled 0.81692 14.2467 29.8159 50.416 98.014
## sd.d 0.07309 0.7514 1.4905 2.215 2.843
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 15.18385 13.48882 28.67267
##
## 57 data points, ratio 0.2664, I^2 = 0%
gelman.plot(mcmc.fail.1)
gelman.plot(mcmc.fail.2)
gelman.diag(mcmc.fail.1)$mpsrf
## [1] 5.351937
gelman.diag(mcmc.fail.2)$mpsrf
## [1] 1.007647
anohe.fail<-gemtc::mtc.anohe(graph.fail,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 57
## Total graph size: 994
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 75
## Total graph size: 1112
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 67
## Total graph size: 1223
##
## Initializing model
summary(anohe.fail)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Airtraq C_MAC_Miller_VL NA 0.00000 0.7771974
## 2 Airtraq Macintosh 91.70568 0.00000 0.5239326
## 3 Airtraq Miller 92.19338 0.00000 0.5787250
## 4 Bullard Macintosh NA 25.89871 0.2822631
## 5 Bullard Miller NA 0.00000 0.9367759
## 6 C_MAC_Miller_VL Glidescope NA 0.00000 0.9074457
## 7 C_MAC_Miller_VL Macintosh NA 0.00000 0.6971772
## 8 C_MAC_Miller_VL Miller 0.00000 0.00000 0.9545278
## 9 C_MAC_Miller_VL Truview NA 13.60133 0.3311121
## 10 Glidescope Macintosh 76.05901 0.00000 0.3524227
## 11 Glidescope Miller 0.00000 0.00000 0.6703753
## 12 KingVision_non_channelled Miller NA NA NA
## 13 Macintosh McGrath_MAC 0.00000 0.00000 NA
## 14 Macintosh Miller 91.11631 0.00000 0.5151947
## 15 Macintosh Pentax_AWS NA NA NA
## 16 Macintosh Truview 92.14773 0.00000 0.5194064
## 17 Miller Truview 93.18684 0.00000 0.4793801
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 90.55147 0
nodesplit.fail <- gemtc::mtc.nodesplit(graph.fail, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1479
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 67
## Total graph size: 1454
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 67
## Total graph size: 1453
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 67
## Total graph size: 1453
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1475
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 68
## Total graph size: 1478
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 57
## Unobserved stochastic nodes: 67
## Total graph size: 1223
##
## Initializing model
summary(nodesplit.fail)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.Airtraq.C_MAC_Miller_VL 0.88525
## 2 -> direct -12. (-79., 50.)
## 3 -> indirect -16. (-84., 21.)
## 4 -> network -19. (-78., 14.)
## 5 d.Airtraq.Macintosh 0.96795
## 6 -> direct -24. (-90., 24.)
## 7 -> indirect -26. (-1.0e+02, 20.)
## 8 -> network -25. (-84., 8.3)
## 9 d.Airtraq.Miller 0.99145
## 10 -> direct -18. (-85., 32.)
## 11 -> indirect -17. (-89., 22.)
## 12 -> network -19. (-78., 14.)
## 13 d.Bullard.Macintosh 0.02040
## 14 -> direct -29. (-97., -3.5)
## 15 -> indirect 13. (-9.4, 41.)
## 16 -> network -6.4 (-21., -0.21)
## 17 d.Bullard.Miller 0.03610
## 18 -> direct -0.98 (-5.8, 3.4)
## 19 -> indirect -42. (-1.1e+02, -3.2)
## 20 -> network -1.6 (-6.9, 2.4)
## 21 d.C_MAC_Miller_VL.Glidescope 0.95510
## 22 -> direct -11. (-87., 45.)
## 23 -> indirect -12. (-36., 1.8)
## 24 -> network -12. (-35., 1.4)
## 25 d.C_MAC_Miller_VL.Macintosh 0.77100
## 26 -> direct -15. (-96., 46.)
## 27 -> indirect -4.7 (-20., 4.8)
## 28 -> network -4.8 (-20., 4.2)
## 29 d.C_MAC_Miller_VL.Miller 0.12215
## 30 -> direct -0.030 (-3.8, 3.6)
## 31 -> indirect 28. (-6.3, 70.)
## 32 -> network 0.12 (-3.4, 4.0)
## 33 d.C_MAC_Miller_VL.Truview 0.04725
## 34 -> direct 19. (1.6, 66.)
## 35 -> indirect -35. (-1.1e+02, 15.)
## 36 -> network 7.3 (-0.42, 29.)
## 37 d.Glidescope.Macintosh 0.25280
## 38 -> direct 9.4 (-1.6, 37.)
## 39 -> indirect -15. (-68., 27.)
## 40 -> network 6.1 (-2.4, 28.)
## 41 d.Glidescope.Miller 0.12335
## 42 -> direct -20. (-98., 26.)
## 43 -> indirect 18. (0.92, 47.)
## 44 -> network 13. (-0.75, 35.)
## 45 d.Macintosh.Miller 0.38855
## 46 -> direct -15. (-92., 35.)
## 47 -> indirect 6.7 (-2.4, 23.)
## 48 -> network 4.9 (-3.2, 20.)
## 49 d.Macintosh.Truview 0.15365
## 50 -> direct -23. (-1.0e+02, 33.)
## 51 -> indirect 20. (2.3, 52.)
## 52 -> network 13. (0.49, 36.)
## 53 d.Miller.Truview 0.23615
## 54 -> direct -19. (-97., 29.)
## 55 -> indirect 11. (-0.66, 50.)
## 56 -> network 7.2 (-1.4, 29.)
forest(relative.effect(mcmc.fail.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.fail <- gemtc::rank.probability(mcmc.fail.2, preferredDirection = -1)
plot(rank.probability.fail, beside=TRUE)
sucra.fail <- dmetar::sucra(rank.probability.fail, lower.is.better = FALSE)
sucra.fail
## SUCRA
## Glidescope 0.94820833
## Macintosh 0.77105278
## McGrath_MAC 0.75711472
## Pentax_AWS 0.64213806
## C_MAC_Miller_VL 0.52947444
## Miller 0.50938444
## Bullard 0.36041861
## Truview 0.21212667
## Airtraq 0.19540611
## KingVision_non_channelled 0.07467583
Network meta-analysis of percentage of glottic opening (POGO)
net.pogo<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped POGO.csv")
sum(net.pogo$sampleSize)
## [1] 259
table(net.pogo$treatment)
##
## Airtraq C_MAC Macintosh Mccoy Miller Truview
## 1 1 3 1 1 1
id<-c("Airtraq","C_MAC","Macintosh","Mccoy","Miller","Truview")
description<-c("Airtraq","C-MAC","Macintosh","McCoy","Miller","Truview")
treat.codes.pogo<-data.frame(id,description)
graph.pogo<-gemtc::mtc.network(data.ab = net.pogo,treatments = treat.codes.pogo)
summary(graph.pogo)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Airtraq C_MAC Macintosh Mccoy Miller Truview
## 1 1 3 1 1 1
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 1 2
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Airtraq Macintosh 1
## 2 C_MAC Macintosh 1
## 3 C_MAC Truview 1
## 4 Macintosh Mccoy 1
## 5 Macintosh Miller 1
## 6 Macintosh Truview 1
## 7 Mccoy Miller 1
plot(graph.pogo,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.pogo <- gemtc::mtc.model(graph.pogo,likelihood = "normal",link = "identity",linearModel = "random",n.chain = 4)
mcmc.pogo.1 <- gemtc::mtc.run(model.pogo, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 8
## Unobserved stochastic nodes: 14
## Total graph size: 164
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.pogo.1)
##
## Results on the Mean Difference scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.Airtraq 25.100 15.015 0.7507 0.7511
## d.Macintosh.C_MAC -3.599 15.777 0.7888 0.7826
## d.Macintosh.Mccoy -8.109 16.226 0.8113 0.8585
## d.Macintosh.Miller 19.007 16.058 0.8029 0.6896
## d.Macintosh.Truview 9.274 15.123 0.7562 0.8236
## sd.d 12.209 7.556 0.3778 0.7099
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Macintosh.Airtraq -7.1662 18.432 25.142 30.6617 56.02
## d.Macintosh.C_MAC -37.9567 -9.876 -3.326 4.0835 28.18
## d.Macintosh.Mccoy -40.0594 -17.441 -8.764 0.2887 28.66
## d.Macintosh.Miller -10.4688 9.546 18.430 26.7637 54.21
## d.Macintosh.Truview -26.8446 2.443 9.932 15.8828 42.39
## sd.d 0.8236 5.423 11.892 18.4311 25.68
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 8.015785 8.007398 16.023183
##
## 8 data points, ratio 1.002, I^2 = 13%
mcmc.pogo.2 <- gemtc::mtc.run(model.pogo, n.adapt = 6000, n.iter = 1e6, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 8
## Unobserved stochastic nodes: 14
## Total graph size: 164
##
## Initializing model
summary(mcmc.pogo.2)
##
## Results on the Mean Difference scale
##
## Iterations = 6010:1006000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 1e+05
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.Airtraq 24.949 15.145 0.02395 0.02395
## d.Macintosh.C_MAC -3.104 15.718 0.02485 0.02574
## d.Macintosh.Mccoy -8.347 16.632 0.02630 0.02710
## d.Macintosh.Miller 17.821 16.288 0.02575 0.02625
## d.Macintosh.Truview 9.606 15.392 0.02434 0.02435
## sd.d 13.103 7.558 0.01195 0.01934
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Macintosh.Airtraq -8.0986 18.093 24.990 31.7930 57.81
## d.Macintosh.C_MAC -36.8506 -10.914 -3.120 4.6986 30.60
## d.Macintosh.Mccoy -43.2543 -17.460 -8.375 0.7355 26.74
## d.Macintosh.Miller -16.6718 9.152 17.809 26.4708 52.37
## d.Macintosh.Truview -23.7553 2.303 9.598 16.9246 42.79
## sd.d 0.6658 6.557 13.086 19.6551 25.54
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 7.990151 7.990136 15.980286
##
## 8 data points, ratio 0.9988, I^2 = 12%
gelman.plot(mcmc.pogo.1)
gelman.plot(mcmc.pogo.2)
gelman.diag(mcmc.pogo.1)$mpsrf
## [1] 1.049931
gelman.diag(mcmc.pogo.2)$mpsrf
## [1] 1.000062
anohe.pogo<-gemtc::mtc.anohe(graph.pogo,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
summary(anohe.pogo)
nodesplit.pogo <- gemtc::mtc.nodesplit(graph.pogo, linearModel = "random", likelihood = "normal",link = "identity",n.adapt = 5000, n.iter = 1e5, thin = 10)
summary(nodesplit.pogo)
There are no comparisons to assess for inconsistency for POGO
forest(relative.effect(mcmc.pogo.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-60, 60))
rank.probability.pogo <- gemtc::rank.probability(mcmc.pogo.2, preferredDirection = 1)
plot(rank.probability.pogo, beside=TRUE)
sucra.pogo <- dmetar::sucra(rank.probability.pogo, lower.is.better = FALSE)
sucra.pogo
## SUCRA
## Airtraq 0.8587505
## Miller 0.7412005
## Truview 0.5908705
## Macintosh 0.3435460
## C_MAC 0.2785825
## Mccoy 0.1870500
meta::metamean(n = net.pogo$sampleSize[net.pogo$treatment=="Macintosh"],mean= net.pogo$mean[net.pogo$treatment=="Macintosh"], sd=net.pogo$std.dev[net.pogo$treatment=="Macintosh"],studlab = net.pogo$study[net.pogo$treatment=="Macintosh"],data = net.pogo[net.pogo$treatment=="Macintosh",],method.tau = "SJ",sm = "MRAW",comb.fixed = FALSE,comb.random = TRUE,hakn = TRUE)
## mean 95%-CI %W(random)
## Ali 2013 72.0000 [70.5739; 73.4261] 36.5
## Singh 2017 85.1000 [80.3602; 89.8398] 33.8
## Yadav 2019 68.2000 [60.3601; 76.0399] 29.7
##
## Number of studies combined: k = 3
##
## mean 95%-CI
## Random effects model 75.3009 [53.4806; 97.1212]
##
## Quantifying heterogeneity:
## tau^2 = 67.8972 [13.6777; >678.9722]; tau = 8.2400 [3.6983; >26.0571];
## I^2 = 92.9% [82.7%; 97.1%]; H = 3.77 [2.41; 5.89]
##
## Test of heterogeneity:
## Q d.f. p-value
## 28.36 2 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - Sidik-Jonkman estimator for tau^2
## - Q-profile method for confidence interval of tau^2 and tau
## - Hartung-Knapp adjustment for random effects model
## - Untransformed (raw) means
results.pogo<-gemtc::relative.effect.table(mcmc.pogo.2)
write.csv2(results.pogo,file = "results_pogo.csv")
Network meta-analysis of difficult laryngoscopy by Cormack and Lehane classification
net.cormack<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped Cormack.csv")
sum(net.cormack$sampleSize)
## [1] 1553
table(net.cormack$treatment)
##
## C_MAC_Miller_VL Cardiff Glidescope
## 5 1 5
## KingVision_non_channelled Macintosh Mccoy
## 2 11 1
## McGrath_MAC Miller Truview
## 2 9 5
id<-c("C_MAC_Miller_VL","Cardiff","Glidescope","KingVision_non_channelled","Macintosh","Mccoy","McGrath_MAC","Miller","Truview")
description<-c("C-MAC Miller","Cardiff","Glidescope","KingVision Non-channelled","Macintosh","Mccoy","McGrath MAC","Miller","Truview")
treat.codes.cormack<-data.frame(id,description)
graph.cormack<-gemtc::mtc.network(data.ab = net.cormack,treatments = treat.codes.cormack)
summary(graph.cormack)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## C_MAC_Miller_VL Cardiff Glidescope
## 5 1 5
## KingVision_non_channelled Macintosh Mccoy
## 2 11 1
## McGrath_MAC Miller Truview
## 2 9 5
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 13 5
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 C_MAC_Miller_VL Glidescope 2
## 2 C_MAC_Miller_VL Macintosh 1
## 3 C_MAC_Miller_VL Miller 3
## 4 C_MAC_Miller_VL Truview 1
## 5 Cardiff Macintosh 1
## 6 Cardiff Miller 1
## 7 Glidescope Macintosh 3
## 8 Glidescope Miller 2
## 9 Glidescope Truview 1
## 10 KingVision_non_channelled Macintosh 1
## 11 KingVision_non_channelled Miller 1
## 12 Macintosh Mccoy 1
## 13 Macintosh McGrath_MAC 2
## 14 Macintosh Miller 3
## 15 Macintosh Truview 2
## 16 Mccoy Miller 1
## 17 Miller Truview 2
plot(graph.cormack,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.cormack <- gemtc::mtc.model(graph.cormack,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.cormack.1 <- gemtc::mtc.run(model.cormack, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.cormack.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.C_MAC_Miller_VL -1.50742 2.1663 0.10831 0.13762
## d.Macintosh.Cardiff -0.01006 3.0760 0.15380 0.15998
## d.Macintosh.Glidescope -0.70592 2.1159 0.10580 0.13433
## d.Macintosh.KingVision_non_channelled 0.13831 3.5875 0.17937 0.19683
## d.Macintosh.Mccoy 0.20042 3.1426 0.15713 0.17360
## d.Macintosh.McGrath_MAC -34.59471 23.0697 1.15349 6.79712
## d.Macintosh.Miller -0.04233 1.5681 0.07840 0.08193
## d.Macintosh.Truview -1.39674 2.4452 0.12226 0.14236
## sd.d 2.83182 0.6146 0.03073 0.04565
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75%
## d.Macintosh.C_MAC_Miller_VL -5.912 -2.907 -1.40834 0.001814
## d.Macintosh.Cardiff -6.300 -1.868 0.01176 2.044247
## d.Macintosh.Glidescope -4.668 -2.028 -0.66721 0.581354
## d.Macintosh.KingVision_non_channelled -6.576 -2.133 -0.01882 2.410886
## d.Macintosh.Mccoy -5.838 -2.023 0.09599 2.375845
## d.Macintosh.McGrath_MAC -91.704 -50.088 -31.34790 -15.019090
## d.Macintosh.Miller -3.148 -1.037 -0.01523 0.956087
## d.Macintosh.Truview -6.838 -2.918 -1.25105 0.363536
## sd.d 1.505 2.418 2.95482 3.348655
## 97.5%
## d.Macintosh.C_MAC_Miller_VL 2.641
## d.Macintosh.Cardiff 5.650
## d.Macintosh.Glidescope 3.402
## d.Macintosh.KingVision_non_channelled 6.784
## d.Macintosh.Mccoy 6.574
## d.Macintosh.McGrath_MAC -2.214
## d.Macintosh.Miller 3.076
## d.Macintosh.Truview 2.717
## sd.d 3.631
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 26.16212 21.90153 48.06365
##
## 41 data points, ratio 0.6381, I^2 = 0%
mcmc.cormack.2 <- gemtc::mtc.run(model.cormack, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
summary(mcmc.cormack.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.C_MAC_Miller_VL -1.34832 2.179 0.010893 0.014982
## d.Macintosh.Cardiff -0.05667 3.014 0.015068 0.016798
## d.Macintosh.Glidescope -0.73803 2.067 0.010335 0.014308
## d.Macintosh.KingVision_non_channelled 0.15935 3.722 0.018611 0.021519
## d.Macintosh.Mccoy -0.03690 3.050 0.015251 0.016002
## d.Macintosh.McGrath_MAC -40.45184 30.387 0.151937 1.267470
## d.Macintosh.Miller 0.08657 1.618 0.008091 0.009534
## d.Macintosh.Truview -1.19081 2.420 0.012101 0.016125
## sd.d 2.79910 0.604 0.003020 0.004951
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75%
## d.Macintosh.C_MAC_Miller_VL -5.666 -2.761 -1.36237 0.07217
## d.Macintosh.Cardiff -6.061 -2.000 -0.05510 1.92596
## d.Macintosh.Glidescope -5.153 -2.024 -0.63378 0.65129
## d.Macintosh.KingVision_non_channelled -7.153 -2.287 0.09687 2.55594
## d.Macintosh.Mccoy -6.174 -2.002 -0.04681 1.94302
## d.Macintosh.McGrath_MAC -115.031 -58.489 -34.36992 -16.57625
## d.Macintosh.Miller -3.025 -0.994 0.04988 1.11836
## d.Macintosh.Truview -5.973 -2.762 -1.22153 0.36802
## sd.d 1.461 2.393 2.89141 3.30314
## 97.5%
## d.Macintosh.C_MAC_Miller_VL 2.967
## d.Macintosh.Cardiff 5.866
## d.Macintosh.Glidescope 3.071
## d.Macintosh.KingVision_non_channelled 7.677
## d.Macintosh.Mccoy 5.971
## d.Macintosh.McGrath_MAC -0.689
## d.Macintosh.Miller 3.388
## d.Macintosh.Truview 3.654
## sd.d 3.624
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 26.32133 22.15871 48.48004
##
## 41 data points, ratio 0.642, I^2 = 0%
gelman.plot(mcmc.cormack.1)
gelman.plot(mcmc.cormack.2)
gelman.diag(mcmc.cormack.1)$mpsrf
## [1] 1.467798
gelman.diag(mcmc.cormack.2)$mpsrf
## [1] 1.003282
anohe.cormack<-gemtc::mtc.anohe(graph.cormack,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 41
## Total graph size: 722
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 59
## Total graph size: 762
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
summary(anohe.cormack)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 C_MAC_Miller_VL Glidescope 0.00000 0.00000 0.2051070
## 2 C_MAC_Miller_VL Macintosh NA 46.53539 0.1754641
## 3 C_MAC_Miller_VL Miller 56.90480 0.00000 0.8530794
## 4 C_MAC_Miller_VL Truview NA 39.00008 0.2951383
## 5 Cardiff Macintosh NA NA NA
## 6 Cardiff Miller NA NA NA
## 7 Glidescope Macintosh 94.29868 89.62289 0.9712093
## 8 Glidescope Miller 0.00000 0.00000 0.7636228
## 9 Glidescope Truview NA 85.91011 0.7298188
## 10 KingVision_non_channelled Macintosh NA 0.00000 0.6876107
## 11 KingVision_non_channelled Miller NA 0.00000 0.9946337
## 12 Macintosh Mccoy NA NA NA
## 13 Macintosh McGrath_MAC 99.52862 0.00000 NA
## 14 Macintosh Miller 38.12335 71.86707 0.8770268
## 15 Macintosh Truview 0.00000 0.00000 0.9224127
## 16 Mccoy Miller NA NA NA
## 17 Miller Truview 98.11262 0.00000 0.6177435
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 97.58922 64.19722
nodesplit.cormack <- gemtc::mtc.nodesplit(graph.cormack, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 39
## Unobserved stochastic nodes: 49
## Total graph size: 1091
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 39
## Unobserved stochastic nodes: 49
## Total graph size: 1091
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 50
## Total graph size: 1107
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 39
## Unobserved stochastic nodes: 49
## Total graph size: 1092
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 50
## Total graph size: 1112
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 39
## Unobserved stochastic nodes: 49
## Total graph size: 1084
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 50
## Total graph size: 1108
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
summary(nodesplit.cormack)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.C_MAC_Miller_VL.Glidescope 0.01675
## 2 -> direct -37. (-1.2e+02, -1.0)
## 3 -> indirect 3.7 (-2.8, 10.)
## 4 -> network 0.70 (-4.8, 5.4)
## 5 d.C_MAC_Miller_VL.Macintosh 0.01345
## 6 -> direct -37. (-1.2e+02, -1.0)
## 7 -> indirect 3.4 (-1.5, 9.0)
## 8 -> network 1.3 (-3.0, 5.6)
## 9 d.C_MAC_Miller_VL.Miller 0.73890
## 10 -> direct 2.0 (-2.8, 7.8)
## 11 -> indirect 0.65 (-6.7, 7.7)
## 12 -> network 1.3 (-2.7, 5.7)
## 13 d.C_MAC_Miller_VL.Truview 0.00885
## 14 -> direct 28. (1.5, 88.)
## 15 -> indirect -4.4 (-12., 2.2)
## 16 -> network 0.12 (-4.9, 5.4)
## 17 d.Glidescope.Macintosh 0.03940
## 18 -> direct -0.26 (-4.0, 4.6)
## 19 -> indirect 40. (1.3, 1.2e+02)
## 20 -> network 0.59 (-3.0, 5.1)
## 21 d.Glidescope.Miller 0.09425
## 22 -> direct 16. (-1.5, 59.)
## 23 -> indirect -0.95 (-6.0, 5.1)
## 24 -> network 0.67 (-3.6, 5.9)
## 25 d.Glidescope.Truview 0.00065
## 26 -> direct -4.5 (-9.8, 0.44)
## 27 -> indirect 34. (6.7, 79.)
## 28 -> network -0.53 (-5.3, 5.0)
## 29 d.KingVision_non_channelled.Macintosh 0.64385
## 30 -> direct -20. (-1.2e+02, 60.)
## 31 -> indirect -0.051 (-7.6, 7.3)
## 32 -> network -0.12 (-7.6, 7.1)
## 33 d.KingVision_non_channelled.Miller 0.67400
## 34 -> direct 0.0070 (-6.8, 6.7)
## 35 -> indirect -18. (-1.1e+02, 59.)
## 36 -> network -0.095 (-6.8, 6.6)
## 37 d.Macintosh.Miller 0.27230
## 38 -> direct -0.85 (-4.5, 2.9)
## 39 -> indirect 3.3 (-3.3, 11.)
## 40 -> network 0.045 (-3.0, 3.4)
## 41 d.Macintosh.Truview 0.04240
## 42 -> direct -2.1 (-7.6, 2.8)
## 43 -> indirect 14. (-0.84, 56.)
## 44 -> network -1.2 (-5.9, 3.7)
## 45 d.Miller.Truview 0.53640
## 46 -> direct -22. (-1.1e+02, 44.)
## 47 -> indirect -1.2 (-6.6, 4.2)
## 48 -> network -1.2 (-6.6, 4.1)
forest(relative.effect(mcmc.cormack.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.cormack <- gemtc::rank.probability(mcmc.cormack.2, preferredDirection = -1)
plot(rank.probability.cormack, beside=TRUE)
sucra.cormack <- dmetar::sucra(rank.probability.cormack, lower.is.better = FALSE)
sucra.cormack
## SUCRA
## McGrath_MAC 0.9721031
## C_MAC_Miller_VL 0.5763625
## Truview 0.5466125
## Glidescope 0.4745812
## Cardiff 0.4024594
## Mccoy 0.4017344
## KingVision_non_channelled 0.3900031
## Macintosh 0.3705875
## Miller 0.3655563
Network meta-analysis of time for intubation
net.time<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped time.csv")
sum(net.time$sampleSize)
## [1] 1928
table(net.time$treatment)
##
## Airtraq Bullard C_MAC
## 7 2 2
## C_MAC_D_Blade C_MAC_Miller_VL Coopdech_VL
## 1 5 1
## Glidescope KingVision_non_channelled Macintosh
## 4 1 15
## Mccoy Mcoy_Straight Miller
## 1 1 10
## Oxiport_Miller Pentax_AWS Truview
## 1 1 4
id<-c("Airtraq","Bullard","C_MAC","C_MAC_D_Blade","C_MAC_Miller_VL","Coopdech_VL","Glidescope","KingVision_non_channelled","Macintosh","Mccoy","Mcoy_Straight","Miller","Oxiport_Miller","Pentax_AWS","Truview")
description<-c("Airtraq","Bullard","C-MAC","C-MAC D-Blade","C-MAC Miller","Coopdech","Glidescope","KingVision Non-channelled","Macintosh","Mccoy","Mccoy Straight","Miller","Oxiport Miller","Pentax AWS","Truview")
treat.codes.time<-data.frame(id,description)
graph.time<-gemtc::mtc.network(data.ab = net.time,treatments = treat.codes.time)
summary(graph.time)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Airtraq Bullard C_MAC
## 7 2 2
## C_MAC_D_Blade C_MAC_Miller_VL Coopdech_VL
## 1 5 1
## Glidescope KingVision_non_channelled Macintosh
## 4 1 15
## Mccoy Mcoy_Straight Miller
## 1 1 10
## Oxiport_Miller Pentax_AWS Truview
## 1 1 4
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 25 2
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Airtraq C_MAC_Miller_VL 1
## 2 Airtraq Coopdech_VL 1
## 3 Airtraq Macintosh 3
## 4 Airtraq Miller 2
## 5 Bullard Macintosh 1
## 6 Bullard Miller 1
## 7 C_MAC C_MAC_D_Blade 1
## 8 C_MAC Macintosh 1
## 9 C_MAC Truview 1
## 10 C_MAC_Miller_VL Macintosh 1
## 11 C_MAC_Miller_VL Miller 2
## 12 C_MAC_Miller_VL Truview 1
## 13 Glidescope Macintosh 4
## 14 KingVision_non_channelled Macintosh 1
## 15 Macintosh Mccoy 1
## 16 Macintosh Miller 2
## 17 Macintosh Pentax_AWS 1
## 18 Macintosh Truview 2
## 19 Mccoy Miller 1
## 20 Mcoy_Straight Miller 1
## 21 Miller Oxiport_Miller 1
## 22 Miller Truview 1
plot(graph.time,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.time <- gemtc::mtc.model(graph.time,likelihood = "normal",link = "identity",linearModel = "random",n.chain = 4)
mcmc.time.1 <- gemtc::mtc.run(model.time, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 71
## Total graph size: 952
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.time.1)
##
## Results on the Mean Difference scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Airtraq.Coopdech_VL 4.5562 11.394 0.5697 0.5089
## d.C_MAC.C_MAC_D_Blade 4.2689 12.347 0.6174 0.5563
## d.Macintosh.Airtraq -6.2611 5.389 0.2694 0.2571
## d.Macintosh.Bullard 19.1343 9.736 0.4868 0.5377
## d.Macintosh.C_MAC 1.4968 10.840 0.5420 0.5429
## d.Macintosh.C_MAC_Miller_VL -0.7008 5.894 0.2947 0.2810
## d.Macintosh.Glidescope 6.8901 6.125 0.3063 0.3660
## d.Macintosh.KingVision_non_channelled 1.7213 11.802 0.5901 0.8055
## d.Macintosh.Mccoy 1.6070 10.816 0.5408 0.5180
## d.Macintosh.Miller 1.2356 5.078 0.2539 0.2528
## d.Macintosh.Pentax_AWS 5.5778 11.726 0.5863 0.5311
## d.Macintosh.Truview 6.2615 6.513 0.3257 0.3267
## d.Miller.Mcoy_Straight 14.0722 11.923 0.5961 0.5564
## d.Miller.Oxiport_Miller 2.5997 12.422 0.6211 0.6070
## sd.d 11.2791 2.813 0.1406 0.1638
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Airtraq.Coopdech_VL -16.729 -3.250 4.7933 12.777 24.011
## d.C_MAC.C_MAC_D_Blade -20.075 -3.626 4.4451 10.997 32.514
## d.Macintosh.Airtraq -16.964 -10.014 -6.2006 -3.008 5.673
## d.Macintosh.Bullard -3.213 12.899 19.2611 25.195 38.357
## d.Macintosh.C_MAC -22.563 -5.056 2.1355 8.208 22.189
## d.Macintosh.C_MAC_Miller_VL -12.194 -4.991 -0.6496 3.028 10.273
## d.Macintosh.Glidescope -5.039 2.879 6.9486 10.733 19.282
## d.Macintosh.KingVision_non_channelled -21.086 -5.421 2.0379 9.069 26.054
## d.Macintosh.Mccoy -19.874 -5.721 1.4865 9.442 22.116
## d.Macintosh.Miller -8.989 -1.830 1.1643 4.424 11.642
## d.Macintosh.Pentax_AWS -20.366 -1.345 6.2370 12.800 27.025
## d.Macintosh.Truview -8.097 2.513 6.8018 10.425 18.812
## d.Miller.Mcoy_Straight -8.067 6.412 14.2121 21.652 38.872
## d.Miller.Oxiport_Miller -22.536 -4.737 2.5781 11.078 26.182
## sd.d 6.955 9.205 10.9343 12.756 17.295
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 58.82004 55.71545 114.53549
##
## 56 data points, ratio 1.05, I^2 = 6%
mcmc.time.2 <- gemtc::mtc.run(model.time, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 71
## Total graph size: 952
##
## Initializing model
summary(mcmc.time.2)
##
## Results on the Mean Difference scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Airtraq.Coopdech_VL 5.1158 11.399 0.05700 0.05700
## d.C_MAC.C_MAC_D_Blade 3.0832 11.816 0.05908 0.05908
## d.Macintosh.Airtraq -6.5263 5.438 0.02719 0.02708
## d.Macintosh.Bullard 19.0799 9.528 0.04764 0.04964
## d.Macintosh.C_MAC 0.2251 10.377 0.05188 0.05255
## d.Macintosh.C_MAC_Miller_VL -0.7322 6.157 0.03078 0.03078
## d.Macintosh.Glidescope 7.1425 5.807 0.02903 0.02857
## d.Macintosh.KingVision_non_channelled 0.9019 11.354 0.05677 0.05677
## d.Macintosh.Mccoy 1.1280 10.325 0.05162 0.05162
## d.Macintosh.Miller 1.4239 5.213 0.02606 0.02668
## d.Macintosh.Pentax_AWS 5.1166 11.762 0.05881 0.05948
## d.Macintosh.Truview 5.6896 6.194 0.03097 0.03121
## d.Miller.Mcoy_Straight 13.1979 11.820 0.05910 0.05887
## d.Miller.Oxiport_Miller 2.3553 12.337 0.06169 0.06169
## sd.d 11.0650 2.775 0.01387 0.01728
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Airtraq.Coopdech_VL -17.6131 -2.104 5.0409 12.312 28.018
## d.C_MAC.C_MAC_D_Blade -20.3250 -4.392 3.0857 10.558 26.456
## d.Macintosh.Airtraq -17.2807 -9.960 -6.5704 -3.072 4.314
## d.Macintosh.Bullard 0.6346 12.867 18.8700 25.090 38.444
## d.Macintosh.C_MAC -20.3727 -6.245 0.2032 6.762 21.003
## d.Macintosh.C_MAC_Miller_VL -12.8735 -4.651 -0.7677 3.125 11.540
## d.Macintosh.Glidescope -4.3046 3.448 7.1336 10.761 18.814
## d.Macintosh.KingVision_non_channelled -21.6202 -6.217 0.8929 8.018 23.688
## d.Macintosh.Mccoy -19.6479 -5.309 1.1301 7.642 21.663
## d.Macintosh.Miller -9.1199 -1.829 1.5070 4.747 11.554
## d.Macintosh.Pentax_AWS -18.5360 -2.201 5.1291 12.516 28.458
## d.Macintosh.Truview -6.6736 1.842 5.6927 9.535 18.085
## d.Miller.Mcoy_Straight -10.4058 5.774 13.1371 20.749 36.645
## d.Miller.Oxiport_Miller -22.0758 -5.542 2.3634 10.247 26.914
## sd.d 6.7941 9.116 10.6871 12.562 17.561
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 58.69128 55.44312 114.13440
##
## 56 data points, ratio 1.048, I^2 = 6%
gelman.plot(mcmc.time.1)
gelman.plot(mcmc.time.2)
gelman.diag(mcmc.time.1)$mpsrf
## [1] 1.082681
gelman.diag(mcmc.time.2)$mpsrf
## [1] 1.00054
anohe.time<-gemtc::mtc.anohe(graph.time,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 56
## Total graph size: 589
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 79
## Total graph size: 740
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 71
## Total graph size: 952
##
## Initializing model
summary(anohe.time)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Airtraq C_MAC_Miller_VL NA 71.89384 0.42782959
## 2 Airtraq Coopdech_VL NA NA NA
## 3 Airtraq Macintosh 92.49354 86.80110 0.06707648
## 4 Airtraq Miller 99.92713 99.35188 0.01516605
## 5 Bullard Macintosh NA 85.05861 0.05807523
## 6 Bullard Miller NA 96.73988 0.04962388
## 7 C_MAC_Miller_VL Macintosh NA 93.30129 0.48166977
## 8 C_MAC_Miller_VL Miller 92.49141 98.60754 0.18128227
## 9 C_MAC_Miller_VL Truview NA 0.00000 0.93203392
## 10 C_MAC C_MAC_D_Blade NA NA NA
## 11 C_MAC Macintosh NA NA NA
## 12 C_MAC Truview NA NA NA
## 13 Glidescope Macintosh 94.38642 94.41281 NA
## 14 KingVision_non_channelled Macintosh NA NA NA
## 15 Macintosh Mccoy NA NA NA
## 16 Macintosh Miller 26.27745 0.00000 0.92385660
## 17 Macintosh Pentax_AWS NA NA NA
## 18 Macintosh Truview 84.87525 89.32924 0.73665641
## 19 Mccoy Miller NA NA NA
## 20 Mcoy_Straight Miller NA NA NA
## 21 Miller Oxiport_Miller NA NA NA
## 22 Miller Truview NA 94.36166 0.77779671
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 99.38932 97.2391
nodesplit.time <- gemtc::mtc.nodesplit(graph.time, linearModel = "random", likelihood = "normal",link = "identity",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1476
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 55
## Unobserved stochastic nodes: 71
## Total graph size: 1457
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 55
## Unobserved stochastic nodes: 71
## Total graph size: 1457
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 72
## Total graph size: 1477
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 56
## Unobserved stochastic nodes: 71
## Total graph size: 952
##
## Initializing model
summary(nodesplit.time)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.Airtraq.C_MAC_Miller_VL 0.44325
## 2 -> direct 13. (-11., 38.)
## 3 -> indirect 2.5 (-14., 19.)
## 4 -> network 5.7 (-7.9, 19.)
## 5 d.Airtraq.Macintosh 0.07200
## 6 -> direct 13. (0.73, 27.)
## 7 -> indirect -4.9 (-22., 11.)
## 8 -> network 6.5 (-4.3, 17.)
## 9 d.Airtraq.Miller 0.00850
## 10 -> direct -5.7 (-21., 7.6)
## 11 -> indirect 20. (7.4, 33.)
## 12 -> network 8.0 (-3.8, 19.)
## 13 d.Bullard.Macintosh 0.06885
## 14 -> direct -37. (-64., -11.)
## 15 -> indirect -5.4 (-28., 19.)
## 16 -> network -19. (-38., -0.59)
## 17 d.Bullard.Miller 0.06875
## 18 -> direct -6.0 (-27., 15.)
## 19 -> indirect -38. (-67., -10.)
## 20 -> network -17. (-36., 0.22)
## 21 d.C_MAC_Miller_VL.Macintosh 0.50885
## 22 -> direct -5.4 (-29., 18.)
## 23 -> indirect 3.3 (-12., 19.)
## 24 -> network 0.81 (-11., 13.)
## 25 d.C_MAC_Miller_VL.Miller 0.19005
## 26 -> direct 9.0 (-6.9, 25.)
## 27 -> indirect -5.2 (-22., 11.)
## 28 -> network 2.2 (-9.7, 14.)
## 29 d.C_MAC_Miller_VL.Truview 0.91940
## 30 -> direct 5.6 (-19., 30.)
## 31 -> indirect 6.9 (-12., 26.)
## 32 -> network 6.4 (-7.8, 21.)
## 33 d.Macintosh.Miller 0.91845
## 34 -> direct 0.86 (-16., 18.)
## 35 -> indirect 1.8 (-12., 16.)
## 36 -> network 1.5 (-8.9, 12.)
## 37 d.Macintosh.Truview 0.75615
## 38 -> direct 7.2 (-9.9, 24.)
## 39 -> indirect 3.5 (-17., 24.)
## 40 -> network 5.7 (-7.0, 18.)
## 41 d.Miller.Truview 0.79835
## 42 -> direct 1.9 (-22., 26.)
## 43 -> indirect 5.5 (-12., 23.)
## 44 -> network 4.2 (-9.0, 18.)
forest(relative.effect(mcmc.time.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-60, 60))
rank.probability.time <- gemtc::rank.probability(mcmc.time.2, preferredDirection = -1)
plot(rank.probability.time, beside=TRUE)
sucra.time <- dmetar::sucra(rank.probability.time, lower.is.better = FALSE)
sucra.time
## SUCRA
## Airtraq 0.8401696
## C_MAC_Miller_VL 0.6418196
## Coopdech_VL 0.6257714
## Macintosh 0.6214571
## C_MAC 0.5932768
## KingVision_non_channelled 0.5658679
## Mccoy 0.5618089
## Miller 0.5545286
## C_MAC_D_Blade 0.4969000
## Oxiport_Miller 0.4847446
## Pentax_AWS 0.4449446
## Truview 0.3904375
## Glidescope 0.3493518
## Mcoy_Straight 0.2190679
## Bullard 0.1098536
Network meta-analysis of time for intubation in neonates and infants
net.time.infants<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped time Neo & Infants.csv")
sum(net.time.infants$sampleSize)
## [1] 732
table(net.time.infants$treatment)
##
## C_MAC_Miller_VL Glidescope KingVision_non_channelled
## 4 1 1
## Macintosh Mcoy_straight Miller
## 4 1 5
## Oxiport_Miller Pentax_AWS Truview
## 1 1 2
id<-c("C_MAC_Miller_VL","Glidescope","KingVision_non_channelled","Macintosh","Mcoy_straight","Miller","Oxiport_Miller","Pentax_AWS","Truview")
description<-c("C-MAC Miller","Glidescope","KingVision Non-channelled","Macintosh","Mccoy Straight","Miller","Oxiport Miller","Pentax AWS","Truview")
treat.codes.time.infants<-data.frame(id,description)
graph.time.infants<-gemtc::mtc.network(data.ab = net.time.infants,treatments = treat.codes.time.infants)
summary(graph.time.infants)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## C_MAC_Miller_VL Glidescope KingVision_non_channelled
## 4 1 1
## Macintosh Mcoy_straight Miller
## 4 1 5
## Oxiport_Miller Pentax_AWS Truview
## 1 1 2
##
## $`Number of n-arm studies`
## 2-arm
## 10
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 C_MAC_Miller_VL Macintosh 1
## 2 C_MAC_Miller_VL Miller 2
## 3 C_MAC_Miller_VL Truview 1
## 4 Glidescope Macintosh 1
## 5 KingVision_non_channelled Macintosh 1
## 6 Macintosh Pentax_AWS 1
## 7 Mcoy_straight Miller 1
## 8 Miller Oxiport_Miller 1
## 9 Miller Truview 1
plot(graph.time.infants,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.time.infants <- gemtc::mtc.model(graph.time.infants,likelihood = "normal",link = "identity",linearModel = "random",n.chain = 4)
mcmc.time.infants.1 <- gemtc::mtc.run(model.time.infants, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 29
## Total graph size: 349
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.time.infants.1)
##
## Results on the Mean Difference scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh -5.2778 7.145 0.3573 0.3579
## d.C_MAC_Miller_VL.Miller 8.3622 4.717 0.2358 0.2595
## d.C_MAC_Miller_VL.Truview 7.8947 5.651 0.2825 0.3239
## d.Macintosh.Glidescope -1.0222 7.268 0.3634 0.3276
## d.Macintosh.KingVision_non_channelled 0.8424 6.556 0.3278 0.3168
## d.Macintosh.Pentax_AWS 4.8451 8.262 0.4131 0.4396
## d.Miller.Mcoy_straight 12.7884 7.512 0.3756 0.4111
## d.Miller.Oxiport_Miller 2.6723 8.523 0.4261 0.4266
## sd.d 6.3179 3.092 0.1546 0.1896
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -21.374 -8.9855 -5.230 -1.811 9.621
## d.C_MAC_Miller_VL.Miller -1.864 5.8365 8.477 10.582 17.638
## d.C_MAC_Miller_VL.Truview -5.225 4.7804 8.368 10.915 18.339
## d.Macintosh.Glidescope -14.966 -5.1786 -1.834 2.912 17.173
## d.Macintosh.KingVision_non_channelled -14.132 -2.7403 1.127 4.297 14.359
## d.Macintosh.Pentax_AWS -13.126 0.6686 4.709 8.733 21.438
## d.Miller.Mcoy_straight -1.814 8.6630 12.510 16.803 29.021
## d.Miller.Oxiport_Miller -14.684 -2.7341 3.255 7.864 18.473
## sd.d 1.898 3.7791 5.705 8.717 12.560
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 19.37087 19.24719 38.61806
##
## 20 data points, ratio 0.9685, I^2 = 2%
mcmc.time.infants.2 <- gemtc::mtc.run(model.time.infants, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 29
## Total graph size: 349
##
## Initializing model
summary(mcmc.time.infants.2)
##
## Results on the Mean Difference scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh -5.3840 6.866 0.03433 0.03394
## d.C_MAC_Miller_VL.Miller 8.0554 4.309 0.02155 0.02164
## d.C_MAC_Miller_VL.Truview 7.9363 5.244 0.02622 0.02633
## d.Macintosh.Glidescope -1.4242 7.272 0.03636 0.03610
## d.Macintosh.KingVision_non_channelled 0.8675 6.688 0.03344 0.03380
## d.Macintosh.Pentax_AWS 5.1261 7.176 0.03588 0.03585
## d.Miller.Mcoy_straight 13.1296 7.253 0.03627 0.03627
## d.Miller.Oxiport_Miller 2.4038 8.077 0.04039 0.04015
## sd.d 5.9365 2.945 0.01472 0.01918
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -19.876 -8.955 -5.4204 -1.787 9.204
## d.C_MAC_Miller_VL.Miller -1.059 5.784 8.1358 10.330 17.016
## d.C_MAC_Miller_VL.Truview -3.393 5.253 8.0609 10.703 18.839
## d.Macintosh.Glidescope -16.374 -5.519 -1.4240 2.672 13.675
## d.Macintosh.KingVision_non_channelled -13.371 -2.519 0.8591 4.214 15.073
## d.Macintosh.Pentax_AWS -9.933 1.155 5.1067 9.133 19.863
## d.Miller.Mcoy_straight -1.986 9.034 13.1447 17.249 28.248
## d.Miller.Oxiport_Miller -13.941 -2.518 2.4105 7.343 18.735
## sd.d 1.784 3.572 5.3184 7.909 12.338
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 20.02356 19.91761 39.94117
##
## 20 data points, ratio 1.001, I^2 = 5%
gelman.plot(mcmc.time.infants.1)
gelman.plot(mcmc.time.infants.2)
gelman.diag(mcmc.time.infants.1)$mpsrf
## [1] 1.072159
gelman.diag(mcmc.time.infants.2)$mpsrf
## [1] 1.000219
anohe.time.infants<-gemtc::mtc.anohe(graph.time.infants,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 20
## Total graph size: 216
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 30
## Total graph size: 272
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 29
## Total graph size: 349
##
## Initializing model
summary(anohe.time.infants)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 C_MAC_Miller_VL Macintosh NA NA NA
## 2 C_MAC_Miller_VL Miller 90.33203 90.39085 0.6877643
## 3 C_MAC_Miller_VL Truview NA 52.45281 0.6756919
## 4 Glidescope Macintosh NA NA NA
## 5 KingVision_non_channelled Macintosh NA NA NA
## 6 Macintosh Pentax_AWS NA NA NA
## 7 Mcoy_straight Miller NA NA NA
## 8 Miller Oxiport_Miller NA NA NA
## 9 Miller Truview NA 91.55009 0.7269370
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 90.3455 94.20385
nodesplit.time.infants <- gemtc::mtc.nodesplit(graph.time.infants, linearModel = "random", likelihood = "normal",link = "identity",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 30
## Total graph size: 564
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 30
## Total graph size: 564
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 30
## Total graph size: 563
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 20
## Unobserved stochastic nodes: 29
## Total graph size: 349
##
## Initializing model
summary(nodesplit.time.infants)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.C_MAC_Miller_VL.Miller 0.5168
## 2 -> direct 9.4 (-2.1, 20.)
## 3 -> indirect 3.8 (-18., 26.)
## 4 -> network 8.1 (-1.2, 17.)
## 5 d.C_MAC_Miller_VL.Truview 0.5158
## 6 -> direct 5.7 (-10., 21.)
## 7 -> indirect 11. (-8.5, 30.)
## 8 -> network 8.1 (-3.4, 19.)
## 9 d.Miller.Truview 0.5252
## 10 -> direct 1.9 (-14., 17.)
## 11 -> indirect -3.8 (-23., 16.)
## 12 -> network -0.037 (-11., 11.)
forest(relative.effect(mcmc.time.infants.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-60, 60))
rank.probability.time.infants <- gemtc::rank.probability(mcmc.time.infants.2, preferredDirection = -1)
plot(rank.probability.time.infants, beside=TRUE)
sucra.time.infants <- dmetar::sucra(rank.probability.time.infants, lower.is.better = FALSE)
sucra.time.infants
## SUCRA
## Glidescope 0.81484687
## Macintosh 0.80225313
## KingVision_non_channelled 0.74090625
## C_MAC_Miller_VL 0.61356563
## Pentax_AWS 0.57878125
## Truview 0.31893750
## Miller 0.31427500
## Oxiport_Miller 0.27092813
## Mcoy_straight 0.04550625
Network meta-analysis of major complications
net.major<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped major.csv")
sum(net.major$sampleSize)
## [1] 1624
table(net.major$treatment)
##
## Bullard C_MAC_Miller_VL Glidescope
## 2 5 5
## KingVision_non_channelled Macintosh McGrath_MAC
## 2 9 1
## Miller Oxiport_Miller Truview
## 11 1 5
id<-c("Bullard","C_MAC_Miller_VL","Glidescope","KingVision_non_channelled","Macintosh","McGrath_MAC","Miller","Oxiport_Miller","Truview")
description<-c("Bullard","C-MAC Miller","Glidescope","KingVision Non-channelled","Macintosh","McGrath MAC","Miller","Oxiport Miller","Truview")
treat.codes.major<-data.frame(id,description)
graph.major<-gemtc::mtc.network(data.ab = net.major,treatments = treat.codes.major)
summary(graph.major)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Bullard C_MAC_Miller_VL Glidescope
## 2 5 5
## KingVision_non_channelled Macintosh McGrath_MAC
## 2 9 1
## Miller Oxiport_Miller Truview
## 11 1 5
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 16 3
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Bullard Macintosh 1
## 2 Bullard Miller 1
## 3 C_MAC_Miller_VL Glidescope 2
## 4 C_MAC_Miller_VL Miller 4
## 5 C_MAC_Miller_VL Truview 1
## 6 Glidescope Macintosh 2
## 7 Glidescope Miller 3
## 8 Glidescope Truview 1
## 9 KingVision_non_channelled Macintosh 1
## 10 KingVision_non_channelled Miller 1
## 11 Macintosh McGrath_MAC 1
## 12 Macintosh Miller 2
## 13 Macintosh Truview 3
## 14 Miller Oxiport_Miller 1
## 15 Miller Truview 1
plot(graph.major,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.major <- gemtc::mtc.model(graph.major,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.major.1 <- gemtc::mtc.run(model.major, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.major.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.Bullard 0.34547 2.1620 0.10810 0.17287
## d.Macintosh.Glidescope -7.72541 4.5290 0.22645 0.66372
## d.Macintosh.KingVision_non_channelled -9.19479 5.2722 0.26361 0.75928
## d.Macintosh.McGrath_MAC 0.02585 2.0535 0.10267 0.13733
## d.Macintosh.Miller -7.44735 4.6525 0.23262 0.78111
## d.Macintosh.Truview -0.48689 2.0205 0.10103 0.23541
## d.Miller.C_MAC_Miller_VL -1.33882 1.1317 0.05659 0.09445
## d.Miller.Oxiport_Miller -1.57723 1.4999 0.07499 0.07352
## sd.d 0.97652 0.6598 0.03299 0.07637
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75%
## d.Macintosh.Bullard -4.08233 -0.9198 0.56733 1.6967
## d.Macintosh.Glidescope -16.12941 -12.1094 -6.19866 -3.8749
## d.Macintosh.KingVision_non_channelled -19.46211 -13.3604 -7.87167 -5.2530
## d.Macintosh.McGrath_MAC -4.18251 -1.0928 0.04579 1.1928
## d.Macintosh.Miller -15.88397 -12.0174 -5.84874 -3.6632
## d.Macintosh.Truview -4.82706 -1.8568 -0.41141 0.8211
## d.Miller.C_MAC_Miller_VL -3.36224 -1.9605 -1.45053 -0.8771
## d.Miller.Oxiport_Miller -4.50858 -2.3444 -1.55662 -0.8311
## sd.d 0.04384 0.4375 0.87057 1.4751
## 97.5%
## d.Macintosh.Bullard 4.4573
## d.Macintosh.Glidescope -1.8443
## d.Macintosh.KingVision_non_channelled -0.8828
## d.Macintosh.McGrath_MAC 4.4394
## d.Macintosh.Miller -1.1740
## d.Macintosh.Truview 3.2857
## d.Miller.C_MAC_Miller_VL 1.3553
## d.Miller.Oxiport_Miller 1.8531
## sd.d 2.3017
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 20.75070 19.42753 40.17823
##
## 41 data points, ratio 0.5061, I^2 = 0%
mcmc.major.2 <- gemtc::mtc.run(model.major, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
summary(mcmc.major.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Macintosh.Bullard 0.004078 2.1739 0.010870 0.024729
## d.Macintosh.Glidescope -10.654107 6.4061 0.032031 0.543355
## d.Macintosh.KingVision_non_channelled -11.654217 6.6338 0.033169 0.530386
## d.Macintosh.McGrath_MAC -0.023782 2.1896 0.010948 0.020751
## d.Macintosh.Miller -10.266621 6.4217 0.032109 0.551183
## d.Macintosh.Truview -0.165074 2.0696 0.010348 0.034402
## d.Miller.C_MAC_Miller_VL -1.284776 1.0119 0.005060 0.008919
## d.Miller.Oxiport_Miller -1.531427 1.5015 0.007508 0.009455
## sd.d 0.970962 0.6773 0.003386 0.012360
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75%
## d.Macintosh.Bullard -4.32974 -1.3370 -0.01457 1.3340
## d.Macintosh.Glidescope -25.32447 -14.9543 -9.16081 -5.5750
## d.Macintosh.KingVision_non_channelled -26.60309 -16.0077 -10.42973 -6.5932
## d.Macintosh.McGrath_MAC -4.45660 -1.3606 -0.03572 1.3071
## d.Macintosh.Miller -24.97062 -14.5379 -8.84532 -5.2406
## d.Macintosh.Truview -4.34156 -1.4223 -0.17019 1.1111
## d.Miller.C_MAC_Miller_VL -3.25507 -1.8461 -1.35065 -0.7894
## d.Miller.Oxiport_Miller -4.69516 -2.3890 -1.48402 -0.6548
## sd.d 0.03968 0.3975 0.84953 1.4588
## 97.5%
## d.Macintosh.Bullard 4.4506
## d.Macintosh.Glidescope -1.9596
## d.Macintosh.KingVision_non_channelled -1.8344
## d.Macintosh.McGrath_MAC 4.3847
## d.Macintosh.Miller -1.2659
## d.Macintosh.Truview 3.9675
## d.Miller.C_MAC_Miller_VL 0.9911
## d.Miller.Oxiport_Miller 1.5158
## sd.d 2.3915
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 20.34756 19.35997 39.70753
##
## 41 data points, ratio 0.4963, I^2 = 0%
gelman.plot(mcmc.major.1)
gelman.plot(mcmc.major.2)
gelman.diag(mcmc.major.1)$mpsrf
## [1] 3.201202
gelman.diag(mcmc.major.2)$mpsrf
## [1] 1.049604
anohe.major<-gemtc::mtc.anohe(graph.major,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 41
## Total graph size: 730
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 57
## Total graph size: 792
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
summary(anohe.major)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Bullard Macintosh NA 0 0.9939265
## 2 Bullard Miller NA 0 0.7480242
## 3 C_MAC_Miller_VL Glidescope 0.00000 0 0.7940655
## 4 C_MAC_Miller_VL Miller 0.00000 0 0.9917926
## 5 C_MAC_Miller_VL Truview NA 0 0.1336351
## 6 Glidescope Macintosh 0.00000 0 0.1934698
## 7 Glidescope Miller 0.00000 0 0.9124140
## 8 Glidescope Truview NA 0 0.5670453
## 9 KingVision_non_channelled Macintosh NA 0 0.6077614
## 10 KingVision_non_channelled Miller NA 0 0.9768882
## 11 Macintosh McGrath_MAC NA NA NA
## 12 Macintosh Miller 96.82593 0 0.5106073
## 13 Macintosh Truview 0.00000 0 0.9857799
## 14 Miller Oxiport_Miller NA NA NA
## 15 Miller Truview NA 0 0.4814101
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 87.00424 0
nodesplit.major <- gemtc::mtc.nodesplit(graph.major, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1135
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 39
## Unobserved stochastic nodes: 49
## Total graph size: 1090
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 39
## Unobserved stochastic nodes: 49
## Total graph size: 1091
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 50
## Total graph size: 1113
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 39
## Unobserved stochastic nodes: 49
## Total graph size: 1091
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 50
## Total graph size: 1114
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1132
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 40
## Unobserved stochastic nodes: 50
## Total graph size: 1112
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 51
## Total graph size: 1134
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 41
## Unobserved stochastic nodes: 50
## Total graph size: 921
##
## Initializing model
summary(nodesplit.major)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.Bullard.Macintosh 0.93035
## 2 -> direct 0.0077 (-4.4, 4.4)
## 3 -> indirect -2.7 (-78., 52.)
## 4 -> network 0.013 (-4.3, 4.4)
## 5 d.Bullard.Miller 0.96525
## 6 -> direct -12. (-81., 41.)
## 7 -> indirect -9.4 (-29., -0.25)
## 8 -> network -9.6 (-24., -0.31)
## 9 d.C_MAC_Miller_VL.Glidescope 0.59045
## 10 -> direct -0.050 (-4.8, 4.5)
## 11 -> indirect 1.5 (-3.4, 6.1)
## 12 -> network 0.97 (-2.1, 3.7)
## 13 d.C_MAC_Miller_VL.Miller 0.48500
## 14 -> direct 1.3 (-1.4, 3.5)
## 15 -> indirect 13. (-14., 56.)
## 16 -> network 1.4 (-1.0, 3.3)
## 17 d.C_MAC_Miller_VL.Truview 0.49910
## 18 -> direct 20. (1.7, 63.)
## 19 -> indirect 9.0 (0.32, 26.)
## 20 -> network 11. (2.5, 26.)
## 21 d.Glidescope.Macintosh 0.72585
## 22 -> direct 14. (2.2, 41.)
## 23 -> indirect 8.7 (-14., 37.)
## 24 -> network 10. (2.2, 24.)
## 25 d.Glidescope.Miller 0.64005
## 26 -> direct 0.026 (-2.7, 2.7)
## 27 -> indirect 5.9 (-20., 34.)
## 28 -> network 0.36 (-2.0, 2.8)
## 29 d.Glidescope.Truview 0.72375
## 30 -> direct 16. (-0.35, 53.)
## 31 -> indirect 9.9 (-0.36, 31.)
## 32 -> network 9.9 (1.7, 24.)
## 33 d.KingVision_non_channelled.Macintosh 0.31490
## 34 -> direct -16. (-78., 40.)
## 35 -> indirect 13. (2.5, 37.)
## 36 -> network 11. (2.3, 26.)
## 37 d.KingVision_non_channelled.Miller 0.39470
## 38 -> direct 1.4 (-2.0, 5.6)
## 39 -> indirect -24. (-84., 38.)
## 40 -> network 1.3 (-2.0, 5.3)
## 41 d.Macintosh.Miller 0.84110
## 42 -> direct -15. (-91., 29.)
## 43 -> indirect -8.8 (-24., -1.3)
## 44 -> network -9.6 (-24., -1.6)
## 45 d.Macintosh.Truview 0.91690
## 46 -> direct -0.12 (-4.5, 4.3)
## 47 -> indirect 1.2 (-28., 32.)
## 48 -> network -0.11 (-4.4, 4.0)
## 49 d.Miller.Truview 0.36530
## 50 -> direct -12. (-88., 39.)
## 51 -> indirect 9.5 (1.1, 30.)
## 52 -> network 9.5 (1.2, 24.)
forest(relative.effect(mcmc.major.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.major <- gemtc::rank.probability(mcmc.major.2, preferredDirection = -1)
plot(rank.probability.major, beside=TRUE)
sucra.major <- dmetar::sucra(rank.probability.major, lower.is.better = FALSE)
sucra.major
## SUCRA
## Oxiport_Miller 0.8330250
## C_MAC_Miller_VL 0.8248906
## KingVision_non_channelled 0.7995187
## Glidescope 0.6746281
## Miller 0.5900219
## Truview 0.2020187
## McGrath_MAC 0.1966000
## Bullard 0.1950969
## Macintosh 0.1842000
Network meta-analysis of major complications in neonates and infants
net.major.infants<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped major Neo & Infants.csv")
sum(net.major.infants$sampleSize)
## [1] 512
table(net.major.infants$treatment)
##
## C_MAC_Miller_VL Glidescope Macintosh Miller Oxiport_Miller
## 3 2 1 4 1
## Truview
## 1
id<-c("C_MAC_Miller_VL","Glidescope","Macintosh","Miller","Oxiport_Miller","Truview")
description<-c("C-MAC Miller","Glidescope","Macintosh","Miller","Oxiport Miller","Truview")
treat.codes.major.infants<-data.frame(id,description)
graph.major.infants<-gemtc::mtc.network(data.ab = net.major.infants,treatments = treat.codes.major.infants)
summary(graph.major.infants)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## C_MAC_Miller_VL Glidescope Macintosh Miller Oxiport_Miller
## 3 2 1 4 1
## Truview
## 1
##
## $`Number of n-arm studies`
## 2-arm
## 6
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 C_MAC_Miller_VL Miller 2
## 2 C_MAC_Miller_VL Truview 1
## 3 Glidescope Macintosh 1
## 4 Glidescope Miller 1
## 5 Miller Oxiport_Miller 1
plot(graph.major.infants,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.major.infants <- gemtc::mtc.model(graph.major.infants,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.major.infants.1 <- gemtc::mtc.run(model.major.infants, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 18
## Total graph size: 303
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.major.infants.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Truview 10.3291 8.0990 0.40495 1.74178
## d.Glidescope.Macintosh 9.2221 5.2002 0.26001 1.11034
## d.Miller.C_MAC_Miller_VL -1.7098 1.5758 0.07879 0.08913
## d.Miller.Glidescope -0.2095 1.7424 0.08712 0.09721
## d.Miller.Oxiport_Miller -1.5242 1.8590 0.09295 0.08992
## sd.d 1.2979 0.7352 0.03676 0.05543
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Truview 0.11407 4.439 7.8691 14.3064 29.172
## d.Glidescope.Macintosh 1.67519 5.406 8.3623 11.9518 21.034
## d.Miller.C_MAC_Miller_VL -5.12781 -2.516 -1.6929 -0.8475 1.552
## d.Miller.Glidescope -3.82084 -1.267 -0.1099 1.0098 2.760
## d.Miller.Oxiport_Miller -5.49646 -2.529 -1.4714 -0.5618 2.374
## sd.d 0.06363 0.630 1.3194 1.9594 2.478
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 8.397902 8.023175 16.421077
##
## 12 data points, ratio 0.6998, I^2 = 0%
mcmc.major.infants.2 <- gemtc::mtc.run(model.major.infants, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 12
## Unobserved stochastic nodes: 18
## Total graph size: 303
##
## Initializing model
summary(mcmc.major.infants.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Truview 23.46092 15.5533 0.077766 1.381919
## d.Glidescope.Macintosh 21.02306 14.1987 0.070993 1.342999
## d.Miller.C_MAC_Miller_VL -1.60517 1.5115 0.007557 0.007877
## d.Miller.Glidescope 0.01318 1.8701 0.009350 0.010869
## d.Miller.Oxiport_Miller -1.54975 1.7318 0.008659 0.009132
## sd.d 1.27039 0.7343 0.003672 0.006585
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Truview 1.86591 11.2251 21.0069686 33.0766 60.994
## d.Glidescope.Macintosh 2.05926 9.4702 18.2944199 29.8645 53.921
## d.Miller.C_MAC_Miller_VL -4.79691 -2.3616 -1.6218064 -0.8694 1.638
## d.Miller.Glidescope -3.83167 -1.1114 0.0005335 1.1425 3.842
## d.Miller.Oxiport_Miller -5.22281 -2.5378 -1.5030758 -0.5381 1.949
## sd.d 0.05949 0.6347 1.2725458 1.9068 2.484
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 8.567118 8.394536 16.961654
##
## 12 data points, ratio 0.7139, I^2 = 0%
gelman.plot(mcmc.major.infants.1)
gelman.plot(mcmc.major.infants.2)
gelman.diag(mcmc.major.infants.1)$mpsrf
## [1] 2.074839
gelman.diag(mcmc.major.infants.2)$mpsrf
## [1] 1.067453
anohe.major.infants<-gemtc::mtc.anohe(graph.major.infants,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
summary(anohe.major.infants)
nodesplit.major.infants <- gemtc::mtc.nodesplit(graph.major.infants, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
summary(nodesplit.major.infants)
There are no comparisons to assess for inconsistency for major complications in infants
forest(relative.effect(mcmc.major.infants.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.major.infants <- gemtc::rank.probability(mcmc.major.infants.2, preferredDirection = -1)
plot(rank.probability.major.infants, beside=TRUE)
sucra.major.infants <- dmetar::sucra(rank.probability.major.infants, lower.is.better = FALSE)
sucra.major.infants
## SUCRA
## C_MAC_Miller_VL 0.835190
## Oxiport_Miller 0.810590
## Glidescope 0.585515
## Miller 0.547435
## Truview 0.112570
## Macintosh 0.108700
Network meta-analysis of minor complications
net.minor<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped minor.csv")
sum(net.minor$sampleSize)
## [1] 1906
table(net.minor$treatment)
##
## Airtraq C_MAC_Miller_VL Glidescope
## 4 5 6
## KingVision_non_channelled Macintosh McGrath_MAC
## 2 12 1
## Miller Pentax_AWS Truview
## 10 2 6
id<-c("Airtraq","C_MAC_Miller_VL","Glidescope","KingVision_non_channelled","Macintosh","McGrath_MAC","Miller","Pentax_AWS","Truview")
description<-c("Airtraq","C-MAC Miller","Glidescope","KingVision Non-channelled","Macintosh","McGrath MAC","Miller","Pentax AWS","Truview")
treat.codes.minor<-data.frame(id,description)
graph.minor<-gemtc::mtc.network(data.ab = net.minor,treatments = treat.codes.minor)
summary(graph.minor)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## Airtraq C_MAC_Miller_VL Glidescope
## 4 5 6
## KingVision_non_channelled Macintosh McGrath_MAC
## 2 12 1
## Miller Pentax_AWS Truview
## 10 2 6
##
## $`Number of n-arm studies`
## 2-arm 3-arm
## 21 2
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 Airtraq Macintosh 2
## 2 Airtraq Miller 2
## 3 C_MAC_Miller_VL Glidescope 1
## 4 C_MAC_Miller_VL Macintosh 1
## 5 C_MAC_Miller_VL Miller 3
## 6 C_MAC_Miller_VL Truview 1
## 7 Glidescope Macintosh 3
## 8 Glidescope Miller 3
## 9 Glidescope Truview 1
## 10 KingVision_non_channelled Macintosh 1
## 11 KingVision_non_channelled Miller 1
## 12 Macintosh McGrath_MAC 1
## 13 Macintosh Pentax_AWS 2
## 14 Macintosh Truview 3
## 15 Miller Truview 2
plot(graph.minor,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.minor <- gemtc::mtc.model(graph.minor,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.minor.1 <- gemtc::mtc.run(model.minor, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 57
## Total graph size: 1055
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.minor.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Airtraq.Macintosh 1.91398 1.5678 0.07839 0.11522
## d.Airtraq.Miller 1.40717 1.2127 0.06064 0.06968
## d.Macintosh.C_MAC_Miller_VL -1.59883 2.0972 0.10486 0.18983
## d.Macintosh.Glidescope -1.05301 2.1591 0.10796 0.20578
## d.Macintosh.KingVision_non_channelled -0.04937 2.4827 0.12414 0.16856
## d.Macintosh.McGrath_MAC 0.15080 1.7438 0.08719 0.08448
## d.Macintosh.Pentax_AWS -0.02367 1.3427 0.06714 0.06483
## d.Macintosh.Truview 1.04154 1.9052 0.09526 0.14720
## sd.d 1.63432 0.4388 0.02194 0.04056
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Airtraq.Macintosh -1.1325 0.9438 1.84240 2.8134 5.261
## d.Airtraq.Miller -0.8859 0.5690 1.35130 2.2033 4.043
## d.Macintosh.C_MAC_Miller_VL -5.9786 -2.8764 -1.62915 -0.1652 2.323
## d.Macintosh.Glidescope -5.1054 -2.5373 -0.99485 0.3905 3.257
## d.Macintosh.KingVision_non_channelled -5.0058 -1.5804 0.01193 1.4774 4.433
## d.Macintosh.McGrath_MAC -3.1724 -0.9408 0.12626 1.2604 3.506
## d.Macintosh.Pentax_AWS -2.8556 -0.8934 0.11203 0.8476 2.357
## d.Macintosh.Truview -2.5759 -0.2509 1.05119 2.2688 5.208
## sd.d 0.7287 1.3212 1.68238 2.0128 2.263
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 31.87540 25.28481 57.16021
##
## 48 data points, ratio 0.6641, I^2 = 0%
mcmc.minor.2 <- gemtc::mtc.run(model.minor, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 57
## Total graph size: 1055
##
## Initializing model
summary(mcmc.minor.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Airtraq.Macintosh 1.73827 1.482 0.007409 0.013604
## d.Airtraq.Miller 1.39875 1.289 0.006447 0.009570
## d.Macintosh.C_MAC_Miller_VL -1.46805 2.089 0.010447 0.020241
## d.Macintosh.Glidescope -0.95460 2.117 0.010587 0.023449
## d.Macintosh.KingVision_non_channelled 0.17185 2.406 0.012028 0.020173
## d.Macintosh.McGrath_MAC 0.05349 1.750 0.008748 0.008659
## d.Macintosh.Pentax_AWS -0.07105 1.372 0.006859 0.007009
## d.Macintosh.Truview 1.27384 1.949 0.009746 0.018420
## sd.d 1.61611 0.478 0.002390 0.005821
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Airtraq.Macintosh -1.1131 0.781967 1.70006 2.6513 4.803
## d.Airtraq.Miller -1.0182 0.530715 1.32111 2.2113 4.100
## d.Macintosh.C_MAC_Miller_VL -5.5787 -2.808249 -1.49662 -0.1531 2.755
## d.Macintosh.Glidescope -5.0810 -2.336267 -0.99647 0.3925 3.369
## d.Macintosh.KingVision_non_channelled -4.5272 -1.370021 0.10363 1.6870 5.113
## d.Macintosh.McGrath_MAC -3.5093 -1.027450 0.05698 1.1310 3.564
## d.Macintosh.Pentax_AWS -2.8819 -0.923527 -0.03904 0.7841 2.660
## d.Macintosh.Truview -2.4348 -0.006123 1.20154 2.4816 5.338
## sd.d 0.5151 1.313461 1.69235 2.0069 2.261
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 32.15062 25.32084 57.47146
##
## 48 data points, ratio 0.6698, I^2 = 0%
gelman.plot(mcmc.minor.1)
gelman.plot(mcmc.minor.2)
gelman.diag(mcmc.minor.1)$mpsrf
## [1] 1.080032
gelman.diag(mcmc.minor.2)$mpsrf
## [1] 1.001197
anohe.minor<-gemtc::mtc.anohe(graph.minor,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 48
## Total graph size: 860
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 64
## Total graph size: 943
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 57
## Total graph size: 1055
##
## Initializing model
summary(anohe.minor)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Airtraq Macintosh 55.32159 7.162746 0.7690186
## 2 Airtraq Miller 38.27848 68.597553 0.8901906
## 3 C_MAC_Miller_VL Glidescope NA 43.823726 0.2355067
## 4 C_MAC_Miller_VL Macintosh NA 0.000000 0.4801859
## 5 C_MAC_Miller_VL Miller 0.00000 0.000000 0.9793420
## 6 C_MAC_Miller_VL Truview NA 0.000000 0.9408037
## 7 Glidescope Macintosh 0.00000 0.000000 0.6164971
## 8 Glidescope Miller 0.00000 0.000000 0.9091739
## 9 Glidescope Truview NA 50.341929 0.2067607
## 10 KingVision_non_channelled Macintosh NA 0.000000 0.9013796
## 11 KingVision_non_channelled Miller NA 0.000000 0.9960146
## 12 Macintosh McGrath_MAC NA NA NA
## 13 Macintosh Pentax_AWS 84.47408 84.270710 NA
## 14 Macintosh Truview 68.52529 0.000000 0.3746884
## 15 Miller Truview 99.81118 10.754152 0.1149418
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 98.15679 28.66683
nodesplit.minor <- gemtc::mtc.nodesplit(graph.minor, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 58
## Total graph size: 1271
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 58
## Total graph size: 1271
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 47
## Unobserved stochastic nodes: 57
## Total graph size: 1247
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 58
## Total graph size: 1271
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 47
## Unobserved stochastic nodes: 57
## Total graph size: 1245
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 58
## Total graph size: 1268
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 47
## Unobserved stochastic nodes: 57
## Total graph size: 1248
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 47
## Unobserved stochastic nodes: 57
## Total graph size: 1246
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 47
## Unobserved stochastic nodes: 57
## Total graph size: 1246
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 58
## Total graph size: 1268
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 58
## Total graph size: 1268
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 47
## Unobserved stochastic nodes: 57
## Total graph size: 1248
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 58
## Total graph size: 1268
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 48
## Unobserved stochastic nodes: 57
## Total graph size: 1055
##
## Initializing model
summary(nodesplit.minor)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.Airtraq.Macintosh 0.03115
## 2 -> direct 3.1 (-0.010, 7.4)
## 3 -> indirect -8.2 (-32., 1.7)
## 4 -> network 1.7 (-1.1, 4.9)
## 5 d.Airtraq.Miller 0.03080
## 6 -> direct 0.49 (-1.9, 3.2)
## 7 -> indirect 12. (1.8, 35.)
## 8 -> network 1.3 (-1.0, 4.1)
## 9 d.C_MAC_Miller_VL.Glidescope 0.05610
## 10 -> direct 15. (-0.73, 51.)
## 11 -> indirect -1.4 (-6.4, 3.1)
## 12 -> network 0.45 (-3.2, 4.4)
## 13 d.C_MAC_Miller_VL.Macintosh 0.62695
## 14 -> direct -11. (-73., 35.)
## 15 -> indirect 1.6 (-2.7, 5.8)
## 16 -> network 1.5 (-2.8, 5.7)
## 17 d.C_MAC_Miller_VL.Miller 0.81625
## 18 -> direct 0.98 (-2.8, 4.8)
## 19 -> indirect 0.22 (-5.6, 6.3)
## 20 -> network 1.1 (-1.7, 4.1)
## 21 d.C_MAC_Miller_VL.Truview 0.63535
## 22 -> direct 2.1 (-2.0, 6.8)
## 23 -> indirect 3.7 (-1.4, 9.3)
## 24 -> network 2.7 (-0.49, 6.2)
## 25 d.Glidescope.Macintosh 0.29755
## 26 -> direct -17. (-76., 16.)
## 27 -> indirect 2.7 (-2.7, 8.2)
## 28 -> network 1.0 (-3.3, 5.1)
## 29 d.Glidescope.Miller 0.21865
## 30 -> direct 0.20 (-3.4, 3.6)
## 31 -> indirect 7.4 (-2.2, 33.)
## 32 -> network 0.62 (-2.4, 3.7)
## 33 d.Glidescope.Truview 0.02230
## 34 -> direct 17. (1.5, 57.)
## 35 -> indirect -0.90 (-6.8, 3.7)
## 36 -> network 2.2 (-1.5, 6.2)
## 37 d.KingVision_non_channelled.Macintosh 0.69835
## 38 -> direct -10. (-71., 35.)
## 39 -> indirect -0.018 (-5.1, 4.8)
## 40 -> network -0.097 (-5.1, 4.7)
## 41 d.KingVision_non_channelled.Miller 0.64220
## 42 -> direct -0.47 (-3.9, 3.1)
## 43 -> indirect -12. (-73., 37.)
## 44 -> network -0.49 (-4.0, 3.0)
## 45 d.Macintosh.Truview 0.01550
## 46 -> direct 8.9 (0.46, 34.)
## 47 -> indirect -3.3 (-9.8, 2.2)
## 48 -> network 1.2 (-2.4, 5.4)
## 49 d.Miller.Truview 0.00645
## 50 -> direct -25. (-77., -0.55)
## 51 -> indirect 3.7 (-0.016, 8.2)
## 52 -> network 1.6 (-1.6, 4.9)
forest(relative.effect(mcmc.minor.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.minor <- gemtc::rank.probability(mcmc.minor.2, preferredDirection = -1)
plot(rank.probability.minor, beside=TRUE)
sucra.minor <- dmetar::sucra(rank.probability.minor, lower.is.better = FALSE)
sucra.minor
## SUCRA
## Airtraq 0.7950125
## C_MAC_Miller_VL 0.7247469
## Glidescope 0.6238094
## Miller 0.4849875
## Pentax_AWS 0.4416375
## McGrath_MAC 0.4258562
## Macintosh 0.4157219
## KingVision_non_channelled 0.3994906
## Truview 0.1887375
Network meta-analysis of minor complications in neonates and infants
net.minor.infants<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Tables for Network Analyses/Table Network Ped minor Neo & Infants.csv")
sum(net.minor.infants$sampleSize)
## [1] 639
table(net.minor.infants$treatment)
##
## C_MAC_Miller_VL Glidescope Macintosh Miller Pentax_AWS
## 4 3 3 5 1
## Truview
## 2
id<-c("C_MAC_Miller_VL","Glidescope","Macintosh","Miller","Pentax_AWS","Truview")
description<-c("C-MAC Miller","Glidescope","Macintosh","Miller","Pentax AWS","Truview")
treat.codes.minor.infants<-data.frame(id,description)
graph.minor.infants<-gemtc::mtc.network(data.ab = net.minor.infants,treatments = treat.codes.minor.infants)
summary(graph.minor.infants)
## $Description
## [1] "MTC dataset: Network"
##
## $`Studies per treatment`
## C_MAC_Miller_VL Glidescope Macintosh Miller Pentax_AWS
## 4 3 3 5 1
## Truview
## 2
##
## $`Number of n-arm studies`
## 2-arm
## 9
##
## $`Studies per treatment comparison`
## t1 t2 nr
## 1 C_MAC_Miller_VL Macintosh 1
## 2 C_MAC_Miller_VL Miller 2
## 3 C_MAC_Miller_VL Truview 1
## 4 Glidescope Macintosh 1
## 5 Glidescope Miller 2
## 6 Macintosh Pentax_AWS 1
## 7 Miller Truview 1
plot(graph.minor.infants,use.description = TRUE,vertex.shape="circle",vertex.color="white",vertex.size=15,vertex.label.color="dark blue",vertex.label.cex=1.0,edge.color="light blue")
model.minor.infants <- gemtc::mtc.model(graph.minor.infants,likelihood = "binom",link = "logit",linearModel = "random",n.chain = 4)
mcmc.minor.infants.1 <- gemtc::mtc.run(model.minor.infants, n.adapt = 50, n.iter = 1000, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 24
## Total graph size: 411
##
## Initializing model
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Adaptation incomplete
## NOTE: Stopping adaptation
summary(mcmc.minor.infants.1)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 60:1050
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 100
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh -5.3167 7.7705 0.38853 1.27618
## d.C_MAC_Miller_VL.Miller 1.8914 1.2458 0.06229 0.12231
## d.C_MAC_Miller_VL.Truview 1.1443 1.1465 0.05733 0.08094
## d.Macintosh.Glidescope 5.2345 7.7018 0.38509 1.35774
## d.Macintosh.Pentax_AWS -2.4212 1.7129 0.08564 0.13449
## sd.d 0.6865 0.4563 0.02281 0.04766
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -21.19632 -10.1264 -5.9449 0.7982 8.3661
## d.C_MAC_Miller_VL.Miller -0.24549 1.1272 1.7774 2.7621 4.4573
## d.C_MAC_Miller_VL.Truview -1.19446 0.4435 1.1563 1.7532 3.5629
## d.Macintosh.Glidescope -8.30899 -0.5290 4.9588 9.7478 20.8854
## d.Macintosh.Pentax_AWS -6.32457 -3.4348 -2.2219 -1.2489 0.6583
## sd.d 0.01976 0.2797 0.6747 1.0748 1.4863
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 11.417818 9.697653 21.115471
##
## 18 data points, ratio 0.6343, I^2 = 0%
mcmc.minor.infants.2 <- gemtc::mtc.run(model.minor.infants, n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 24
## Total graph size: 411
##
## Initializing model
summary(mcmc.minor.infants.2)
##
## Results on the Log Odds Ratio scale
##
## Iterations = 5010:105000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 10000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.C_MAC_Miller_VL.Macintosh -9.4628 13.4618 0.067309 0.981851
## d.C_MAC_Miller_VL.Miller 1.6736 1.2391 0.006195 0.013184
## d.C_MAC_Miller_VL.Truview 1.2569 1.2931 0.006466 0.011264
## d.Macintosh.Glidescope 9.3158 13.4690 0.067345 0.992639
## d.Macintosh.Pentax_AWS -2.3067 1.6572 0.008286 0.012628
## sd.d 0.7774 0.4452 0.002226 0.005208
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.C_MAC_Miller_VL.Macintosh -39.4096 -17.7017 -8.2279 -0.1182 13.9244
## d.C_MAC_Miller_VL.Miller -0.6279 0.8470 1.6169 2.4442 4.2905
## d.C_MAC_Miller_VL.Truview -1.2723 0.4272 1.2294 2.0708 3.8680
## d.Macintosh.Glidescope -13.8394 -0.1501 8.0930 17.3842 39.0374
## d.Macintosh.Pentax_AWS -5.9357 -3.2947 -2.1921 -1.2151 0.6718
## sd.d 0.0339 0.3938 0.7882 1.1669 1.4920
##
## -- Model fit (residual deviance):
##
## Dbar pD DIC
## 11.332824 9.726747 21.059571
##
## 18 data points, ratio 0.6296, I^2 = 0%
gelman.plot(mcmc.minor.infants.1)
gelman.plot(mcmc.minor.infants.2)
gelman.diag(mcmc.minor.infants.1)$mpsrf
## [1] 3.017009
gelman.diag(mcmc.minor.infants.2)$mpsrf
## [1] 1.048407
anohe.minor.infants<-gemtc::mtc.anohe(graph.minor.infants,n.adapt = 5000, n.iter = 1e5, thin = 10,sampler="rjags")
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Warning in rjags::jags.model(file.model, data = syntax[["data"]], inits =
## syntax[["inits"]], : Unused variable "om.scale" in data
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 18
## Total graph size: 330
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 26
## Total graph size: 380
##
## Initializing model
## Warning in (function (model, sampler = NA, n.adapt = 5000, n.iter = 20000, :
## Setting the sampler is deprecated.
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 24
## Total graph size: 411
##
## Initializing model
summary(anohe.minor.infants)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 C_MAC_Miller_VL Macintosh NA 0.00000 0.95564238
## 2 C_MAC_Miller_VL Miller 0 44.45603 0.07446096
## 3 C_MAC_Miller_VL Truview NA 0.00000 0.41356449
## 4 Glidescope Macintosh NA 0.00000 0.84018334
## 5 Glidescope Miller 0 0.00000 NA
## 6 Macintosh Pentax_AWS NA NA NA
## 7 Miller Truview NA 40.43561 0.24498681
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 0 0
nodesplit.minor.infants <- gemtc::mtc.nodesplit(graph.minor.infants, linearModel = "random", likelihood = "binom",link = "logit",n.adapt = 5000, n.iter = 1e5, thin = 10)
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 25
## Total graph size: 527
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 25
## Total graph size: 524
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 25
## Total graph size: 524
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 25
## Total graph size: 523
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 25
## Total graph size: 523
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 25
## Total graph size: 523
##
## Initializing model
##
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 18
## Unobserved stochastic nodes: 24
## Total graph size: 411
##
## Initializing model
summary(nodesplit.minor.infants)
## Node-splitting analysis of inconsistency
## ========================================
##
## comparison p.value CrI
## 1 d.C_MAC_Miller_VL.Macintosh 0.95840
## 2 -> direct -8.5 (-46., 22.)
## 3 -> indirect -7.2 (-52., 25.)
## 4 -> network -6.5 (-36., 15.)
## 5 d.C_MAC_Miller_VL.Miller 0.05785
## 6 -> direct 1.0 (-1.4, 3.7)
## 7 -> indirect 13. (1.3, 40.)
## 8 -> network 1.6 (-0.57, 4.3)
## 9 d.C_MAC_Miller_VL.Truview 0.04370
## 10 -> direct 2.1 (-0.69, 5.7)
## 11 -> indirect -14. (-50., 1.4)
## 12 -> network 1.2 (-1.3, 3.9)
## 13 d.Glidescope.Macintosh 0.93915
## 14 -> direct -6.9 (-47., 24.)
## 15 -> indirect -9.2 (-48., 24.)
## 16 -> network -6.4 (-36., 15.)
## 17 d.Glidescope.Miller 0.94330
## 18 -> direct 1.7 (-1.1, 5.4)
## 19 -> indirect 3.7 (-46., 51.)
## 20 -> network 1.7 (-1.1, 5.3)
## 21 d.Miller.Truview 0.04735
## 22 -> direct -14. (-47., 0.15)
## 23 -> indirect 1.0 (-2.8, 5.4)
## 24 -> network -0.40 (-3.8, 2.6)
forest(relative.effect(mcmc.minor.infants.2, t1 = "Macintosh"), use.description = TRUE,xlim = c(-10, 10))
rank.probability.minor.infants <- gemtc::rank.probability(mcmc.minor.infants.2, preferredDirection = -1)
plot(rank.probability.minor.infants, beside=TRUE)
sucra.minor.infants <- dmetar::sucra(rank.probability.minor.infants, lower.is.better = FALSE)
sucra.minor.infants
## SUCRA
## Pentax_AWS 0.846290
## Macintosh 0.628970
## C_MAC_Miller_VL 0.536325
## Glidescope 0.521360
## Truview 0.277100
## Miller 0.189955
#Forest Plot for comparative ORs of failed first intubation attempt, time for intubation and major complications
forest.Ped<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Table for Forest Plot Ped.csv")
forest.Ped$dv<-factor(forest.Ped$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
forest.Ped$id<-factor(forest.Ped$id,levels = c ("McCoy straight","Pentax AWS","Coopdech","Bullard","Oxiport Miller","C-MAC D","Truview","KingVision non-channelled","Miller","GlideScope","C-MAC","C-MAC Miller","Macintosh","McCoy","McGrath MAC","Airtraq"))
scales_x<-list(`Failed first attempt`=scale_x_continuous(limits = c(-27,27)),
`Major complications`=scale_x_continuous(limits = c(-27,27)),
`Time for intubation`=scale_x_continuous(limits = c(-60,60)))
dat_text<-data.frame(
label=c("NA","NA","NA","NA","NA","NA","NA","NA","NA","NA","NA","NA"),
dv=c("Failed first attempt","Failed first attempt","Failed first attempt","Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications","Major complications","Major complications","Major complications","Major complications"),
x=c(-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3),
y=c(1,2,3,4,5,1,2,3,6,11,14,16),
log.ci.l=forest.Ped$ci.l[1:12],
log.ci.u=forest.Ped$log.ci.u[1:12]
)
dat_text$dv<-factor(dat_text$dv,levels = c("Failed first attempt","Major complications"))
dat_text.2<-data.frame(
label=c("NA"),
dv=c("Time for intubation"),
x=c(-6),
y=c(15),
log.ci.l=forest.Ped$ci.l[1:1],
log.ci.u=forest.Ped$log.ci.u[1:1]
)
dat_text.2$dv<-factor(dat_text.2$dv,levels = c("Time for intubation"))
dat_text.macintosh<-data.frame(
label=c("Reference","Reference","Reference"),
dv=c("Failed first attempt","Major complications","Time for intubation"),
x=c(-7,-7,-15),
y=c(13,13,13),
log.ci.l=forest.Ped$ci.l[1:3],
log.ci.u=forest.Ped$log.ci.u[1:3]
)
dat_text.macintosh$dv<-factor(dat_text.macintosh$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
arrow<-data.frame(
dv=c("Failed first attempt"),
x=c(27),
y=c(6),
log.ci.l=forest.Ped$ci.l[1],
log.ci.u=forest.Ped$log.ci.u[1])
base_1<-data.frame(
label=c("Favours Alternative","Log OR","Favours Macintosh","Favours Alternative","Log OR","Favours Macintosh","Favours Alternative","MD","Favours Macintosh"),
dv=c("Failed first attempt", "Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications","Time for intubation","Time for intubation","Time for intubation"),
x=c(-13.5,0,13.5,-13.5,0,13.5,-30,0,30),
y=c(-0.6,-1.5,-0.6,-0.6,-1.5,-0.6,-0.6,-1.5,-0.6),
log.ci.l=forest.Ped$ci.l[1:9],
log.ci.u=forest.Ped$log.ci.u[1:9]
)
base_1$dv<-factor(base_1$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
base_2<-data.frame(
dv=c("Failed first attempt","Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications","Time for intubation","Time for intubation","Time for intubation"),
x=c(-27,0,27,-27,0,27,-60,0,60),
y=c(0,0,0,0,0,0,0,0,0),
xend=c(-27,0,27,-27,0,27,-60,0,60),
yend=c(-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2),
log.ci.l=forest.Ped$ci.l[1:9],
log.ci.u=forest.Ped$log.ci.u[1:9]
)
base_2$dv<-factor(base_2$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
base_3<-data.frame(
dv=c("Failed first attempt","Major complications","Time for intubation"),
x=c(-27,-27,-60),
y=c(0,0,0),
xend=c(27,27,60),
yend=c(0,0,0),
log.ci.l=forest.Ped$ci.l[1:3],
log.ci.u=forest.Ped$log.ci.u[1:3]
)
base_3$dv<-factor(base_3$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
base_4<-data.frame(
label=c("-27","0","27","-27","0","27","-60","0","60"),
dv=c("Failed first attempt","Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications","Time for intubation","Time for intubation","Time for intubation"),
x=c(-27,0,27,-27,0,27,-60,0,60),
y=c(-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6),
log.ci.l=forest.Ped$ci.l[1:9],
log.ci.u=forest.Ped$log.ci.u[1:9]
)
base_4$dv<-factor(base_4$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
gp.ped<-ggplot(data=forest.Ped,aes(y=id,x=log.pe,xmin=log.ci.l,xmax=log.ci.u,ymin=-2))+
geom_point(color="blue",shape="square")+
facet_grid_sc(cols = vars(dv), scales = list(x = scales_x,y="free"))+
geom_errorbarh(aes(xmin=log.ci.l,xmax=log.ci.u),height=0.3,size=0.3)+
geom_segment(x=0,y=0,xend=0,yend=21,lty="dashed")+
ylab("Laryngoscopes")+
theme(axis.title.y.left=element_text(size=13))+
theme(panel.background = element_blank())+
theme(axis.title.x.bottom = element_blank())+
theme(axis.line.x.bottom = element_blank())+
theme(axis.text.x.bottom = element_blank())+
theme(axis.ticks.x.bottom = element_blank())+
geom_text(data=dat_text, mapping=aes(x=x,y=y,label=label),size=2.5)+
geom_text(data=dat_text.2,mapping = aes(x=x,y=y,label=label),size=2.5)+
geom_text(data=dat_text.macintosh,mapping = aes(x=x,y=y,label=label),size=3.5,fontface="italic")+
geom_text(data=base_1,mapping = aes(x=x,y=y,label=label),size=3)+
geom_segment(data=arrow,aes(y=6,yend=6,x=22,xend=29.5),arrow = arrow(length = unit(0.2,"cm"),type = "closed"),size=0.2)+
geom_segment(data = base_2, mapping = aes(x=x,y=y,xend=xend,yend=yend))+
geom_segment(data=base_3,mapping=aes(x=x,y=y,xend=xend,yend=yend))+
geom_text(data=base_4,mapping = aes(x=x,y=y,label=label),size=3)
gp.ped
## Warning: Removed 3 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_errorbarh).
#Forest Plot for comparative ORs of failed first intubation attempt, time for intubation and major complications in neonates and infants
forest.infants<-read.csv2("~/Desktop/SR VLs Ped/Data Analyses/Data Analysis Checked by J&D/Table for Forest Plot Neo & Infants.csv")
forest.infants$dv<-factor(forest.infants$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
forest.infants$id<-factor(forest.infants$id,levels = c ("McCoy straight","Pentax AWS","KingVision non-channelled","Oxiport Miller","Macintosh","Miller","Truview","GlideScope","C-MAC Miller"))
scales_x.infants<-list(`Failed first attempt`=scale_x_continuous(limits = c(-27,27)),
`Major complications`=scale_x_continuous(limits = c(-27,27)),
`Time for intubation`=scale_x_continuous(limits = c(-60,60)))
dat_text.infants<-data.frame(
label=c("NA","NA","NA","NA","NA","NA","NA"),
dv=c("Failed first attempt","Failed first attempt","Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications"),
x=c(-3,-3,-3,-3,-3,-3,-3),
y=c(1,2,3,4,1,2,3),
log.ci.l=forest.Ped$ci.l[1:7],
log.ci.u=forest.Ped$log.ci.u[1:7]
)
dat_text.infants$dv<-factor(dat_text.infants$dv,levels = c("Failed first attempt","Major complications"))
dat_text.macintosh.infants<-data.frame(
label=c("Reference","Reference","Reference"),
dv=c("Failed first attempt","Major complications","Time for intubation"),
x=c(-7,-7,-15),
y=c(5,5,5),
log.ci.l=forest.Ped$ci.l[1:3],
log.ci.u=forest.Ped$log.ci.u[1:3]
)
dat_text.macintosh.infants$dv<-factor(dat_text.macintosh.infants$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
arrow.infants<-data.frame(
dv=c("Major complications","Major complications","Major complications","Major complications","Major complications","Major complications"),
x=c(-27,-27,-27,27,-27,-27),
y=c(4,6,7,7,8,9),
log.ci.l=forest.Ped$ci.l[1:6],
log.ci.u=forest.Ped$log.ci.u[1:6])
base_1.infants<-data.frame(
label=c("Favours Alternative","Log OR","Favours Macintosh","Favours Alternative","Log OR","Favours Macintosh","Favours Alternative","MD","Favours Macintosh"),
dv=c("Failed first attempt", "Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications","Time for intubation","Time for intubation","Time for intubation"),
x=c(-13.5,0,13.5,-13.5,0,13.5,-30,0,30),
y=c(-0.6,-1.5,-0.6,-0.6,-1.5,-0.6,-0.6,-1.5,-0.6),
log.ci.l=forest.Ped$ci.l[1:9],
log.ci.u=forest.Ped$log.ci.u[1:9]
)
base_1.infants$dv<-factor(base_1.infants$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
base_2.infants<-data.frame(
dv=c("Failed first attempt","Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications","Time for intubation","Time for intubation","Time for intubation"),
x=c(-27,0,27,-27,0,27,-60,0,60),
y=c(0,0,0,0,0,0,0,0,0),
xend=c(-27,0,27,-27,0,27,-60,0,60),
yend=c(-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2),
log.ci.l=forest.Ped$ci.l[1:9],
log.ci.u=forest.Ped$log.ci.u[1:9]
)
base_2.infants$dv<-factor(base_2.infants$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
base_3.infants<-data.frame(
dv=c("Failed first attempt","Major complications","Time for intubation"),
x=c(-27,-27,-60),
y=c(0,0,0),
xend=c(27,27,60),
yend=c(0,0,0),
log.ci.l=forest.Ped$ci.l[1:3],
log.ci.u=forest.Ped$log.ci.u[1:3]
)
base_3.infants$dv<-factor(base_3.infants$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
base_4.infants<-data.frame(
label=c("-27","0","27","-27","0","27","-60","0","60"),
dv=c("Failed first attempt","Failed first attempt","Failed first attempt","Major complications","Major complications","Major complications","Time for intubation","Time for intubation","Time for intubation"),
x=c(-27,0,27,-27,0,27,-60,0,60),
y=c(-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6),
log.ci.l=forest.Ped$ci.l[1:9],
log.ci.u=forest.Ped$log.ci.u[1:9]
)
base_4.infants$dv<-factor(base_4.infants$dv,levels = c("Failed first attempt","Major complications","Time for intubation"))
gp.infants<-ggplot(data=forest.infants,aes(y=id,x=log.pe,xmin=log.ci.l,xmax=log.ci.u,ymin=-2))+
geom_point(color="blue",shape="square")+
facet_grid_sc(cols = vars(dv), scales = list(x = scales_x.infants,y="free"))+
geom_errorbarh(aes(xmin=log.ci.l,xmax=log.ci.u),height=0.3,size=0.3)+
geom_segment(x=0,y=0,xend=0,yend=10,lty="dashed")+
ylab("Laryngoscopes")+
theme(axis.title.y.left = element_text(size=13))+
theme(panel.background = element_blank())+
theme(axis.title.x.bottom = element_blank())+
theme(axis.line.x.bottom = element_blank())+
theme(axis.text.x.bottom = element_blank())+
theme(axis.ticks.x.bottom = element_blank())+
geom_text(data=dat_text.infants, mapping=aes(x=x,y=y,label=label),size=2.5)+
geom_text(data=dat_text.macintosh.infants,mapping = aes(x=x,y=y,label=label),size=3.5,fontface="italic")+
geom_text(data=base_1.infants,mapping = aes(x=x,y=y,label=label),size=3)+
geom_segment(data=arrow.infants,mapping = aes(y=y,yend=y,x=x,xend=c(-29.5,-29.5,-29.5,29.5,-29.5,-29.5)),arrow = arrow(length = unit(0.2,"cm"),type = "closed"),size=0.2)+
geom_segment(data = base_2.infants, mapping = aes(x=x,y=y,xend=xend,yend=yend))+
geom_segment(data=base_3.infants,mapping=aes(x=x,y=y,xend=xend,yend=yend))+
geom_text(data=base_4.infants,mapping = aes(x=x,y=y,label=label),size=3)
gp.infants
## Warning: Removed 3 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_errorbarh).