Libraries needed:
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(fragility)
## Warning: package 'fragility' was built under R version 4.3.2
library(expss)
## Warning: package 'expss' was built under R version 4.3.2
## Loading required package: maditr
## Warning: package 'maditr' was built under R version 4.3.2
##
## To aggregate data: take(mtcars, mean_mpg = mean(mpg), by = am)
##
##
## Attaching package: 'maditr'
##
## The following objects are masked from 'package:dplyr':
##
## between, coalesce, first, last
##
## The following object is masked from 'package:purrr':
##
## transpose
##
## The following object is masked from 'package:readr':
##
## cols
##
##
## Attaching package: 'expss'
##
## The following objects are masked from 'package:stringr':
##
## fixed, regex
##
## The following objects are masked from 'package:dplyr':
##
## compute, contains, na_if, recode, vars, where
##
## The following objects are masked from 'package:purrr':
##
## keep, modify, modify_if, when
##
## The following objects are masked from 'package:tidyr':
##
## contains, nest
##
## The following object is masked from 'package:ggplot2':
##
## vars
library(ggplot2)
library(gridExtra)
##
## Attaching package: 'gridExtra'
##
## The following object is masked from 'package:dplyr':
##
## combine
library(grid)
library(table1)
##
## Attaching package: 'table1'
##
## The following objects are masked from 'package:base':
##
## units, units<-
library(compareGroups)
Set-up data:
fi = read.csv("C:\\Thach\\Research projects\\Nick's projects\\FI for fracture efficacy\\Analysis\\fi_analysis.csv")
head(fi)
## id study_ext author year journal country blinding
## 1 a_1 5b Leder_ACTIVExtend 2020 JCEM International Double
## 2 a_2 1 Kendler 2018 Lancet International Double
## 3 a_3 1 Kendler 2018 Lancet International Double
## 4 a_4 1 Kendler 2018 Lancet International Double
## 5 a_5 1 Kendler 2018 Lancet International Double
## 6 a_6 1 Kendler 2018 Lancet International Double
## intervention control women_per timing fi fq pval
## 1 Abaloparatide Alendronate 1 4 4 0.0035971 0.0092162
## 2 Teriparatide Risedronate 1 4 15 0.0142993 0.0002691
## 3 Teriparatide Risedronate 1 4 17 0.0162059 0.0002114
## 4 Teriparatide Risedronate 1 4 12 0.0088235 0.0010345
## 5 Teriparatide Risedronate 1 4 2 0.0019066 0.0208278
## 6 Teriparatide Risedronate 1 2 3 0.0025884 0.0229448
## fx_site outcome e_con n_rand_con e_intv n_rand_intv x95_ci
## 1 Vert_24m 1 16 581 3 558 0.10, 0.87
## 2 Vert_24m 1 64 680 28 680 [0.29,0.68]
## 3 NworsenVert_24m 1 69 680 31 680 [0.31,0.68]
## 4 ClinFx_24m 2 61 680 30 680 [0.32,0.74]
## 5 MVert_24m 1 12 680 2 680 0.04, 0.74
## 6 Vert_12m 1 18 680 35 680 [0.3,0.91]
## p_value pri_endpoint sen_analysis extended notes
## 1 0.0270 0 1 1 post-hoc analysis/extended
## 2 0.0001 1 0 0 6 pt excluded from the analyses
## 3 0.0001 0 0 0
## 4 0.0009 0 0 0
## 5 0.0070 0 0 0
## 6 0.0190 0 0 0
## st_cohort rep_loss rep_withdr
## 1 postm osteoporotic women aged 49+ 9 62
## 2 postm women aged 45+: <=-1.5, 2+ mod/1+ sev vert fx 12 185
## 3 postm women aged 45+: <=-1.5, 2+ mod/1+ sev vert fx 12 185
## 4 postm women aged 45+: <=-1.5, 2+ mod/1+ sev vert fx 12 185
## 5 postm women aged 45+: <=-1.5, 2+ mod/1+ sev vert fx 12 185
## 6 postm women aged 45+: <=-1.5, 2+ mod/1+ sev vert fx 12 185
## rep_death rep_compt n_control n_interven
## 1 68 1861 568 544
## 2 20 1013 533 516
## 3 20 1013 533 516
## 4 20 1013 563 538
## 5 20 1013 533 516
## 6 20 1013 574 585
fi$no_rand = fi$n_rand_con + fi$n_rand_intv
fi$active_sample = fi$n_control + fi$n_interven
fi$n_event = fi$e_con + fi$e_intv
Data management:
table(fi$fx_site)
##
## ClinFx_12m ClinFx_18m
## 2 1
## ClinFx_24m ClinFx_36m
## 3 2
## ClinFx_72m ClinFx_72w
## 1 2
## ClinVert_12m ClinVert_24m
## 1 1
## ClinVert_36m ClinVert_48m
## 6 1
## ClinVert_72m ClinVert_72w
## 1 2
## Forearm_60m ForearmWrist_72m
## 1 1
## Fx_36m Fx_70m
## 2 1
## Hip_18m Hip_24m
## 3 1
## Hip_36m Hip_60m
## 5 1
## Hip_Wrist_Forearm_70m Hip_Wrist_Forearm_Vertebrae_70m
## 1 1
## MajorNonVert_12m MajorNonVert_24m
## 1 2
## MajorNonVert_36m MajorNonVert_60m
## 1 1
## MajVert_24m MNworsenVert_12m
## 2 1
## MNworsenVert_24m MOF_12m
## 1 1
## MOF_18m MOF_24m
## 1 2
## MultiFx_36m MultiVert_24m
## 1 2
## MultiVert_36m MVert_24m
## 1 1
## MVert_36m NmodVert_12m
## 2 1
## NmodVert_24m Nonvert_18m
## 1 3
## NonVert_18m NonVert_24m
## 1 4
## NonVert_36m NonVert_60m
## 6 1
## NonVert_72m NonVertOFx_24m
## 1 2
## NworsenVert_12m NworsenVert_24m
## 2 4
## OFx_12m OFx_24m
## 1 1
## Ofx_48m OFx_72m
## 1 1
## OtherClinFx_48m Vert_12m
## 1 10
## Vert_18m Vert_24m
## 3 13
## Vert_36m Vert_48m
## 10 3
## Vert_48w Vert_60m
## 1 2
## Vert_6m Vert_72m
## 1 1
## Vert_72w
## 2
fi_final = fi %>%
mutate(fx_code1 = case_when(fx_site == "Fx_36m" | fx_site == "Fx_70m" | fx_site == "Fx_72m" | fx_site == "MultiFx_36m" ~ 1,
fx_site == "ClinFx_12m" | fx_site == "ClinFx_18m" | fx_site == "ClinFx_24m" |
fx_site == "ClinFx_36m" | fx_site == "ClinFx_72m" | fx_site == "ClinFx_72w" |
fx_site == "OtherClinFx_48m" ~ 2,
fx_site == "OFx_12m" | fx_site == "OFx_24m" | fx_site == "Ofx_48m" | fx_site == "OFx_72m" ~ 3,
fx_site == "MOF_12m" | fx_site == "MOF_18m" | fx_site == "MOF_24m" ~ 4,
fx_site == "Hip_Wrist_Forearm_70m" | fx_site == "Hip_Wrist_Forearm_Vertebrae_70m" ~ 5,
fx_site == "MajorNonVert_12m" | fx_site == "MajorNonVert_24m" | fx_site == "MajorNonVert_36m" |
fx_site == "MajorNonVert_60m" | fx_site == "Nonvert_18m" | fx_site == "NonVert_18m" |
fx_site == "NonVert_24m" | fx_site == "NonVert_36m" | fx_site == "NonVert_60m" |
fx_site == "NonVert_72m" | fx_site == "NonVertOFx_24m" ~ 6,
fx_site == "MajVert_24m" | fx_site == "MNworsenVert_12m" | fx_site == "MNworsenVert_24m" |
fx_site == "MultiVert_24m" | fx_site == "MultiVert_36m" | fx_site == "MVert_24m" |
fx_site == "MVert_36m" | fx_site == "NmodVert_12m" | fx_site == "NmodVert_24m" |
fx_site == "NworsenVert_12m" | fx_site == "NworsenVert_24m" | fx_site == "Vert_12m" |
fx_site == "Vert_18m" | fx_site == "Vert_24m" | fx_site == "Vert_36m" |
fx_site == "Vert_48m" | fx_site == "Vert_48w" | fx_site == "Vert_60m" | fx_site == "Vert_6m" |
fx_site == "Vert_72m" | fx_site == "Vert_72w" ~ 7,
fx_site == "ClinVert_12m" | fx_site == "ClinVert_24m" | fx_site == "ClinVert_36m" |
fx_site == "ClinVert_48m" | fx_site == "ClinVert_72m" | fx_site == "ClinVert_72w" ~ 8,
fx_site == "Hip_18m" | fx_site == "Hip_24m" | fx_site == "Hip_36m" | fx_site == "Hip_60m" ~ 9,
fx_site == "Forearm_60m" | fx_site == "ForearmWrist_72m" ~ 10))
var_lab(fi_final$fx_code1) = "Fracture sites"
val_lab(fi_final$fx_code1) = num_lab("
1 Any_fx
2 Clin_fx
3 OFx
4 MOF
5 Dif_comb
6 NonVert_fx
7 Vert_fx
8 ClinVert_fx
9 Hip
10 Forearm")
table(fi_final$fx_code1)
##
## Any_fx Clin_fx OFx MOF Dif_comb NonVert_fx
## 4 12 4 4 2 23
## Vert_fx ClinVert_fx Hip Forearm
## 64 12 10 2
fi_final = fi_final %>%
mutate(fx_code2 = case_when(fx_code1 == "1" | fx_code1 == "2" ~ 1,
fx_code1 == "3" | fx_code1 == "4" | fx_code1 == "5" ~ 2,
fx_code1 == "6" ~ 3,
fx_code1 == "7" ~ 4,
fx_code1 == "8" ~ 5,
fx_code1 == "9" ~ 6,
fx_code1 == "10" ~ 7))
var_lab(fi_final$fx_code2) = "Fracture sites"
val_lab(fi_final$fx_code2) = num_lab("
1 Any
2 Osteoporotic
3 Non-Vertebrae
4 Vertebrae
5 Clinical Vertebrae
6 Hip
7 Forearm")
table(fi_final$fx_code2)
##
## Any Osteoporotic Non-Vertebrae Vertebrae
## 16 10 23 64
## Clinical Vertebrae Hip Forearm
## 12 10 2
table(fi$intervention)
##
## Abaloparatide Alendronate Calcium
## 5 2 3
## Calcium + vit D Denosumab Ibandronate daily
## 11 9 4
## Ibandronate intermittent Minodronate Risendronate
## 2 4 5
## Romosozumab Strontium Ranelate Teriparatide
## 28 17 13
## Teriparatide_20 Teriparatide_40 Vit D
## 5 5 3
## Zoledronate
## 21
fi_final = fi_final %>%
mutate(interv_code1 = case_when(intervention == "Alendronate" ~ 1.1,
intervention == "Ibandronate daily" | intervention == "Ibandronate intermittent" ~ 1.2,
intervention == "Risendronate" ~ 1.3,
intervention == "Minodronate" ~ 1.4,
intervention == "Zoledronate" ~ 1.5,
intervention == "Teriparatide" | intervention == "Teriparatide_20" |
intervention == "Teriparatide_40" ~ 2.1,
intervention == "Abaloparatide" ~ 2.2,
intervention == "Romosozumab" ~ 3,
intervention == "Denosumab" ~ 4,
intervention == "Strontium Ranelate" ~ 5,
intervention == "Calcium" | intervention == "Calcium + vit D" | intervention == "Vit D" ~ 6))
var_lab(fi_final$interv_code1) = "Interventions"
val_lab(fi_final$interv_code1) = num_lab("
1.1 Alendronate
1.2 Ibandronate
1.3 Risedronate
1.4 Minodronate
1.5 Zoledronate
2.1 Teriparatide
2.2 Abaloparatide
3 Romosozumab
4 Denosumab
5 Strontium_ranelate
6 Calcium_VitD")
table(fi_final$interv_code1)
##
## Alendronate Ibandronate Risedronate Minodronate
## 2 6 5 4
## Zoledronate Teriparatide Abaloparatide Romosozumab
## 21 23 5 28
## Denosumab Strontium_ranelate Calcium_VitD
## 9 17 17
fi_final = fi_final %>%
mutate(interv_code2 = case_when(intervention == "Alendronate" | intervention == "Ibandronate daily" |
intervention == "Ibandronate intermittent" | intervention == "Risendronate" |
intervention == "Minodronate" | intervention == "Zoledronate" ~ 1,
intervention == "Teriparatide" | intervention == "Teriparatide_20" |
intervention == "Teriparatide_40" | intervention == "Abaloparatide" ~ 2,
intervention == "Romosozumab" ~ 3,
intervention == "Denosumab" ~ 4,
intervention == "Strontium Ranelate" ~ 5,
intervention == "Calcium" | intervention == "Calcium + vit D" | intervention == "Vit D" ~ 6))
var_lab(fi_final$interv_code2) = "Interventions"
val_lab(fi_final$interv_code2) = num_lab("
1 Bisphosphonates
2 PTH analog
3 Romosozumab
4 Denosumab
5 Strontium_ranelate
6 Calcium_VitD")
table(fi_final$interv_code2)
##
## Bisphosphonates PTH analog Romosozumab Denosumab
## 38 28 28 9
## Strontium_ranelate Calcium_VitD
## 17 17
table(fi$journal)
##
## Am J Clin Nutr Arth Rheu BMJ JAMA JBMR
## 1 4 7 11 6
## JCEM JECM Lancet NEJM OI
## 8 5 5 81 9
fi_final = fi_final %>%
mutate(journal_code1 = case_when(journal == "NEJM" ~ 1,
journal == "Lancet" ~ 2,
journal == "BMJ" ~ 3,
journal == "JAMA" ~ 4,
journal == "JBMR" ~ 5,
journal == "JCEM" | journal == "JECM" ~ 6,
journal == "OI" ~ 7,
journal == "Am J Clin Nutr" | journal == "Arth Rheu" ~ 8))
var_lab(fi_final$journal_code1) = "Journal"
val_lab(fi_final$journal_code1) = num_lab("
1 NEJM
2 Lancet
3 BMJ
4 JAMA
5 JBMR
6 JCEM
7 OI
8 Other")
table(fi_final$journal_code1)
##
## NEJM Lancet BMJ JAMA JBMR JCEM OI Other
## 81 5 7 11 6 13 9 5
fi_final = fi_final %>%
mutate(journal_code2 = case_when(journal == "NEJM" ~ 1,
journal == "Lancet" ~ 2,
journal == "BMJ" ~ 3,
journal == "JAMA" ~ 4,
journal == "JBMR" ~ 5,
journal == "JCEM" | journal == "JECM" ~ 6,
journal == "OI" | journal == "Am J Clin Nutr" | journal == "Arth Rheu" ~ 7))
var_lab(fi_final$journal_code2) = "Journal"
val_lab(fi_final$journal_code2) = num_lab("
1 NEJM
2 Lancet
3 BMJ
4 JAMA
5 JBMR
6 JCEM
7 Other")
table(fi_final$journal_code2)
##
## NEJM Lancet BMJ JAMA JBMR JCEM Other
## 81 5 7 11 6 13 14
var_lab(fi_final$outcome) = "Types of fracture outcome"
val_lab(fi_final$outcome) = num_lab("
1 Binary
2 Time-to-event")
var_lab(fi_final$timing) = "Timing of outcome assessed"
val_lab(fi_final$outcome) = num_lab("
1 0-6m
2 >6-12m
3 >12-18m
4 >18-24m
5 >24-36m
6 >36-48m
7 >48-60m
8 >60-72m
9 >72m")
fi_final = fi_final %>%
mutate(sex = case_when(women_per == 0 ~ "Men",
women_per == 1 ~ "Women",
women_per > 0 & women_per < 1 ~ "Both"))
var_lab(fi_final$sex) = "Sex"
table(fi_final$sex)
##
## Both Men Women
## 15 10 112
fi_final = fi_final %>%
mutate(placebo = case_when(control == "Placebo" ~ "Placebo",
control == "Alendronate" | control == "Risedronate" ~ "Active"))
var_lab(fi_final$placebo) = "Placebo"
table(fi_final$placebo)
##
## Active Placebo
## 27 110
All documented analyses (some with significant results from Cox PH might turn out to be statistically non-significant using logistic regression) n= 8 analyses with P>0.05 from logistic regression will be excluded (NO studies are excluded)
fi_screen = frag.studies(e_con, n_control, e_intv, n_interven, data = fi_final, methods = "RR")
fi_screen
## The input dataset contains 137 studies
## Significance level = 0.05
## Null hypothesis: RR = 1
## p-value (two-sided) is based on:
## relative risk
##
## Fragility index (FI) and fragility quotient (FQ):
## Based on relative risk,
## 129 studies yield significance with
## median FI = 9, range 1-171, IQR 4-22 and
## median FQ = 0.5%, range 0.0%-9.7%, IQR 0.2%-0.9%;
## 8 studies yield non-significance with
## median FI = 1, range 1-16, IQR 1-4 and
## median FQ = 0.1%, range 0.0%-1.4%, IQR 0.0%-0.9%;
## overall, among all studies,
## median FI = 8, range 1-171, IQR 4-20 and
## median FQ = 0.5%, range 0.0%-9.7%, IQR 0.2%-0.9%
fi_final$Pval_screen = fi_screen$pval
Only analyses with statistical significant results from logistic regression (binary outcome) will be analysed
fi_sig = subset(fi_final, Pval_screen<= 0.05)
fi_only_sig = frag.studies(e_con, n_control, e_intv, n_interven, data = fi_sig, methods = "RR")
fi_only_sig
## The input dataset contains 129 studies
## Significance level = 0.05
## Null hypothesis: RR = 1
## p-value (two-sided) is based on:
## relative risk
##
## Fragility index (FI) and fragility quotient (FQ):
## Based on relative risk,
## 129 studies yield significance with
## median FI = 9, range 1-171, IQR 4-22 and
## median FQ = 0.5%, range 0.0%-9.7%, IQR 0.2%-0.9%;
## 0 study yields non-significance
## overall, among all studies,
## median FI = 9, range 1-171, IQR 4-22 and
## median FQ = 0.5%, range 0.0%-9.7%, IQR 0.2%-0.9%
plot(fi_only_sig, bar = FALSE, freq = FALSE)
fi_sig$FI_final = fi_only_sig$FI
fi_sig$FQ_final = fi_only_sig$FQ
fi_sig$Pval_final = fi_only_sig$pval
n= 129 analyses from all 23 studies (+ 6 extended studies)
fi_sig$missing_fi[fi_sig$rep_loss > fi_sig$FI_final] = 1
fi_sig$missing_fi[fi_sig$rep_loss <= fi_sig$FI_final] = 0
is.na(fi_sig$rep_loss)
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [49] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [61] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
## [73] FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [85] FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
## [97] TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE
## [109] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE
## [121] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
fi_sig$missing_fi[fi_sig$rep_loss == NA] = NA
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Overall (N=129) |
|
---|---|
no_rand | |
Mean (SD) | 3090 (2360) |
Median [Q1, Q3] | 1960 [1360, 4090] |
Median [min, max] | 1960 [450, 7870] |
active_sample | |
Mean (SD) | 2700 (2140) |
Median [Q1, Q3] | 1860 [1130, 3700] |
Median [min, max] | 1860 [339, 7810] |
n_event | |
Mean (SD) | 174 (176) |
Median [Q1, Q3] | 101 [51.0, 246] |
Median [min, max] | 101 [10.0, 764] |
FI_final | |
Mean (SD) | 17.5 (24.8) |
Median [Q1, Q3] | 9.00 [4.00, 22.0] |
Median [min, max] | 9.00 [1.00, 171] |
FQ_final | |
Mean (SD) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | |
0 | 10 (7.8%) |
1 | 73 (56.6%) |
Missing | 46 (35.7%) |
Relationship between sample size/active sample/no. events and FI
p = ggplot(data = fi_sig, aes(x = no_rand, y = FI_final))
p1 = p + geom_point() + geom_smooth() + labs(x = "Number of participants at randomisation", y = "Fragility index") + theme_bw()
p0 = ggplot(data = fi_sig, aes(x = active_sample, y = FI_final))
p2 = p0 + geom_point() + geom_smooth() + labs(x = "Number of participants included in the analyses", y = "Fragility index") + theme_bw()
p.0 = ggplot(data = fi_sig, aes(x = n_event, y = FI_final))
p3 = p.0 + geom_point() + geom_smooth() + labs(x = "Number of participants with fracture events", y = "Fragility index") + theme_bw()
#grid.arrange(p1, p2, p3, nrow = 1)
grid.arrange(p1, p3, nrow = 1, top = textGrob("Relationship between Number of participants and Fragility index", gp = gpar(fontsize = 20, font = 3)))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code1), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any_fx (N=3) |
Clin_fx (N=12) |
OFx (N=4) |
MOF (N=4) |
Dif_comb (N=1) |
NonVert_fx (N=19) |
Vert_fx (N=63) |
ClinVert_fx (N=12) |
Hip (N=9) |
Forearm (N=2) |
Overall (N=129) |
|
---|---|---|---|---|---|---|---|---|---|---|---|
no_rand | |||||||||||
Mean (SD) | 1850 (423) | 3580 (2630) | 2780 (1580) | 5020 (2680) | NA | 3930 (2380) | 2690 (2320) | 2820 (2490) | 3950 (2300) | 1740 (374) | 3090 (2360) |
Median [Q1, Q3] | 1770 [1620, 2030] | 3110 [1570, 5120] | 3050 [1730, 4090] | 5640 [3480, 7180] | 2690 [2690, 2690] | 4090 [1810, 5090] | 1630 [1200, 4090] | 1960 [1650, 2620] | 3270 [2300, 4090] | 1740 [1600, 1870] | 1960 [1360, 4090] |
Median [min, max] | 1770 [1470, 2300] | 3110 [549, 7740] | 3050 [930, 4090] | 5640 [1650, 7180] | 2690 [2690, 2690] | 4090 [450, 7870] | 1630 [549, 7870] | 1960 [549, 7870] | 3270 [1770, 7870] | 1740 [1470, 2000] | 1960 [450, 7870] |
active_sample | |||||||||||
Mean (SD) | 1830 (439) | 3100 (2480) | 2670 (1490) | 4320 (2410) | NA | 3450 (2200) | 2370 (2100) | 2370 (2380) | 3260 (1920) | 1160 (810) | 2700 (2140) |
Median [Q1, Q3] | 1770 [1600, 2030] | 2820 [946, 4930] | 2890 [1690, 3870] | 4820 [2970, 6170] | 2690 [2690, 2690] | 3560 [1700, 4940] | 1350 [1050, 3520] | 1650 [975, 2270] | 2380 [1980, 3320] | 1160 [876, 1450] | 1860 [1130, 3700] |
Median [min, max] | 1770 [1430, 2300] | 2820 [426, 6690] | 2890 [930, 3980] | 4820 [1270, 6380] | 2690 [2690, 2690] | 3560 [389, 6670] | 1350 [426, 7390] | 1650 [339, 7810] | 2380 [1770, 6600] | 1160 [590, 1740] | 1860 [339, 7810] |
n_event | |||||||||||
Mean (SD) | 354 (290) | 255 (217) | 334 (251) | 170 (135) | NA | 295 (211) | 125 (145) | 86.4 (62.5) | 158 (86.9) | 111 (16.3) | 174 (176) |
Median [Q1, Q3] | 475 [249, 519] | 210 [87.3, 385] | 318 [245, 407] | 140 [86.8, 222] | 147 [147, 147] | 249 [116, 433] | 73.0 [36.5, 125] | 63.0 [57.0, 108] | 140 [106, 190] | 111 [105, 116] | 101 [51.0, 246] |
Median [min, max] | 475 [23.0, 563] | 210 [31.0, 764] | 318 [44.0, 658] | 140 [44.0, 355] | 147 [147, 147] | 249 [37.0, 680] | 73.0 [10.0, 696] | 63.0 [19.0, 207] | 140 [58.0, 315] | 111 [99.0, 122] | 101 [10.0, 764] |
FI_final | |||||||||||
Mean (SD) | 16.7 (11.9) | 18.0 (24.4) | 32.3 (26.2) | 13.8 (9.14) | NA | 10.9 (11.5) | 21.8 (31.2) | 12.3 (14.1) | 6.67 (5.34) | 5.50 (4.95) | 17.5 (24.8) |
Median [Q1, Q3] | 22.0 [12.5, 23.5] | 7.50 [5.00, 17.8] | 31.5 [22.8, 41.0] | 12.0 [8.00, 17.8] | 4.00 [4.00, 4.00] | 5.00 [2.00, 17.5] | 11.0 [4.00, 23.5] | 6.50 [3.50, 13.5] | 5.00 [2.00, 11.0] | 5.50 [3.75, 7.25] | 9.00 [4.00, 22.0] |
Median [min, max] | 22.0 [3.00, 25.0] | 7.50 [4.00, 89.0] | 31.5 [1.00, 65.0] | 12.0 [5.00, 26.0] | 4.00 [4.00, 4.00] | 5.00 [1.00, 43.0] | 11.0 [1.00, 171] | 6.50 [1.00, 42.0] | 5.00 [1.00, 16.0] | 5.50 [2.00, 9.00] | 9.00 [1.00, 171] |
FQ_final | |||||||||||
Mean (SD) | 0.00847 (0.00558) | 0.00710 (0.00471) | 0.0106 (0.00776) | 0.00443 (0.00331) | NA | 0.00340 (0.00299) | 0.0115 (0.0146) | 0.00517 (0.00325) | 0.00254 (0.00247) | 0.00429 (0.00127) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.0109 [0.00647, 0.0117] | 0.00731 [0.00275, 0.00975] | 0.0122 [0.00592, 0.0169] | 0.00478 [0.00204, 0.00717] | 0.00149 [0.00149, 0.00149] | 0.00255 [0.00108, 0.00454] | 0.00666 [0.00302, 0.0153] | 0.00456 [0.00305, 0.00542] | 0.00150 [0.00101, 0.00337] | 0.00429 [0.00384, 0.00474] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.0109 [0.00209, 0.0125] | 0.00731 [0.00124, 0.0146] | 0.0122 [0.00108, 0.0169] | 0.00478 [0.000783, 0.00736] | 0.00149 [0.00149, 0.00149] | 0.00255 [0.000203, 0.0105] | 0.00666 [0.000151, 0.0966] | 0.00456 [0.00205, 0.0125] | 0.00150 [0.000303, 0.00695] | 0.00429 [0.00339, 0.00519] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | |||||||||||
0 | 0 (0%) | 1 (8.3%) | 2 (50.0%) | 0 (0%) | 0 (0%) | 1 (5.3%) | 5 (7.9%) | 0 (0%) | 0 (0%) | 1 (50.0%) | 10 (7.8%) |
1 | 1 (33.3%) | 8 (66.7%) | 2 (50.0%) | 4 (100%) | 1 (100%) | 11 (57.9%) | 35 (55.6%) | 4 (33.3%) | 6 (66.7%) | 1 (50.0%) | 73 (56.6%) |
Missing | 2 (66.7%) | 3 (25.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 7 (36.8%) | 23 (36.5%) | 8 (66.7%) | 3 (33.3%) | 0 (0%) | 46 (35.7%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code2), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any (N=15) |
Osteoporotic (N=9) |
Non-Vertebrae (N=19) |
Vertebrae (N=63) |
Clinical Vertebrae (N=12) |
Hip (N=9) |
Forearm (N=2) |
Overall (N=129) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | 3230 (2440) | 3770 (2250) | 3930 (2380) | 2690 (2320) | 2820 (2490) | 3950 (2300) | 1740 (374) | 3090 (2360) |
Median [Q1, Q3] | 2130 [1560, 4260] | 4090 [2000, 4090] | 4090 [1810, 5090] | 1630 [1200, 4090] | 1960 [1650, 2620] | 3270 [2300, 4090] | 1740 [1600, 1870] | 1960 [1360, 4090] |
Median [min, max] | 2130 [549, 7740] | 4090 [930, 7180] | 4090 [450, 7870] | 1630 [549, 7870] | 1960 [549, 7870] | 3270 [1770, 7870] | 1740 [1470, 2000] | 1960 [450, 7870] |
active_sample | ||||||||
Mean (SD) | 2850 (2270) | 3410 (1940) | 3450 (2200) | 2370 (2100) | 2370 (2380) | 3260 (1920) | 1160 (810) | 2700 (2140) |
Median [Q1, Q3] | 2010 [1190, 4070] | 3530 [1950, 3980] | 3560 [1700, 4940] | 1350 [1050, 3520] | 1650 [975, 2270] | 2380 [1980, 3320] | 1160 [876, 1450] | 1860 [1130, 3700] |
Median [min, max] | 2010 [426, 6690] | 3530 [930, 6380] | 3560 [389, 6670] | 1350 [426, 7390] | 1650 [339, 7810] | 2380 [1770, 6600] | 1160 [590, 1740] | 1860 [339, 7810] |
n_event | ||||||||
Mean (SD) | 275 (225) | 240 (196) | 295 (211) | 125 (145) | 86.4 (62.5) | 158 (86.9) | 111 (16.3) | 174 (176) |
Median [Q1, Q3] | 231 [83.5, 437] | 178 [101, 323] | 249 [116, 433] | 73.0 [36.5, 125] | 63.0 [57.0, 108] | 140 [106, 190] | 111 [105, 116] | 101 [51.0, 246] |
Median [min, max] | 231 [23.0, 764] | 178 [44.0, 658] | 249 [37.0, 680] | 73.0 [10.0, 696] | 63.0 [19.0, 207] | 140 [58.0, 315] | 111 [99.0, 122] | 101 [10.0, 764] |
FI_final | ||||||||
Mean (SD) | 17.7 (22.1) | 20.9 (20.3) | 10.9 (11.5) | 21.8 (31.2) | 12.3 (14.1) | 6.67 (5.34) | 5.50 (4.95) | 17.5 (24.8) |
Median [Q1, Q3] | 8.00 [5.00, 23.5] | 15.0 [5.00, 30.0] | 5.00 [2.00, 17.5] | 11.0 [4.00, 23.5] | 6.50 [3.50, 13.5] | 5.00 [2.00, 11.0] | 5.50 [3.75, 7.25] | 9.00 [4.00, 22.0] |
Median [min, max] | 8.00 [3.00, 89.0] | 15.0 [1.00, 65.0] | 5.00 [1.00, 43.0] | 11.0 [1.00, 171] | 6.50 [1.00, 42.0] | 5.00 [1.00, 16.0] | 5.50 [2.00, 9.00] | 9.00 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | 0.00737 (0.00471) | 0.00685 (0.00635) | 0.00340 (0.00299) | 0.0115 (0.0146) | 0.00517 (0.00325) | 0.00254 (0.00247) | 0.00429 (0.00127) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00748 [0.00261, 0.0113] | 0.00711 [0.00149, 0.00754] | 0.00255 [0.00108, 0.00454] | 0.00666 [0.00302, 0.0153] | 0.00456 [0.00305, 0.00542] | 0.00150 [0.00101, 0.00337] | 0.00429 [0.00384, 0.00474] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00748 [0.00124, 0.0146] | 0.00711 [0.000783, 0.0169] | 0.00255 [0.000203, 0.0105] | 0.00666 [0.000151, 0.0966] | 0.00456 [0.00205, 0.0125] | 0.00150 [0.000303, 0.00695] | 0.00429 [0.00339, 0.00519] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||
0 | 1 (6.7%) | 2 (22.2%) | 1 (5.3%) | 5 (7.9%) | 0 (0%) | 0 (0%) | 1 (50.0%) | 10 (7.8%) |
1 | 9 (60.0%) | 7 (77.8%) | 11 (57.9%) | 35 (55.6%) | 4 (33.3%) | 6 (66.7%) | 1 (50.0%) | 73 (56.6%) |
Missing | 5 (33.3%) | 0 (0%) | 7 (36.8%) | 23 (36.5%) | 8 (66.7%) | 3 (33.3%) | 0 (0%) | 46 (35.7%) |
kruskal.test(FI_final ~ fx_code2, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by fx_code2
## Kruskal-Wallis chi-squared = 8.475, df = 6, p-value = 0.2053
kruskal.test(FQ_final ~ fx_code2, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by fx_code2
## Kruskal-Wallis chi-squared = 19.86, df = 6, p-value = 0.002932
Box plots
p1 = ggplot(data = fi_sig, aes(y = FI_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Fracture sites", y = "Fragility index")
p2 = ggplot(data = fi_sig, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Fracture sites", y = "Fragility quotient")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by fracture sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code1), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Alendronate (N=2) |
Ibandronate (N=6) |
Risedronate (N=5) |
Minodronate (N=3) |
Zoledronate (N=20) |
Teriparatide (N=22) |
Abaloparatide (N=4) |
Romosozumab (N=28) |
Denosumab (N=9) |
Strontium_ranelate (N=15) |
Calcium_VitD (N=15) |
Overall (N=129) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
no_rand | ||||||||||||
Mean (SD) | 4430 (0) | 1960 (0) | 1490 (308) | 704 (0) | 3490 (2870) | 1010 (342) | 1520 (253) | 5420 (1560) | 5020 (3370) | 2610 (1570) | 2320 (965) | 3090 (2360) |
Median [Q1, Q3] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 2000 [1200, 7740] | 1090 [578, 1290] | 1650 [1520, 1650] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1650, 3750] | 2300 [1620, 3270] | 1960 [1360, 4090] |
Median [min, max] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [939, 1630] | 704 [704, 704] | 2000 [1200, 7740] | 1090 [549, 1640] | 1650 [1140, 1650] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1220, 5090] | 2300 [450, 3270] | 1960 [450, 7870] |
active_sample | ||||||||||||
Mean (SD) | 4280 (211) | 1950 (0) | 1270 (317) | 575 (27.7) | 2810 (2350) | 810 (288) | 1260 (118) | 4910 (1500) | 4600 (3080) | 2330 (1490) | 1810 (830) | 2700 (2140) |
Median [Q1, Q3] | 4280 [4210, 4360] | 1950 [1950, 1950] | 1330 [1280, 1370] | 582 [563, 590] | 1860 [1130, 5680] | 882 [457, 1010] | 1270 [1230, 1310] | 4040 [3640, 6640] | 6600 [1350, 7390] | 1440 [1390, 3030] | 1770 [1350, 2380] | 1860 [1130, 3700] |
Median [min, max] | 4280 [4130, 4430] | 1950 [1950, 1950] | 1330 [759, 1630] | 582 [544, 598] | 1860 [339, 6550] | 882 [426, 1430] | 1270 [1110, 1400] | 4040 [3240, 6910] | 6600 [1350, 7810] | 1440 [1150, 4940] | 1770 [389, 2790] | 1860 [339, 7810] |
n_event | ||||||||||||
Mean (SD) | 265 (204) | 81.5 (23.1) | 86.0 (39.3) | 79.3 (20.5) | 189 (219) | 50.3 (26.7) | 43.3 (24.1) | 209 (146) | 140 (180) | 347 (221) | 223 (163) | 174 (176) |
Median [Q1, Q3] | 265 [193, 337] | 70.5 [64.5, 101] | 68.0 [65.0, 85.0] | 79.0 [69.0, 89.5] | 86.0 [38.5, 265] | 44.0 [31.8, 75.5] | 39.0 [30.3, 52.0] | 173 [106, 272] | 69.0 [29.0, 121] | 330 [166, 504] | 176 [96.0, 335] | 101 [51.0, 246] |
Median [min, max] | 265 [121, 409] | 70.5 [63.0, 112] | 68.0 [58.0, 154] | 79.0 [59.0, 100] | 86.0 [13.0, 764] | 44.0 [14.0, 100] | 39.0 [19.0, 76.0] | 173 [10.0, 658] | 69.0 [15.0, 531] | 330 [66.0, 696] | 176 [37.0, 563] | 101 [10.0, 764] |
FI_final | ||||||||||||
Mean (SD) | 10.0 (4.24) | 8.50 (4.68) | 5.80 (4.87) | 10.0 (9.17) | 25.5 (40.6) | 9.32 (7.65) | 7.50 (4.36) | 22.7 (19.2) | 25.1 (43.7) | 25.1 (29.2) | 9.67 (9.01) | 17.5 (24.8) |
Median [Q1, Q3] | 10.0 [8.50, 11.5] | 7.50 [4.50, 12.0] | 4.00 [2.00, 11.0] | 8.00 [5.00, 14.0] | 9.50 [3.50, 34.3] | 7.00 [2.25, 14.5] | 6.50 [4.00, 10.0] | 19.5 [7.00, 31.5] | 4.00 [3.00, 17.0] | 18.0 [4.50, 37.0] | 6.00 [2.00, 16.5] | 9.00 [4.00, 22.0] |
Median [min, max] | 10.0 [7.00, 13.0] | 7.50 [4.00, 15.0] | 4.00 [1.00, 11.0] | 8.00 [2.00, 20.0] | 9.50 [1.00, 171] | 7.00 [1.00, 25.0] | 6.50 [4.00, 13.0] | 19.5 [1.00, 77.0] | 4.00 [2.00, 137] | 18.0 [1.00, 111] | 6.00 [1.00, 25.0] | 9.00 [1.00, 171] |
FQ_final | ||||||||||||
Mean (SD) | 0.00236 (0.00111) | 0.00435 (0.00240) | 0.00475 (0.00356) | 0.0180 (0.0171) | 0.00720 (0.00710) | 0.0120 (0.00941) | 0.00578 (0.00293) | 0.00501 (0.00481) | 0.00432 (0.00546) | 0.0171 (0.0246) | 0.00508 (0.00378) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00236 [0.00197, 0.00275] | 0.00384 [0.00231, 0.00615] | 0.00527 [0.00156, 0.00801] | 0.0137 [0.00855, 0.0253] | 0.00535 [0.00268, 0.00800] | 0.00897 [0.00450, 0.0185] | 0.00535 [0.00348, 0.00765] | 0.00354 [0.00147, 0.00629] | 0.00255 [0.00222, 0.00296] | 0.0104 [0.00189, 0.0187] | 0.00353 [0.00243, 0.00659] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00236 [0.00158, 0.00314] | 0.00384 [0.00205, 0.00768] | 0.00527 [0.000615, 0.00828] | 0.0137 [0.00334, 0.0368] | 0.00535 [0.000887, 0.0301] | 0.00897 [0.00114, 0.0288] | 0.00535 [0.00314, 0.00928] | 0.00354 [0.000151, 0.0188] | 0.00255 [0.000303, 0.0185] | 0.0104 [0.000203, 0.0966] | 0.00353 [0.000567, 0.0125] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||||||
0 | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 5 (25.0%) | 2 (9.1%) | 0 (0%) | 2 (7.1%) | 0 (0%) | 1 (6.7%) | 0 (0%) | 10 (7.8%) |
1 | 0 (0%) | 0 (0%) | 4 (80.0%) | 3 (100%) | 15 (75.0%) | 4 (18.2%) | 4 (100%) | 26 (92.9%) | 4 (44.4%) | 3 (20.0%) | 10 (66.7%) | 73 (56.6%) |
Missing | 2 (100%) | 6 (100%) | 1 (20.0%) | 0 (0%) | 0 (0%) | 16 (72.7%) | 0 (0%) | 0 (0%) | 5 (55.6%) | 11 (73.3%) | 5 (33.3%) | 46 (35.7%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code2), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Bisphosphonates (N=36) |
PTH analog (N=26) |
Romosozumab (N=28) |
Denosumab (N=9) |
Strontium_ranelate (N=15) |
Calcium_VitD (N=15) |
Overall (N=129) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 2780 (2380) | 1090 (375) | 5420 (1560) | 5020 (3370) | 2610 (1570) | 2320 (965) | 3090 (2360) |
Median [Q1, Q3] | 1960 [1200, 2130] | 1100 [705, 1360] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1650, 3750] | 2300 [1620, 3270] | 1960 [1360, 4090] |
Median [min, max] | 1960 [704, 7740] | 1100 [549, 1650] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1220, 5090] | 2300 [450, 3270] | 1960 [450, 7870] |
active_sample | |||||||
Mean (SD) | 2350 (1950) | 880 (315) | 4910 (1500) | 4600 (3080) | 2330 (1490) | 1810 (830) | 2700 (2140) |
Median [Q1, Q3] | 1860 [1130, 1970] | 887 [567, 1090] | 4040 [3640, 6640] | 6600 [1350, 7390] | 1440 [1390, 3030] | 1770 [1350, 2380] | 1860 [1130, 3700] |
Median [min, max] | 1860 [339, 6550] | 887 [426, 1430] | 4040 [3240, 6910] | 6600 [1350, 7810] | 1440 [1150, 4940] | 1770 [389, 2790] | 1860 [339, 7810] |
n_event | |||||||
Mean (SD) | 152 (176) | 49.2 (26.0) | 209 (146) | 140 (180) | 347 (221) | 223 (163) | 174 (176) |
Median [Q1, Q3] | 76.0 [59.8, 144] | 44.0 [31.8, 70.3] | 173 [106, 272] | 69.0 [29.0, 121] | 330 [166, 504] | 176 [96.0, 335] | 101 [51.0, 246] |
Median [min, max] | 76.0 [13.0, 764] | 44.0 [14.0, 100] | 173 [10.0, 658] | 69.0 [15.0, 531] | 330 [66.0, 696] | 176 [37.0, 563] | 101 [10.0, 764] |
FI_final | |||||||
Mean (SD) | 17.8 (31.4) | 9.04 (7.20) | 22.7 (19.2) | 25.1 (43.7) | 25.1 (29.2) | 9.67 (9.01) | 17.5 (24.8) |
Median [Q1, Q3] | 8.50 [4.00, 15.0] | 7.00 [3.25, 13.0] | 19.5 [7.00, 31.5] | 4.00 [3.00, 17.0] | 18.0 [4.50, 37.0] | 6.00 [2.00, 16.5] | 9.00 [4.00, 22.0] |
Median [min, max] | 8.50 [1.00, 171] | 7.00 [1.00, 25.0] | 19.5 [1.00, 77.0] | 4.00 [2.00, 137] | 18.0 [1.00, 111] | 6.00 [1.00, 25.0] | 9.00 [1.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.00701 (0.00774) | 0.0111 (0.00898) | 0.00501 (0.00481) | 0.00432 (0.00546) | 0.0171 (0.0246) | 0.00508 (0.00378) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00523 [0.00205, 0.00776] | 0.00864 [0.00381, 0.0157] | 0.00354 [0.00147, 0.00629] | 0.00255 [0.00222, 0.00296] | 0.0104 [0.00189, 0.0187] | 0.00353 [0.00243, 0.00659] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00523 [0.000615, 0.0368] | 0.00864 [0.00114, 0.0288] | 0.00354 [0.000151, 0.0188] | 0.00255 [0.000303, 0.0185] | 0.0104 [0.000203, 0.0966] | 0.00353 [0.000567, 0.0125] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 5 (13.9%) | 2 (7.7%) | 2 (7.1%) | 0 (0%) | 1 (6.7%) | 0 (0%) | 10 (7.8%) |
1 | 22 (61.1%) | 8 (30.8%) | 26 (92.9%) | 4 (44.4%) | 3 (20.0%) | 10 (66.7%) | 73 (56.6%) |
Missing | 9 (25.0%) | 16 (61.5%) | 0 (0%) | 5 (55.6%) | 11 (73.3%) | 5 (33.3%) | 46 (35.7%) |
kruskal.test(FI_final ~ interv_code2, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by interv_code2
## Kruskal-Wallis chi-squared = 12.27, df = 5, p-value = 0.03126
kruskal.test(FQ_final ~ interv_code2, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by interv_code2
## Kruskal-Wallis chi-squared = 13.403, df = 5, p-value = 0.01988
Box plots
p1 = ggplot(data = fi_sig, aes(y = FI_final, x = as.factor(interv_code2), fill = as.factor(interv_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Pharmacological interventions", y = "Fragility index")
p2 = ggplot(data = fi_sig, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Pharmacological interventions", y = "Fragility quotine")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by intervention sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(timing), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
2 (N=21) |
3 (N=17) |
4 (N=39) |
5 (N=34) |
6 (N=6) |
7 (N=5) |
8 (N=7) |
Overall (N=129) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | 3500 (2440) | 1780 (1210) | 3040 (2320) | 3820 (2870) | 2340 (1650) | 3640 (1980) | 2100 (259) | 3090 (2360) |
Median [Q1, Q3] | 4090 [1470, 4090] | 1650 [578, 3270] | 1470 [1120, 4090] | 2050 [1650, 7740] | 1650 [1120, 3740] | 5090 [1470, 5090] | 2000 [2000, 2000] | 1960 [1360, 4090] |
Median [min, max] | 4090 [578, 7180] | 1650 [549, 3270] | 1470 [704, 7180] | 2050 [450, 7870] | 1650 [930, 4430] | 5090 [1470, 5090] | 2000 [2000, 2690] | 1960 [450, 7870] |
active_sample | ||||||||
Mean (SD) | 3170 (2280) | 1320 (872) | 2710 (2150) | 3310 (2490) | 2090 (1710) | 2930 (2210) | 2000 (315) | 2700 (2140) |
Median [Q1, Q3] | 3400 [1280, 4090] | 1280 [451, 1770] | 1350 [971, 3660] | 1950 [1440, 6240] | 1150 [985, 3390] | 3650 [590, 4940] | 1890 [1860, 1980] | 1860 [1130, 3700] |
Median [min, max] | 3400 [476, 6910] | 1280 [426, 2790] | 1350 [544, 6690] | 1950 [339, 7810] | 1150 [759, 4430] | 3650 [567, 4940] | 1890 [1740, 2690] | 1860 [339, 7810] |
n_event | ||||||||
Mean (SD) | 100 (78.7) | 105 (112) | 141 (147) | 239 (198) | 257 (252) | 418 (301) | 186 (127) | 174 (176) |
Median [Q1, Q3] | 75.0 [53.0, 147] | 48.0 [34.0, 163] | 86.0 [41.5, 200] | 147 [82.8, 346] | 163 [81.3, 358] | 537 [122, 671] | 147 [85.5, 281] | 101 [51.0, 246] |
Median [min, max] | 75.0 [10.0, 323] | 48.0 [19.0, 375] | 86.0 [14.0, 658] | 147 [23.0, 764] | 163 [44.0, 696] | 537 [70.0, 691] | 147 [48.0, 377] | 101 [10.0, 764] |
FI_final | ||||||||
Mean (SD) | 9.19 (8.95) | 8.35 (6.26) | 18.0 (17.9) | 27.5 (37.8) | 24.7 (42.5) | 8.20 (11.7) | 13.6 (9.85) | 17.5 (24.8) |
Median [Q1, Q3] | 5.00 [3.00, 11.0] | 8.00 [4.00, 11.0] | 14.0 [4.50, 24.0] | 15.5 [4.00, 38.8] | 9.50 [4.75, 12.8] | 3.00 [2.00, 5.00] | 10.0 [7.50, 16.5] | 9.00 [4.00, 22.0] |
Median [min, max] | 5.00 [1.00, 30.0] | 8.00 [1.00, 25.0] | 14.0 [1.00, 77.0] | 15.5 [1.00, 171] | 9.50 [1.00, 111] | 3.00 [2.00, 29.0] | 10.0 [4.00, 33.0] | 9.00 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | 0.00366 (0.00333) | 0.00885 (0.00788) | 0.00857 (0.00878) | 0.00902 (0.00918) | 0.0197 (0.0378) | 0.00330 (0.00292) | 0.00703 (0.00510) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00259 [0.00136, 0.00440] | 0.00711 [0.00340, 0.0105] | 0.00532 [0.00271, 0.0123] | 0.00656 [0.00236, 0.0125] | 0.00421 [0.00197, 0.00915] | 0.00339 [0.00101, 0.00353] | 0.00537 [0.00421, 0.00851] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00259 [0.000151, 0.0137] | 0.00711 [0.000567, 0.0288] | 0.00532 [0.000554, 0.0368] | 0.00656 [0.000203, 0.0361] | 0.00421 [0.00108, 0.0966] | 0.00339 [0.000608, 0.00795] | 0.00537 [0.00149, 0.0169] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||
0 | 1 (4.8%) | 0 (0%) | 3 (7.7%) | 1 (2.9%) | 0 (0%) | 0 (0%) | 5 (71.4%) | 10 (7.8%) |
1 | 17 (81.0%) | 11 (64.7%) | 25 (64.1%) | 15 (44.1%) | 1 (16.7%) | 2 (40.0%) | 2 (28.6%) | 73 (56.6%) |
Missing | 3 (14.3%) | 6 (35.3%) | 11 (28.2%) | 18 (52.9%) | 5 (83.3%) | 3 (60.0%) | 0 (0%) | 46 (35.7%) |
kruskal.test(FI_final ~ timing, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by timing
## Kruskal-Wallis chi-squared = 9.2682, df = 6, p-value = 0.159
kruskal.test(FQ_final ~ timing, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by timing
## Kruskal-Wallis chi-squared = 10.638, df = 6, p-value = 0.1002
Box plots
p1 = ggplot(data = fi_sig, aes(y = FI_final, x = as.factor(timing), fill = as.factor(timing))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(journal_code2), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
NEJM (N=79) |
Lancet (N=5) |
BMJ (N=5) |
JAMA (N=10) |
JBMR (N=6) |
JCEM (N=12) |
Other (N=12) |
Overall (N=129) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | 3880 (2550) | 1360 (0) | 2160 (397) | 2190 (1180) | 1960 (0) | 1320 (1340) | 2120 (1820) | 3090 (2360) |
Median [Q1, Q3] | 3270 [1560, 7180] | 1360 [1360, 1360] | 2300 [1770, 2300] | 1640 [1630, 1650] | 1960 [1960, 1960] | 578 [571, 1410] | 1470 [874, 2510] | 1960 [1360, 4090] |
Median [min, max] | 3270 [450, 7870] | 1360 [1360, 1360] | 2300 [1770, 2690] | 1640 [1630, 4430] | 1960 [1960, 1960] | 578 [549, 5090] | 1470 [704, 5090] | 1960 [450, 7870] |
active_sample | ||||||||
Mean (SD) | 3360 (2330) | 1080 (48.9) | 2160 (397) | 1950 (1230) | 1950 (0) | 1230 (1350) | 1700 (1740) | 2700 (2140) |
Median [Q1, Q3] | 2790 [1350, 6240] | 1050 [1050, 1100] | 2300 [1770, 2300] | 1390 [1290, 1580] | 1950 [1950, 1950] | 464 [445, 1410] | 845 [588, 1770] | 1860 [1130, 3700] |
Median [min, max] | 2790 [339, 7810] | 1050 [1050, 1160] | 2300 [1770, 2690] | 1390 [1270, 4430] | 1950 [1950, 1950] | 464 [426, 4930] | 845 [544, 4940] | 1860 [339, 7810] |
n_event | ||||||||
Mean (SD) | 177 (165) | 70.0 (36.2) | 352 (167) | 108 (112) | 81.5 (23.1) | 118 (151) | 278 (279) | 174 (176) |
Median [Q1, Q3] | 117 [54.5, 248] | 91.0 [53.0, 92.0] | 315 [262, 475] | 70.5 [47.5, 112] | 70.5 [64.5, 101] | 38.0 [28.5, 145] | 111 [69.5, 571] | 101 [51.0, 246] |
Median [min, max] | 117 [10.0, 764] | 91.0 [14.0, 100] | 315 [147, 563] | 70.5 [34.0, 409] | 70.5 [63.0, 112] | 38.0 [19.0, 471] | 111 [44.0, 696] | 101 [10.0, 764] |
FI_final | ||||||||
Mean (SD) | 21.3 (28.3) | 9.40 (6.80) | 15.6 (8.44) | 8.20 (4.47) | 8.50 (4.68) | 9.67 (12.8) | 16.6 (30.9) | 17.5 (24.8) |
Median [Q1, Q3] | 12.0 [4.50, 26.0] | 10.0 [3.00, 15.0] | 16.0 [11.0, 22.0] | 10.0 [4.75, 11.0] | 7.50 [4.50, 12.0] | 4.00 [2.00, 11.5] | 4.50 [2.00, 14.0] | 9.00 [4.00, 22.0] |
Median [min, max] | 12.0 [1.00, 171] | 10.0 [2.00, 17.0] | 16.0 [4.00, 25.0] | 10.0 [1.00, 13.0] | 7.50 [4.00, 15.0] | 4.00 [1.00, 45.0] | 4.50 [1.00, 111] | 9.00 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | 0.00727 (0.00800) | 0.00882 (0.00654) | 0.00760 (0.00430) | 0.00504 (0.00332) | 0.00435 (0.00240) | 0.0113 (0.00964) | 0.0153 (0.0275) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00393 [0.00226, 0.00831] | 0.00908 [0.00259, 0.0143] | 0.00695 [0.00623, 0.0109] | 0.00513 [0.00197, 0.00793] | 0.00384 [0.00231, 0.00615] | 0.00864 [0.00423, 0.0187] | 0.00440 [0.00278, 0.0113] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00393 [0.000151, 0.0361] | 0.00908 [0.00191, 0.0162] | 0.00695 [0.00149, 0.0125] | 0.00513 [0.000615, 0.00928] | 0.00384 [0.00205, 0.00768] | 0.00864 [0.000203, 0.0288] | 0.00440 [0.000608, 0.0966] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||
0 | 7 (8.9%) | 2 (40.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 1 (8.3%) | 0 (0%) | 10 (7.8%) |
1 | 51 (64.6%) | 3 (60.0%) | 1 (20.0%) | 8 (80.0%) | 0 (0%) | 4 (33.3%) | 6 (50.0%) | 73 (56.6%) |
Missing | 21 (26.6%) | 0 (0%) | 4 (80.0%) | 2 (20.0%) | 6 (100%) | 7 (58.3%) | 6 (50.0%) | 46 (35.7%) |
kruskal.test(FI_final ~ journal_code2, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by journal_code2
## Kruskal-Wallis chi-squared = 7.8264, df = 6, p-value = 0.2511
kruskal.test(FQ_final ~ journal_code2, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by journal_code2
## Kruskal-Wallis chi-squared = 4.192, df = 6, p-value = 0.6507
Box plots
p1 = ggplot(data = fi_sig, aes(y = FI_final, x = as.factor(timing), fill = as.factor(journal_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | sex, data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Both (N=12) |
Men (N=10) |
Women (N=107) |
Overall (N=129) |
|
---|---|---|---|---|
no_rand | ||||
Mean (SD) | 1020 (798) | 1310 (139) | 3490 (2380) | 3090 (2360) |
Median [Q1, Q3] | 578 [549, 1230] | 1200 [1200, 1470] | 2300 [1640, 4760] | 1960 [1360, 4090] |
Median [min, max] | 578 [450, 2690] | 1200 [1200, 1470] | 2300 [704, 7870] | 1960 [450, 7870] |
active_sample | ||||
Mean (SD) | 661 (655) | 1220 (137) | 3070 (2160) | 2700 (2140) |
Median [Q1, Q3] | 451 [426, 477] | 1130 [1130, 1350] | 1980 [1300, 4280] | 1860 [1130, 3700] |
Median [min, max] | 451 [339, 2690] | 1130 [1060, 1430] | 1980 [544, 7810] | 1860 [339, 7810] |
n_event | ||||
Mean (SD) | 62.3 (62.8) | 26.5 (9.06) | 200 (181) | 174 (176) |
Median [Q1, Q3] | 39.0 [33.3, 51.0] | 26.0 [21.5, 34.3] | 121 [71.0, 314] | 101 [51.0, 246] |
Median [min, max] | 39.0 [19.0, 231] | 26.0 [13.0, 39.0] | 121 [10.0, 764] | 101 [10.0, 764] |
FI_final | ||||
Mean (SD) | 4.67 (3.87) | 2.90 (1.66) | 20.3 (26.4) | 17.5 (24.8) |
Median [Q1, Q3] | 4.00 [2.00, 5.50] | 3.00 [1.25, 4.00] | 12.0 [5.00, 24.5] | 9.00 [4.00, 22.0] |
Median [min, max] | 4.00 [1.00, 13.0] | 3.00 [1.00, 6.00] | 12.0 [1.00, 171] | 9.00 [1.00, 171] |
FQ_final | ||||
Mean (SD) | 0.00984 (0.00913) | 0.00236 (0.00140) | 0.00851 (0.0116) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00677 [0.00406, 0.0125] | 0.00216 [0.00115, 0.00296] | 0.00527 [0.00242, 0.0100] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00677 [0.00108, 0.0288] | 0.00216 [0.000887, 0.00532] | 0.00527 [0.000151, 0.0966] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||
0 | 0 (0%) | 0 (0%) | 10 (9.3%) | 10 (7.8%) |
1 | 4 (33.3%) | 10 (100%) | 59 (55.1%) | 73 (56.6%) |
Missing | 8 (66.7%) | 0 (0%) | 38 (35.5%) | 46 (35.7%) |
kruskal.test(FI_final ~ sex, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by sex
## Kruskal-Wallis chi-squared = 23.592, df = 2, p-value = 7.534e-06
kruskal.test(FQ_final ~ sex, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by sex
## Kruskal-Wallis chi-squared = 8.7259, df = 2, p-value = 0.01274
Box plots
p1 = ggplot(data = fi_sig, aes(y = FI_final, x = as.factor(sex), fill = as.factor(sex))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by sex", x = "Sex", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | placebo, data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Active (N=26) |
Placebo (N=103) |
Overall (N=129) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 3080 (1320) | 3100 (2560) | 3090 (2360) |
Median [Q1, Q3] | 4090 [1640, 4090] | 1960 [1200, 5090] | 1960 [1360, 4090] |
Median [min, max] | 4090 [1140, 4090] | 1960 [450, 7870] | 1960 [450, 7870] |
active_sample | |||
Mean (SD) | 2700 (1240) | 2700 (2320) | 2700 (2140) |
Median [Q1, Q3] | 3400 [1270, 3660] | 1770 [994, 4680] | 1860 [1130, 3700] |
Median [min, max] | 3400 [1050, 4090] | 1770 [339, 7810] | 1860 [339, 7810] |
n_event | |||
Mean (SD) | 191 (162) | 169 (179) | 174 (176) |
Median [Q1, Q3] | 144 [65.5, 306] | 99.0 [48.0, 228] | 101 [51.0, 246] |
Median [min, max] | 144 [14.0, 658] | 99.0 [10.0, 764] | 101 [10.0, 764] |
FI_final | |||
Mean (SD) | 18.3 (19.6) | 17.3 (26.1) | 17.5 (24.8) |
Median [Q1, Q3] | 10.5 [5.00, 24.0] | 8.00 [3.50, 21.5] | 9.00 [4.00, 22.0] |
Median [min, max] | 10.5 [2.00, 77.0] | 8.00 [1.00, 171] | 9.00 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.00685 (0.00539) | 0.00848 (0.0121) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00575 [0.00260, 0.00923] | 0.00499 [0.00226, 0.00931] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00575 [0.000554, 0.0188] | 0.00499 [0.000151, 0.0966] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | |||
0 | 4 (15.4%) | 6 (5.8%) | 10 (7.8%) |
1 | 22 (84.6%) | 51 (49.5%) | 73 (56.6%) |
Missing | 0 (0%) | 46 (44.7%) | 46 (35.7%) |
kruskal.test(FI_final ~ placebo, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by placebo
## Kruskal-Wallis chi-squared = 1.3147, df = 1, p-value = 0.2515
kruskal.test(FQ_final ~ placebo, data = fi_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by placebo
## Kruskal-Wallis chi-squared = 0.12409, df = 1, p-value = 0.7246
Box plots
p1 = ggplot(data = fi_sig, aes(y = FI_final, x = as.factor(control), fill = as.factor(control))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by types of control", x = "Types of control", y = "Fragility index")
p1
fx_prim = subset(fi_sig, pri_endpoint == 1)
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi), data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Overall (N=30) |
|
---|---|
no_rand | |
Mean (SD) | 3110 (2350) |
Median [Q1, Q3] | 1980 [1430, 4090] |
Median [min, max] | 1980 [549, 7870] |
active_sample | |
Mean (SD) | 2670 (2130) |
Median [Q1, Q3] | 1860 [1070, 3980] |
Median [min, max] | 1860 [426, 7390] |
n_event | |
Mean (SD) | 186 (158) |
Median [Q1, Q3] | 117 [77.0, 292] |
Median [min, max] | 117 [29.0, 671] |
FI_final | |
Mean (SD) | 29.0 (38.3) |
Median [Q1, Q3] | 14.0 [11.0, 31.3] |
Median [min, max] | 14.0 [1.00, 171] |
FQ_final | |
Mean (SD) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |
0 | 3 (10.0%) |
1 | 16 (53.3%) |
Missing | 11 (36.7%) |
# By fracture as the predefined primary endpoint
fi_sig$fx_primary[fi_sig$pri_endpoint == 1] = "Primary endpoint"
fi_sig$fx_primary[fi_sig$pri_endpoint == 0] = "Secondary endpoint"
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | fx_primary , data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Primary endpoint (N=30) |
Secondary endpoint (N=99) |
Overall (N=129) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 3110 (2350) | 3090 (2370) | 3090 (2360) |
Median [Q1, Q3] | 1980 [1430, 4090] | 1960 [1360, 4090] | 1960 [1360, 4090] |
Median [min, max] | 1980 [549, 7870] | 1960 [450, 7870] | 1960 [450, 7870] |
active_sample | |||
Mean (SD) | 2670 (2130) | 2710 (2150) | 2700 (2140) |
Median [Q1, Q3] | 1860 [1070, 3980] | 1860 [1130, 3690] | 1860 [1130, 3700] |
Median [min, max] | 1860 [426, 7390] | 1860 [339, 7810] | 1860 [339, 7810] |
n_event | |||
Mean (SD) | 186 (158) | 170 (181) | 174 (176) |
Median [Q1, Q3] | 117 [77.0, 292] | 91.0 [47.0, 236] | 101 [51.0, 246] |
Median [min, max] | 117 [29.0, 671] | 91.0 [10.0, 764] | 101 [10.0, 764] |
FI_final | |||
Mean (SD) | 29.0 (38.3) | 14.0 (17.9) | 17.5 (24.8) |
Median [Q1, Q3] | 14.0 [11.0, 31.3] | 7.00 [3.50, 18.0] | 9.00 [4.00, 22.0] |
Median [min, max] | 14.0 [1.00, 171] | 7.00 [1.00, 111] | 9.00 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.0137 (0.0116) | 0.00648 (0.0104) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00864 [0.00404, 0.0240] | 0.00360 [0.00208, 0.00751] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00864 [0.000567, 0.0368] | 0.00360 [0.000151, 0.0966] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | |||
0 | 3 (10.0%) | 7 (7.1%) | 10 (7.8%) |
1 | 16 (53.3%) | 57 (57.6%) | 73 (56.6%) |
Missing | 11 (36.7%) | 35 (35.4%) | 46 (35.7%) |
fi_sig$missing_fi = factor(fi_sig$missing_fi)
createTable(compareGroups(fx_primary ~ no_rand + active_sample + n_event + FI_final + FQ_final + missing_fi, data = fi_sig, method = c(no_rand = 2, active_sample = 2, n_event = 2, FI_final = 2, FQ_final = 2)))
## Warning in chisq.test(xx, correct = FALSE): Chi-squared approximation may be
## incorrect
##
## --------Summary descriptives table by 'fx_primary'---------
##
## ___________________________________________________________
## Primary endpoint Secondary endpoint p.overall
## N=30 N=99
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
## no_rand 1982 [1427;4093] 1964 [1360;4093] 0.880
## active_sample 1856 [1074;3984] 1861 [1127;3690] 0.980
## n_event 116 [77.0;292] 91.0 [47.0;236] 0.219
## FI_final 14.0 [11.0;31.2] 7.00 [3.50;18.0] 0.004
## FQ_final 0.01 [0.00;0.02] 0.00 [0.00;0.01] 0.001
## missing_fi: 0.689
## 0 3 (15.8%) 7 (10.9%)
## 1 16 (84.2%) 57 (89.1%)
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Relationship between sample size/active sample/no. events and FI
p = ggplot(data = fx_prim, aes(x = no_rand, y = FI_final))
p1 = p + geom_point() + geom_smooth() + labs(x = "Number of participants at randomisation", y = "Fragility index") + theme_bw()
p0 = ggplot(data = fx_prim, aes(x = active_sample, y = FI_final))
p2 = p0 + geom_point() + geom_smooth() + labs(x = "Number of participants included in the analyses", y = "Fragility index") + theme_bw()
p.0 = ggplot(data = fx_prim, aes(x = n_event, y = FI_final))
p3 = p.0 + geom_point() + geom_smooth() + labs(x = "Number of participants with fracture events", y = "Fragility index") + theme_bw()
#grid.arrange(p1, p2, p3, nrow = 1)
grid.arrange(p1, p3, nrow = 1, top = textGrob("Relationship between Number of participants and Fragility index", gp = gpar(fontsize = 20, font = 3)))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code1), data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Clin_fx (N=2) |
OFx (N=1) |
NonVert_fx (N=1) |
Vert_fx (N=22) |
Hip (N=4) |
Overall (N=30) |
|
---|---|---|---|---|---|---|
no_rand | ||||||
Mean (SD) | 3110 (1390) | NA | NA | 2840 (2490) | 4390 (2230) | 3110 (2350) |
Median [Q1, Q3] | 3110 [2620, 3600] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [1200, 4090] | 3270 [3270, 4390] | 1980 [1430, 4090] |
Median [min, max] | 3110 [2130, 4090] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [549, 7870] | 3270 [3270, 7740] | 1980 [549, 7870] |
active_sample | ||||||
Mean (SD) | 2060 (2240) | NA | NA | 2530 (2240) | 3340 (2110) | 2670 (2130) |
Median [Q1, Q3] | 2060 [1270, 2850] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [1050, 3980] | 2580 [2220, 3700] | 1860 [1070, 3980] |
Median [min, max] | 2060 [479, 3640] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [426, 7390] | 2580 [1770, 6450] | 1860 [426, 7390] |
n_event | ||||||
Mean (SD) | 348 (165) | NA | NA | 151 (129) | 141 (59.2) | 186 (158) |
Median [Q1, Q3] | 348 [289, 406] | 312 [312, 312] | 671 [671, 671] | 103 [54.8, 204] | 158 [120, 180] | 117 [77.0, 292] |
Median [min, max] | 348 [231, 464] | 312 [312, 312] | 671 [671, 671] | 103 [29.0, 402] | 158 [58.0, 190] | 117 [29.0, 671] |
FI_final | ||||||
Mean (SD) | 16.5 (13.4) | NA | NA | 35.4 (42.6) | 6.00 (4.97) | 29.0 (38.3) |
Median [Q1, Q3] | 16.5 [11.8, 21.3] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [13.0, 41.5] | 5.50 [2.50, 9.00] | 14.0 [11.0, 31.3] |
Median [min, max] | 16.5 [7.00, 26.0] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [1.00, 171] | 5.50 [1.00, 12.0] | 14.0 [1.00, 171] |
FQ_final | ||||||
Mean (SD) | 0.0109 (0.00529) | NA | NA | 0.0166 (0.0117) | 0.00172 (0.00122) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.0109 [0.00901, 0.0127] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0129 [0.00692, 0.0277] | 0.00147 [0.000948, 0.00224] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.0109 [0.00714, 0.0146] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0129 [0.000946, 0.0368] | 0.00147 [0.000567, 0.00337] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||
0 | 0 (0%) | 1 (100%) | 0 (0%) | 2 (9.1%) | 0 (0%) | 3 (10.0%) |
1 | 2 (100%) | 0 (0%) | 0 (0%) | 10 (45.5%) | 4 (100%) | 16 (53.3%) |
Missing | 0 (0%) | 0 (0%) | 1 (100%) | 10 (45.5%) | 0 (0%) | 11 (36.7%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code2), data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any (N=2) |
Osteoporotic (N=1) |
Non-Vertebrae (N=1) |
Vertebrae (N=22) |
Hip (N=4) |
Overall (N=30) |
|
---|---|---|---|---|---|---|
no_rand | ||||||
Mean (SD) | 3110 (1390) | NA | NA | 2840 (2490) | 4390 (2230) | 3110 (2350) |
Median [Q1, Q3] | 3110 [2620, 3600] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [1200, 4090] | 3270 [3270, 4390] | 1980 [1430, 4090] |
Median [min, max] | 3110 [2130, 4090] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [549, 7870] | 3270 [3270, 7740] | 1980 [549, 7870] |
active_sample | ||||||
Mean (SD) | 2060 (2240) | NA | NA | 2530 (2240) | 3340 (2110) | 2670 (2130) |
Median [Q1, Q3] | 2060 [1270, 2850] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [1050, 3980] | 2580 [2220, 3700] | 1860 [1070, 3980] |
Median [min, max] | 2060 [479, 3640] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [426, 7390] | 2580 [1770, 6450] | 1860 [426, 7390] |
n_event | ||||||
Mean (SD) | 348 (165) | NA | NA | 151 (129) | 141 (59.2) | 186 (158) |
Median [Q1, Q3] | 348 [289, 406] | 312 [312, 312] | 671 [671, 671] | 103 [54.8, 204] | 158 [120, 180] | 117 [77.0, 292] |
Median [min, max] | 348 [231, 464] | 312 [312, 312] | 671 [671, 671] | 103 [29.0, 402] | 158 [58.0, 190] | 117 [29.0, 671] |
FI_final | ||||||
Mean (SD) | 16.5 (13.4) | NA | NA | 35.4 (42.6) | 6.00 (4.97) | 29.0 (38.3) |
Median [Q1, Q3] | 16.5 [11.8, 21.3] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [13.0, 41.5] | 5.50 [2.50, 9.00] | 14.0 [11.0, 31.3] |
Median [min, max] | 16.5 [7.00, 26.0] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [1.00, 171] | 5.50 [1.00, 12.0] | 14.0 [1.00, 171] |
FQ_final | ||||||
Mean (SD) | 0.0109 (0.00529) | NA | NA | 0.0166 (0.0117) | 0.00172 (0.00122) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.0109 [0.00901, 0.0127] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0129 [0.00692, 0.0277] | 0.00147 [0.000948, 0.00224] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.0109 [0.00714, 0.0146] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0129 [0.000946, 0.0368] | 0.00147 [0.000567, 0.00337] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||
0 | 0 (0%) | 1 (100%) | 0 (0%) | 2 (9.1%) | 0 (0%) | 3 (10.0%) |
1 | 2 (100%) | 0 (0%) | 0 (0%) | 10 (45.5%) | 4 (100%) | 16 (53.3%) |
Missing | 0 (0%) | 0 (0%) | 1 (100%) | 10 (45.5%) | 0 (0%) | 11 (36.7%) |
kruskal.test(FI_final ~ fx_code2, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by fx_code2
## Kruskal-Wallis chi-squared = 8.85, df = 4, p-value = 0.06496
kruskal.test(FQ_final ~ fx_code2, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by fx_code2
## Kruskal-Wallis chi-squared = 10.855, df = 4, p-value = 0.02824
Box plots
p1 = ggplot(data = fx_prim, aes(y = FI_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Fracture sites", y = "Fragility index")
p2 = ggplot(data = fx_prim, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Fracture sites", y = "Fragility quotient")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by fracture sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code1), data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Alendronate (N=1) |
Ibandronate (N=2) |
Risedronate (N=1) |
Minodronate (N=1) |
Zoledronate (N=6) |
Teriparatide (N=6) |
Abaloparatide (N=1) |
Romosozumab (N=5) |
Denosumab (N=1) |
Strontium_ranelate (N=3) |
Calcium_VitD (N=3) |
Overall (N=30) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
no_rand | ||||||||||||
Mean (SD) | NA | 1960 (0) | NA | NA | 3670 (3180) | 1050 (429) | NA | 5330 (1690) | NA | 2800 (1990) | 3270 (0) | 3110 (2350) |
Median [Q1, Q3] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 2060 [1400, 6330] | 1090 [705, 1290] | 1650 [1650, 1650] | 4090 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 3370] | 3270 [3270, 3270] | 1980 [1430, 4090] |
Median [min, max] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 2060 [1200, 7740] | 1090 [549, 1640] | 1650 [1650, 1650] | 4090 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 5090] | 3270 [3270, 3270] | 1980 [549, 7870] |
active_sample | ||||||||||||
Mean (SD) | NA | 1950 (0) | NA | NA | 2790 (2590) | 855 (378) | NA | 4940 (1570) | NA | 2610 (2020) | 2310 (516) | 2670 (2130) |
Median [Q1, Q3] | 4130 [4130, 4130] | 1950 [1950, 1950] | 1370 [1370, 1370] | 544 [544, 544] | 1540 [1070, 4740] | 887 [559, 1010] | 1400 [1400, 1400] | 4090 [3660, 6640] | 7390 [7390, 7390] | 1440 [1440, 3190] | 2380 [2070, 2580] | 1860 [1070, 3980] |
Median [min, max] | 4130 [4130, 4130] | 1950 [1950, 1950] | 1370 [1370, 1370] | 544 [544, 544] | 1540 [479, 6450] | 887 [426, 1430] | 1400 [1400, 1400] | 4090 [3640, 6650] | 7390 [7390, 7390] | 1440 [1440, 4940] | 2380 [1770, 2790] | 1860 [426, 7390] |
n_event | ||||||||||||
Mean (SD) | NA | 111 (1.41) | NA | NA | 192 (151) | 64.3 (25.3) | NA | 247 (168) | NA | 463 (182) | 141 (72.5) | 186 (158) |
Median [Q1, Q3] | 121 [121, 121] | 111 [111, 112] | 154 [154, 154] | 100 [100, 100] | 186 [62.8, 292] | 65.5 [42.8, 85.3] | 34.0 [34.0, 34.0] | 221 [105, 370] | 350 [350, 350] | 387 [360, 529] | 176 [117, 183] | 117 [77.0, 292] |
Median [min, max] | 121 [121, 121] | 111 [110, 112] | 154 [154, 154] | 100 [100, 100] | 186 [29.0, 402] | 65.5 [36.0, 92.0] | 34.0 [34.0, 34.0] | 221 [75.0, 464] | 350 [350, 350] | 387 [332, 671] | 176 [58.0, 190] | 117 [29.0, 671] |
FI_final | ||||||||||||
Mean (SD) | NA | 14.0 (1.41) | NA | NA | 38.3 (65.9) | 16.3 (6.15) | NA | 41.8 (21.3) | NA | 33.3 (26.5) | 4.00 (3.61) | 29.0 (38.3) |
Median [Q1, Q3] | 13.0 [13.0, 13.0] | 14.0 [13.5, 14.5] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 9.50 [6.25, 27.8] | 14.0 [11.5, 21.0] | 13.0 [13.0, 13.0] | 40.0 [26.0, 42.0] | 137 [137, 137] | 45.0 [24.0, 48.5] | 3.00 [2.00, 5.50] | 14.0 [11.0, 31.3] |
Median [min, max] | 13.0 [13.0, 13.0] | 14.0 [13.0, 15.0] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 9.50 [1.00, 171] | 14.0 [11.0, 25.0] | 13.0 [13.0, 13.0] | 40.0 [24.0, 77.0] | 137 [137, 137] | 45.0 [3.00, 52.0] | 3.00 [1.00, 8.00] | 14.0 [1.00, 171] |
FQ_final | ||||||||||||
Mean (SD) | NA | 0.00717 (0.000724) | NA | NA | 0.0116 (0.0112) | 0.0218 (0.00871) | NA | 0.00941 (0.00598) | NA | 0.0226 (0.0192) | 0.00167 (0.00149) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.00314 [0.00314, 0.00314] | 0.00717 [0.00692, 0.00743] | 0.00801 [0.00801, 0.00801] | 0.0368 [0.0368, 0.0368] | 0.00997 [0.00273, 0.0164] | 0.0258 [0.0172, 0.0277] | 0.00928 [0.00928, 0.00928] | 0.00714 [0.00601, 0.0115] | 0.0185 [0.0185, 0.0185] | 0.0312 [0.0159, 0.0336] | 0.00108 [0.000821, 0.00222] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.00314 [0.00314, 0.00314] | 0.00717 [0.00666, 0.00768] | 0.00801 [0.00801, 0.00801] | 0.0368 [0.0368, 0.0368] | 0.00997 [0.000946, 0.0301] | 0.0258 [0.00770, 0.0288] | 0.00928 [0.00928, 0.00928] | 0.00714 [0.00361, 0.0188] | 0.0185 [0.0185, 0.0185] | 0.0312 [0.000608, 0.0361] | 0.00108 [0.000567, 0.00337] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||||||||
0 | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 1 (16.7%) | 1 (16.7%) | 0 (0%) | 1 (20.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 3 (10.0%) |
1 | 0 (0%) | 0 (0%) | 1 (100%) | 1 (100%) | 5 (83.3%) | 1 (16.7%) | 1 (100%) | 4 (80.0%) | 0 (0%) | 0 (0%) | 3 (100%) | 16 (53.3%) |
Missing | 1 (100%) | 2 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | 4 (66.7%) | 0 (0%) | 0 (0%) | 1 (100%) | 3 (100%) | 0 (0%) | 11 (36.7%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code2), data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Bisphosphonates (N=11) |
PTH analog (N=7) |
Romosozumab (N=5) |
Denosumab (N=1) |
Strontium_ranelate (N=3) |
Calcium_VitD (N=3) |
Overall (N=30) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 2970 (2540) | 1140 (451) | 5330 (1690) | NA | 2800 (1990) | 3270 (0) | 3110 (2350) |
Median [Q1, Q3] | 1960 [1410, 3280] | 1100 [832, 1500] | 4090 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 3370] | 3270 [3270, 3270] | 1980 [1430, 4090] |
Median [min, max] | 1960 [704, 7740] | 1100 [549, 1650] | 4090 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 5090] | 3270 [3270, 3270] | 1980 [549, 7870] |
active_sample | |||||||
Mean (SD) | 2430 (2060) | 933 (402) | 4940 (1570) | NA | 2610 (2020) | 2310 (516) | 2670 (2130) |
Median [Q1, Q3] | 1950 [1090, 3040] | 892 [667, 1230] | 4090 [3660, 6640] | 7390 [7390, 7390] | 1440 [1440, 3190] | 2380 [2070, 2580] | 1860 [1070, 3980] |
Median [min, max] | 1950 [479, 6450] | 892 [426, 1430] | 4090 [3640, 6650] | 7390 [7390, 7390] | 1440 [1440, 4940] | 2380 [1770, 2790] | 1860 [426, 7390] |
n_event | |||||||
Mean (SD) | 159 (114) | 60.0 (25.8) | 247 (168) | NA | 463 (182) | 141 (72.5) | 186 (158) |
Median [Q1, Q3] | 121 [105, 193] | 48.0 [38.5, 84.5] | 221 [105, 370] | 350 [350, 350] | 387 [360, 529] | 176 [117, 183] | 117 [77.0, 292] |
Median [min, max] | 121 [29.0, 402] | 48.0 [34.0, 92.0] | 221 [75.0, 464] | 350 [350, 350] | 387 [332, 671] | 176 [58.0, 190] | 117 [29.0, 671] |
FI_final | |||||||
Mean (SD) | 27.5 (48.3) | 15.9 (5.76) | 41.8 (21.3) | NA | 33.3 (26.5) | 4.00 (3.61) | 29.0 (38.3) |
Median [Q1, Q3] | 13.0 [9.00, 17.5] | 13.0 [12.0, 19.0] | 40.0 [26.0, 42.0] | 137 [137, 137] | 45.0 [24.0, 48.5] | 3.00 [2.00, 5.50] | 14.0 [11.0, 31.3] |
Median [min, max] | 13.0 [1.00, 171] | 13.0 [11.0, 25.0] | 40.0 [24.0, 77.0] | 137 [137, 137] | 45.0 [3.00, 52.0] | 3.00 [1.00, 8.00] | 14.0 [1.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.0120 (0.0118) | 0.0200 (0.00925) | 0.00941 (0.00598) | NA | 0.0226 (0.0192) | 0.00167 (0.00149) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.00768 [0.00423, 0.0158] | 0.0258 [0.0118, 0.0271] | 0.00714 [0.00601, 0.0115] | 0.0185 [0.0185, 0.0185] | 0.0312 [0.0159, 0.0336] | 0.00108 [0.000821, 0.00222] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.00768 [0.000946, 0.0368] | 0.0258 [0.00770, 0.0288] | 0.00714 [0.00361, 0.0188] | 0.0185 [0.0185, 0.0185] | 0.0312 [0.000608, 0.0361] | 0.00108 [0.000567, 0.00337] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |||||||
0 | 1 (9.1%) | 1 (14.3%) | 1 (20.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 3 (10.0%) |
1 | 7 (63.6%) | 2 (28.6%) | 4 (80.0%) | 0 (0%) | 0 (0%) | 3 (100%) | 16 (53.3%) |
Missing | 3 (27.3%) | 4 (57.1%) | 0 (0%) | 1 (100%) | 3 (100%) | 0 (0%) | 11 (36.7%) |
kruskal.test(FI_final ~ interv_code2, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by interv_code2
## Kruskal-Wallis chi-squared = 13.133, df = 5, p-value = 0.02216
kruskal.test(FQ_final ~ interv_code2, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by interv_code2
## Kruskal-Wallis chi-squared = 9.1436, df = 5, p-value = 0.1035
Box plots
p1 = ggplot(data = fx_prim, aes(y = FI_final, x = as.factor(interv_code2), fill = as.factor(interv_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Pharmacological interventions", y = "Fragility index")
p2 = ggplot(data = fx_prim, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Pharmacological interventions", y = "Fragility quotine")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by intervention sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(timing), data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
2 (N=1) |
3 (N=7) |
4 (N=10) |
5 (N=9) |
6 (N=1) |
7 (N=1) |
8 (N=1) |
Overall (N=30) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | NA | 2030 (1240) | 2610 (2140) | 3810 (2980) | NA | NA | NA | 3110 (2350) |
Median [Q1, Q3] | 7180 [7180, 7180] | 1650 [1110, 3270] | 1280 [1120, 4090] | 1960 [1650, 7740] | 4430 [4430, 4430] | 5090 [5090, 5090] | 2000 [2000, 2000] | 1980 [1430, 4090] |
Median [min, max] | 7180 [7180, 7180] | 1650 [549, 3270] | 1280 [704, 7180] | 1960 [1630, 7870] | 4430 [4430, 4430] | 5090 [5090, 5090] | 2000 [2000, 2000] | 1980 [549, 7870] |
active_sample | ||||||||
Mean (SD) | NA | 1520 (891) | 2360 (2040) | 3130 (2600) | NA | NA | NA | 2670 (2130) |
Median [Q1, Q3] | 6640 [6640, 6640] | 1430 [926, 2070] | 1090 [931, 3660] | 1950 [1440, 5680] | 4130 [4130, 4130] | 4940 [4940, 4940] | 1950 [1950, 1950] | 1860 [1070, 3980] |
Median [min, max] | 6640 [6640, 6640] | 1430 [426, 2790] | 1090 [544, 6650] | 1950 [479, 7390] | 4130 [4130, 4130] | 4940 [4940, 4940] | 1950 [1950, 1950] | 1860 [426, 7390] |
n_event | ||||||||
Mean (SD) | NA | 83.3 (68.7) | 159 (147) | 246 (122) | NA | NA | NA | 186 (158) |
Median [Q1, Q3] | 75.0 [75.0, 75.0] | 48.0 [38.5, 117] | 96.0 [83.8, 192] | 231 [140, 350] | 121 [121, 121] | 671 [671, 671] | 312 [312, 312] | 117 [77.0, 292] |
Median [min, max] | 75.0 [75.0, 75.0] | 48.0 [34.0, 190] | 96.0 [29.0, 464] | 231 [110, 402] | 121 [121, 121] | 671 [671, 671] | 312 [312, 312] | 117 [29.0, 671] |
FI_final | ||||||||
Mean (SD) | NA | 8.57 (4.83) | 27.5 (21.7) | 51.4 (60.9) | NA | NA | NA | 29.0 (38.3) |
Median [Q1, Q3] | 24.0 [24.0, 24.0] | 11.0 [5.50, 12.0] | 24.0 [16.3, 36.5] | 15.0 [12.0, 52.0] | 13.0 [13.0, 13.0] | 3.00 [3.00, 3.00] | 33.0 [33.0, 33.0] | 14.0 [11.0, 31.3] |
Median [min, max] | 24.0 [24.0, 24.0] | 11.0 [1.00, 13.0] | 24.0 [1.00, 77.0] | 15.0 [7.00, 171] | 13.0 [13.0, 13.0] | 3.00 [3.00, 3.00] | 33.0 [33.0, 33.0] | 14.0 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | NA | 0.0109 (0.0117) | 0.0155 (0.0117) | 0.0172 (0.0125) | NA | NA | NA | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.00361 [0.00361, 0.00361] | 0.00770 [0.00222, 0.0176] | 0.0129 [0.00629, 0.0240] | 0.0146 [0.00768, 0.0301] | 0.00314 [0.00314, 0.00314] | 0.000608 [0.000608, 0.000608] | 0.0169 [0.0169, 0.0169] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.00361 [0.00361, 0.00361] | 0.00770 [0.000567, 0.0288] | 0.0129 [0.000946, 0.0368] | 0.0146 [0.00186, 0.0361] | 0.00314 [0.00314, 0.00314] | 0.000608 [0.000608, 0.000608] | 0.0169 [0.0169, 0.0169] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||||
0 | 0 (0%) | 0 (0%) | 2 (20.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 1 (100%) | 3 (10.0%) |
1 | 1 (100%) | 5 (71.4%) | 6 (60.0%) | 4 (44.4%) | 0 (0%) | 0 (0%) | 0 (0%) | 16 (53.3%) |
Missing | 0 (0%) | 2 (28.6%) | 2 (20.0%) | 5 (55.6%) | 1 (100%) | 1 (100%) | 0 (0%) | 11 (36.7%) |
kruskal.test(FI_final ~ timing, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by timing
## Kruskal-Wallis chi-squared = 9.7937, df = 6, p-value = 0.1336
kruskal.test(FQ_final ~ timing, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by timing
## Kruskal-Wallis chi-squared = 6.4225, df = 6, p-value = 0.3776
Box plots
p1 = ggplot(data = fx_prim, aes(y = FI_final, x = as.factor(timing), fill = as.factor(timing))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(journal_code2), data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
NEJM (N=19) |
Lancet (N=1) |
JAMA (N=4) |
JBMR (N=2) |
JCEM (N=2) |
Other (N=2) |
Overall (N=30) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 3780 (2530) | NA | 2340 (1400) | 1960 (0) | 564 (20.5) | 2900 (3100) | 3110 (2350) |
Median [Q1, Q3] | 3270 [1650, 5640] | 1360 [1360, 1360] | 1640 [1640, 2340] | 1960 [1960, 1960] | 564 [556, 571] | 2900 [1800, 3990] | 1980 [1430, 4090] |
Median [min, max] | 3270 [1090, 7870] | 1360 [1360, 1360] | 1640 [1630, 4430] | 1960 [1960, 1960] | 564 [549, 578] | 2900 [704, 5090] | 1980 [549, 7870] |
active_sample | |||||||
Mean (SD) | 3180 (2320) | NA | 2080 (1370) | 1950 (0) | 439 (17.7) | 2740 (3100) | 2670 (2130) |
Median [Q1, Q3] | 2380 [1280, 4880] | 1050 [1050, 1050] | 1410 [1390, 2100] | 1950 [1950, 1950] | 439 [432, 445] | 2740 [1640, 3840] | 1860 [1070, 3980] |
Median [min, max] | 2380 [479, 7390] | 1050 [1050, 1050] | 1410 [1370, 4130] | 1950 [1950, 1950] | 439 [426, 451] | 2740 [544, 4940] | 1860 [426, 7390] |
n_event | |||||||
Mean (SD) | 213 (141) | NA | 86.3 (60.7) | 111 (1.41) | 44.5 (4.95) | 386 (404) | 186 (158) |
Median [Q1, Q3] | 190 [84.5, 341] | 92.0 [92.0, 92.0] | 78.5 [35.5, 129] | 111 [111, 112] | 44.5 [42.8, 46.3] | 386 [243, 528] | 117 [77.0, 292] |
Median [min, max] | 190 [29.0, 464] | 92.0 [92.0, 92.0] | 78.5 [34.0, 154] | 111 [110, 112] | 44.5 [41.0, 48.0] | 386 [100, 671] | 117 [29.0, 671] |
FI_final | |||||||
Mean (SD) | 38.6 (45.7) | NA | 12.0 (1.15) | 14.0 (1.41) | 12.0 (1.41) | 11.5 (12.0) | 29.0 (38.3) |
Median [Q1, Q3] | 25.0 [7.50, 43.5] | 15.0 [15.0, 15.0] | 12.0 [11.0, 13.0] | 14.0 [13.5, 14.5] | 12.0 [11.5, 12.5] | 11.5 [7.25, 15.8] | 14.0 [11.0, 31.3] |
Median [min, max] | 25.0 [1.00, 171] | 15.0 [15.0, 15.0] | 12.0 [11.0, 13.0] | 14.0 [13.0, 15.0] | 12.0 [11.0, 13.0] | 11.5 [3.00, 20.0] | 14.0 [1.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.0138 (0.0118) | NA | 0.00703 (0.00268) | 0.00717 (0.000724) | 0.0273 (0.00212) | 0.0187 (0.0256) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.0115 [0.00349, 0.0223] | 0.0143 [0.0143, 0.0143] | 0.00785 [0.00656, 0.00832] | 0.00717 [0.00692, 0.00743] | 0.0273 [0.0266, 0.0281] | 0.0187 [0.00965, 0.0277] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.0115 [0.000567, 0.0361] | 0.0143 [0.0143, 0.0143] | 0.00785 [0.00314, 0.00928] | 0.00717 [0.00666, 0.00768] | 0.0273 [0.0258, 0.0288] | 0.0187 [0.000608, 0.0368] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |||||||
0 | 2 (10.5%) | 1 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 3 (10.0%) |
1 | 12 (63.2%) | 0 (0%) | 3 (75.0%) | 0 (0%) | 0 (0%) | 1 (50.0%) | 16 (53.3%) |
Missing | 5 (26.3%) | 0 (0%) | 1 (25.0%) | 2 (100%) | 2 (100%) | 1 (50.0%) | 11 (36.7%) |
kruskal.test(FI_final ~ journal_code2, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by journal_code2
## Kruskal-Wallis chi-squared = 2.8427, df = 5, p-value = 0.7242
kruskal.test(FQ_final ~ journal_code2, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by journal_code2
## Kruskal-Wallis chi-squared = 3.1363, df = 5, p-value = 0.679
Box plots
p1 = ggplot(data = fx_prim, aes(y = FI_final, x = as.factor(timing), fill = as.factor(journal_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | sex, data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Both (N=3) |
Men (N=2) |
Women (N=25) |
Overall (N=30) |
|
---|---|---|---|---|
no_rand | ||||
Mean (SD) | 1080 (903) | 1200 (0) | 3510 (2370) | 3110 (2350) |
Median [Q1, Q3] | 578 [564, 1350] | 1200 [1200, 1200] | 3270 [1650, 4430] | 1980 [1430, 4090] |
Median [min, max] | 578 [549, 2130] | 1200 [1200, 1200] | 3270 [704, 7870] | 1980 [549, 7870] |
active_sample | ||||
Mean (SD) | 452 (26.5) | 1090 (49.5) | 3060 (2130) | 2670 (2130) |
Median [Q1, Q3] | 451 [439, 465] | 1090 [1070, 1110] | 1950 [1430, 4130] | 1860 [1070, 3980] |
Median [min, max] | 451 [426, 479] | 1090 [1060, 1130] | 1950 [544, 7390] | 1860 [426, 7390] |
n_event | ||||
Mean (SD) | 107 (108) | 33.0 (5.66) | 207 (161) | 186 (158) |
Median [Q1, Q3] | 48.0 [44.5, 140] | 33.0 [31.0, 35.0] | 140 [92.0, 332] | 117 [77.0, 292] |
Median [min, max] | 48.0 [41.0, 231] | 33.0 [29.0, 37.0] | 140 [34.0, 671] | 117 [29.0, 671] |
FI_final | ||||
Mean (SD) | 10.3 (3.06) | 3.50 (3.54) | 33.3 (40.6) | 29.0 (38.3) |
Median [Q1, Q3] | 11.0 [9.00, 12.0] | 3.50 [2.25, 4.75] | 20.0 [12.0, 40.0] | 14.0 [11.0, 31.3] |
Median [min, max] | 11.0 [7.00, 13.0] | 3.50 [1.00, 6.00] | 20.0 [1.00, 171] | 14.0 [1.00, 171] |
FQ_final | ||||
Mean (SD) | 0.0231 (0.00749) | 0.00313 (0.00310) | 0.0134 (0.0117) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.0258 [0.0202, 0.0273] | 0.00313 [0.00204, 0.00423] | 0.00801 [0.00361, 0.0188] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.0258 [0.0146, 0.0288] | 0.00313 [0.000946, 0.00532] | 0.00801 [0.000567, 0.0368] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||
0 | 0 (0%) | 0 (0%) | 3 (12.0%) | 3 (10.0%) |
1 | 1 (33.3%) | 2 (100%) | 13 (52.0%) | 16 (53.3%) |
Missing | 2 (66.7%) | 0 (0%) | 9 (36.0%) | 11 (36.7%) |
kruskal.test(FI_final ~ sex, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by sex
## Kruskal-Wallis chi-squared = 6.2219, df = 2, p-value = 0.04456
kruskal.test(FQ_final ~ sex, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by sex
## Kruskal-Wallis chi-squared = 4.5128, df = 2, p-value = 0.1047
Box plots
p1 = ggplot(data = fx_prim, aes(y = FI_final, x = as.factor(sex), fill = as.factor(sex))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by sex", x = "Sex", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | placebo, data = fx_prim, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Active (N=6) |
Placebo (N=24) |
Overall (N=30) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 2820 (1400) | 3180 (2550) | 3110 (2350) |
Median [Q1, Q3] | 2870 [1640, 4090] | 1980 [1200, 4600] | 1980 [1430, 4090] |
Median [min, max] | 2870 [1360, 4090] | 1980 [549, 7870] | 1980 [549, 7870] |
active_sample | |||
Mean (SD) | 2550 (1390) | 2700 (2310) | 2670 (2130) |
Median [Q1, Q3] | 2540 [1410, 3660] | 1860 [1020, 4330] | 1860 [1070, 3980] |
Median [min, max] | 2540 [1050, 4090] | 1860 [426, 7390] | 1860 [426, 7390] |
n_event | |||
Mean (SD) | 203 (182) | 181 (156) | 186 (158) |
Median [Q1, Q3] | 157 [50.0, 333] | 117 [81.0, 251] | 117 [77.0, 292] |
Median [min, max] | 157 [34.0, 464] | 117 [29.0, 671] | 117 [29.0, 671] |
FI_final | |||
Mean (SD) | 30.7 (25.5) | 28.6 (41.3) | 29.0 (38.3) |
Median [Q1, Q3] | 20.5 [13.5, 38.0] | 13.0 [7.75, 27.0] | 14.0 [11.0, 31.3] |
Median [min, max] | 20.5 [11.0, 77.0] | 13.0 [1.00, 171] | 14.0 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.0115 (0.00447) | 0.0142 (0.0128) | 0.0137 (0.0116) |
Median [Q1, Q3] | 0.0104 [0.00810, 0.0136] | 0.00785 [0.00331, 0.0265] | 0.00864 [0.00404, 0.0240] |
Median [min, max] | 0.0104 [0.00714, 0.0188] | 0.00785 [0.000567, 0.0368] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |||
0 | 2 (33.3%) | 1 (4.2%) | 3 (10.0%) |
1 | 4 (66.7%) | 12 (50.0%) | 16 (53.3%) |
Missing | 0 (0%) | 11 (45.8%) | 11 (36.7%) |
kruskal.test(FI_final ~ placebo, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by placebo
## Kruskal-Wallis chi-squared = 1.19, df = 1, p-value = 0.2753
kruskal.test(FQ_final ~ placebo, data = fx_prim)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by placebo
## Kruskal-Wallis chi-squared = 0.096774, df = 1, p-value = 0.7557
Box plots
p1 = ggplot(data = fx_prim, aes(y = FI_final, x = as.factor(control), fill = as.factor(control))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by types of control", x = "Types of control", y = "Fragility index")
p1
Data set:
p_sig = subset(fi_sig, Pval_screen<=0.001)
# Comparison of different P values:
fi_sig$p_sig1[fi_sig$p_value<=0.001] = "Highly significant"
fi_sig$p_sig1[fi_sig$p_value>0.001] = "Significant"
fi_sig$p_sig2[fi_sig$Pval_screen<=0.001] = "Highly significant"
fi_sig$p_sig2[fi_sig$Pval_screen>0.001] = "Significant"
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | p_sig2 , data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Highly significant (N=44) |
Significant (N=85) |
Overall (N=129) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 3900 (2800) | 2680 (1980) | 3090 (2360) |
Median [Q1, Q3] | 2840 [1640, 7180] | 1960 [1200, 4090] | 1960 [1360, 4090] |
Median [min, max] | 2840 [549, 7870] | 1960 [450, 7870] | 1960 [450, 7870] |
active_sample | |||
Mean (SD) | 3460 (2540) | 2300 (1790) | 2700 (2140) |
Median [Q1, Q3] | 2400 [1260, 6530] | 1770 [1100, 3400] | 1860 [1130, 3700] |
Median [min, max] | 2400 [426, 7810] | 1770 [339, 6670] | 1860 [339, 7810] |
n_event | |||
Mean (SD) | 220 (193) | 150 (162) | 174 (176) |
Median [Q1, Q3] | 125 [80.5, 331] | 79.0 [39.0, 178] | 101 [51.0, 246] |
Median [min, max] | 125 [34.0, 764] | 79.0 [10.0, 691] | 101 [10.0, 764] |
FI_final | |||
Mean (SD) | 37.9 (33.4) | 6.93 (6.19) | 17.5 (24.8) |
Median [Q1, Q3] | 25.5 [17.8, 42.3] | 5.00 [2.00, 9.00] | 9.00 [4.00, 22.0] |
Median [min, max] | 25.5 [9.00, 171] | 5.00 [1.00, 29.0] | 9.00 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.0162 (0.0156) | 0.00401 (0.00333) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.0128 [0.00667, 0.0189] | 0.00307 [0.00150, 0.00532] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.0128 [0.00230, 0.0966] | 0.00307 [0.000151, 0.0146] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | |||
0 | 6 (13.6%) | 4 (4.7%) | 10 (7.8%) |
1 | 23 (52.3%) | 50 (58.8%) | 73 (56.6%) |
Missing | 15 (34.1%) | 31 (36.5%) | 46 (35.7%) |
createTable(compareGroups(p_sig2 ~ no_rand + active_sample + n_event + FI_final + FQ_final + missing_fi, data = fi_sig, method = c(no_rand = 2, active_sample = 2, n_event = 2, FI_final = 2, FQ_final = 2)))
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in chisq.test(xx, correct = FALSE): Chi-squared approximation may be
## incorrect
##
## --------Summary descriptives table by 'p_sig2'---------
##
## ___________________________________________________________
## Highly significant Significant p.overall
## N=44 N=85
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
## no_rand 2843 [1636;7180] 1964 [1199;4093] 0.046
## active_sample 2396 [1256;6533] 1765 [1101;3399] 0.020
## n_event 124 [80.5;330] 79.0 [39.0;178] 0.006
## FI_final 25.5 [17.8;42.2] 5.00 [2.00;9.00] <0.001
## FQ_final 0.01 [0.01;0.02] 0.00 [0.00;0.01] <0.001
## missing_fi: 0.090
## 0 6 (20.7%) 4 (7.41%)
## 1 23 (79.3%) 50 (92.6%)
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
# Subset of analyses whose P-value<= 0.001
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi), data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Overall (N=44) |
|
---|---|
no_rand | |
Mean (SD) | 3900 (2800) |
Median [Q1, Q3] | 2840 [1640, 7180] |
Median [min, max] | 2840 [549, 7870] |
active_sample | |
Mean (SD) | 3460 (2540) |
Median [Q1, Q3] | 2400 [1260, 6530] |
Median [min, max] | 2400 [426, 7810] |
n_event | |
Mean (SD) | 220 (193) |
Median [Q1, Q3] | 125 [80.5, 331] |
Median [min, max] | 125 [34.0, 764] |
FI_final | |
Mean (SD) | 37.9 (33.4) |
Median [Q1, Q3] | 25.5 [17.8, 42.3] |
Median [min, max] | 25.5 [9.00, 171] |
FQ_final | |
Mean (SD) | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |
0 | 6 (13.6%) |
1 | 23 (52.3%) |
Missing | 15 (34.1%) |
Relationship between sample size/active sample/no. events and FI
p = ggplot(data = p_sig, aes(x = no_rand, y = FI_final))
p1 = p + geom_point() + geom_smooth() + labs(x = "Number of participants at randomisation", y = "Fragility index") + theme_bw()
p0 = ggplot(data = p_sig, aes(x = active_sample, y = FI_final))
p2 = p0 + geom_point() + geom_smooth() + labs(x = "Number of participants included in the analyses", y = "Fragility index") + theme_bw()
p.0 = ggplot(data = p_sig, aes(x = n_event, y = FI_final))
p3 = p.0 + geom_point() + geom_smooth() + labs(x = "Number of participants with fracture events", y = "Fragility index") + theme_bw()
#grid.arrange(p1, p2, p3, nrow = 1)
grid.arrange(p1, p3, nrow = 1, top = textGrob("Relationship between Number of participants and Fragility index", gp = gpar(fontsize = 20, font = 3)))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code1), data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Clin_fx (N=2) |
OFx (N=3) |
MOF (N=2) |
NonVert_fx (N=4) |
Vert_fx (N=30) |
ClinVert_fx (N=3) |
Overall (N=44) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 7460 (393) | 3400 (1210) | 2870 (1730) | 6340 (2060) | 3270 (2740) | 5750 (3550) | 3900 (2800) |
Median [Q1, Q3] | 7460 [7320, 7600] | 4090 [3050, 4090] | 2870 [2260, 3480] | 7180 [6200, 7320] | 1650 [1260, 6410] | 7740 [4690, 7800] | 2840 [1640, 7180] |
Median [min, max] | 7460 [7180, 7740] | 4090 [2000, 4090] | 2870 [1650, 4090] | 7180 [3270, 7740] | 1650 [549, 7870] | 7740 [1650, 7870] | 2840 [549, 7870] |
active_sample | |||||||
Mean (SD) | 6620 (100) | 3250 (1130) | 2400 (1600) | 5560 (2120) | 2890 (2480) | 5230 (3350) | 3460 (2540) |
Median [Q1, Q3] | 6620 [6580, 6660] | 3840 [2890, 3910] | 2400 [1830, 2970] | 6590 [5490, 6650] | 1440 [1050, 5280] | 6430 [3940, 7120] | 2400 [1260, 6530] |
Median [min, max] | 6620 [6550, 6690] | 3840 [1950, 3980] | 2400 [1270, 3530] | 6590 [2380, 6670] | 1440 [426, 7390] | 6430 [1440, 7810] | 2400 [426, 7810] |
n_event | |||||||
Mean (SD) | 505 (366) | 431 (197) | 200 (220) | 357 (229) | 171 (156) | 144 (55.6) | 220 (193) |
Median [Q1, Q3] | 505 [376, 635] | 323 [318, 491] | 200 [122, 277] | 290 [211, 436] | 100 [73.5, 260] | 121 [112, 164] | 125 [80.5, 331] |
Median [min, max] | 505 [246, 764] | 323 [312, 658] | 200 [44.0, 355] | 290 [168, 680] | 100 [34.0, 696] | 121 [103, 207] | 125 [34.0, 764] |
FI_final | |||||||
Mean (SD) | 62.5 (37.5) | 42.7 (19.4) | 17.5 (12.0) | 28.0 (10.1) | 38.9 (38.2) | 33.0 (13.1) | 37.9 (33.4) |
Median [Q1, Q3] | 62.5 [49.3, 75.8] | 33.0 [31.5, 49.0] | 17.5 [13.3, 21.8] | 24.0 [22.5, 29.5] | 23.5 [17.0, 44.3] | 39.0 [28.5, 40.5] | 25.5 [17.8, 42.3] |
Median [min, max] | 62.5 [36.0, 89.0] | 33.0 [30.0, 65.0] | 17.5 [9.00, 26.0] | 24.0 [21.0, 43.0] | 23.5 [11.0, 171] | 39.0 [18.0, 42.0] | 25.5 [9.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.00949 (0.00580) | 0.0138 (0.00543) | 0.00723 (0.000175) | 0.00593 (0.00343) | 0.0196 (0.0177) | 0.00800 (0.00395) | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.00949 [0.00743, 0.0115] | 0.0169 [0.0122, 0.0169] | 0.00723 [0.00717, 0.00730] | 0.00502 [0.00338, 0.00757] | 0.0174 [0.00785, 0.0258] | 0.00653 [0.00576, 0.00951] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.00949 [0.00538, 0.0136] | 0.0169 [0.00754, 0.0169] | 0.00723 [0.00711, 0.00736] | 0.00502 [0.00315, 0.0105] | 0.0174 [0.00230, 0.0966] | 0.00653 [0.00499, 0.0125] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 0 (0%) | 2 (66.7%) | 0 (0%) | 0 (0%) | 4 (13.3%) | 0 (0%) | 6 (13.6%) |
1 | 2 (100%) | 1 (33.3%) | 2 (100%) | 4 (100%) | 13 (43.3%) | 1 (33.3%) | 23 (52.3%) |
Missing | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 13 (43.3%) | 2 (66.7%) | 15 (34.1%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code2), data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any (N=2) |
Osteoporotic (N=5) |
Non-Vertebrae (N=4) |
Vertebrae (N=30) |
Clinical Vertebrae (N=3) |
Overall (N=44) |
|
---|---|---|---|---|---|---|
no_rand | ||||||
Mean (SD) | 7460 (393) | 3180 (1250) | 6340 (2060) | 3270 (2740) | 5750 (3550) | 3900 (2800) |
Median [Q1, Q3] | 7460 [7320, 7600] | 4090 [2000, 4090] | 7180 [6200, 7320] | 1650 [1260, 6410] | 7740 [4690, 7800] | 2840 [1640, 7180] |
Median [min, max] | 7460 [7180, 7740] | 4090 [1650, 4090] | 7180 [3270, 7740] | 1650 [549, 7870] | 7740 [1650, 7870] | 2840 [549, 7870] |
active_sample | ||||||
Mean (SD) | 6620 (100) | 2910 (1230) | 5560 (2120) | 2890 (2480) | 5230 (3350) | 3460 (2540) |
Median [Q1, Q3] | 6620 [6580, 6660] | 3530 [1950, 3840] | 6590 [5490, 6650] | 1440 [1050, 5280] | 6430 [3940, 7120] | 2400 [1260, 6530] |
Median [min, max] | 6620 [6550, 6690] | 3530 [1270, 3980] | 6590 [2380, 6670] | 1440 [426, 7390] | 6430 [1440, 7810] | 2400 [426, 7810] |
n_event | ||||||
Mean (SD) | 505 (366) | 338 (218) | 357 (229) | 171 (156) | 144 (55.6) | 220 (193) |
Median [Q1, Q3] | 505 [376, 635] | 323 [312, 355] | 290 [211, 436] | 100 [73.5, 260] | 121 [112, 164] | 125 [80.5, 331] |
Median [min, max] | 505 [246, 764] | 323 [44.0, 658] | 290 [168, 680] | 100 [34.0, 696] | 121 [103, 207] | 125 [34.0, 764] |
FI_final | ||||||
Mean (SD) | 62.5 (37.5) | 32.6 (20.4) | 28.0 (10.1) | 38.9 (38.2) | 33.0 (13.1) | 37.9 (33.4) |
Median [Q1, Q3] | 62.5 [49.3, 75.8] | 30.0 [26.0, 33.0] | 24.0 [22.5, 29.5] | 23.5 [17.0, 44.3] | 39.0 [28.5, 40.5] | 25.5 [17.8, 42.3] |
Median [min, max] | 62.5 [36.0, 89.0] | 30.0 [9.00, 65.0] | 24.0 [21.0, 43.0] | 23.5 [11.0, 171] | 39.0 [18.0, 42.0] | 25.5 [9.00, 171] |
FQ_final | ||||||
Mean (SD) | 0.00949 (0.00580) | 0.0112 (0.00526) | 0.00593 (0.00343) | 0.0196 (0.0177) | 0.00800 (0.00395) | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.00949 [0.00743, 0.0115] | 0.00754 [0.00736, 0.0169] | 0.00502 [0.00338, 0.00757] | 0.0174 [0.00785, 0.0258] | 0.00653 [0.00576, 0.00951] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.00949 [0.00538, 0.0136] | 0.00754 [0.00711, 0.0169] | 0.00502 [0.00315, 0.0105] | 0.0174 [0.00230, 0.0966] | 0.00653 [0.00499, 0.0125] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | ||||||
0 | 0 (0%) | 2 (40.0%) | 0 (0%) | 4 (13.3%) | 0 (0%) | 6 (13.6%) |
1 | 2 (100%) | 3 (60.0%) | 4 (100%) | 13 (43.3%) | 1 (33.3%) | 23 (52.3%) |
Missing | 0 (0%) | 0 (0%) | 0 (0%) | 13 (43.3%) | 2 (66.7%) | 15 (34.1%) |
kruskal.test(FI_final ~ fx_code2, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by fx_code2
## Kruskal-Wallis chi-squared = 1.8727, df = 4, p-value = 0.7592
kruskal.test(FQ_final ~ fx_code2, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by fx_code2
## Kruskal-Wallis chi-squared = 9.4802, df = 4, p-value = 0.05016
Box plots
p1 = ggplot(data = p_sig, aes(y = FI_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Fracture sites", y = "Fragility index")
p2 = ggplot(data = p_sig, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Fracture sites", y = "Fragility quotient")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by fracture sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code1), data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Ibandronate (N=1) |
Risedronate (N=1) |
Minodronate (N=1) |
Zoledronate (N=6) |
Teriparatide (N=9) |
Abaloparatide (N=2) |
Romosozumab (N=13) |
Denosumab (N=3) |
Strontium_ranelate (N=7) |
Calcium_VitD (N=1) |
Overall (N=44) |
|
---|---|---|---|---|---|---|---|---|---|---|---|
no_rand | |||||||||||
Mean (SD) | NA | NA | NA | 6780 (2340) | 1090 (354) | 1650 (0) | 5760 (1600) | 7870 (0) | 1700 (354) | NA | 3900 (2800) |
Median [Q1, Q3] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 7740 [7740, 7740] | 1100 [1090, 1360] | 1650 [1650, 1650] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 1650] | 3270 [3270, 3270] | 2840 [1640, 7180] |
Median [min, max] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 7740 [2000, 7740] | 1100 [549, 1640] | 1650 [1650, 1650] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1220, 2420] | 3270 [3270, 3270] | 2840 [549, 7870] |
active_sample | |||||||||||
Mean (SD) | NA | NA | NA | 5470 (1770) | 883 (306) | 1330 (95.5) | 5360 (1510) | 7530 (240) | 1500 (421) | NA | 3460 (2540) |
Median [Q1, Q3] | 1950 [1950, 1950] | 1330 [1330, 1330] | 544 [544, 544] | 6050 [5680, 6500] | 892 [882, 1050] | 1330 [1300, 1370] | 6640 [3840, 6650] | 7390 [7390, 7600] | 1440 [1300, 1440] | 2380 [2380, 2380] | 2400 [1260, 6530] |
Median [min, max] | 1950 [1950, 1950] | 1330 [1330, 1330] | 544 [544, 544] | 6050 [1950, 6550] | 892 [426, 1430] | 1330 [1270, 1400] | 6640 [3530, 6910] | 7390 [7390, 7810] | 1440 [1150, 2420] | 2380 [2380, 2380] | 2400 [426, 7810] |
n_event | |||||||||||
Mean (SD) | NA | NA | NA | 389 (287) | 64.8 (25.0) | 39.0 (7.07) | 245 (160) | 184 (145) | 334 (182) | NA | 220 (193) |
Median [Q1, Q3] | 110 [110, 110] | 58.0 [58.0, 58.0] | 100 [100, 100] | 357 [155, 611] | 51.0 [46.0, 86.0] | 39.0 [36.5, 41.5] | 225 [106, 323] | 121 [102, 236] | 330 [234, 360] | 355 [355, 355] | 125 [80.5, 331] |
Median [min, max] | 110 [110, 110] | 58.0 [58.0, 58.0] | 100 [100, 100] | 357 [73.0, 764] | 51.0 [36.0, 100] | 39.0 [34.0, 44.0] | 225 [75.0, 658] | 121 [82.0, 350] | 330 [128, 696] | 355 [355, 355] | 125 [34.0, 764] |
FI_final | |||||||||||
Mean (SD) | NA | NA | NA | 69.3 (53.8) | 17.1 (5.21) | 11.0 (2.83) | 38.3 (16.9) | 64.3 (63.9) | 44.7 (32.4) | NA | 37.9 (33.4) |
Median [Q1, Q3] | 15.0 [15.0, 15.0] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 42.5 [39.0, 77.5] | 17.0 [13.0, 22.0] | 11.0 [10.0, 12.0] | 36.0 [26.0, 42.0] | 39.0 [28.0, 88.0] | 45.0 [21.0, 48.5] | 25.0 [25.0, 25.0] | 25.5 [17.8, 42.3] |
Median [min, max] | 15.0 [15.0, 15.0] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 42.5 [33.0, 171] | 17.0 [11.0, 25.0] | 11.0 [9.00, 13.0] | 36.0 [21.0, 77.0] | 39.0 [17.0, 137] | 45.0 [18.0, 111] | 25.0 [25.0, 25.0] | 25.5 [9.00, 171] |
FQ_final | |||||||||||
Mean (SD) | NA | NA | NA | 0.0134 (0.00928) | 0.0212 (0.00726) | 0.00819 (0.00153) | 0.00820 (0.00525) | 0.00861 (0.00870) | 0.0325 (0.0296) | NA | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.00768 [0.00768, 0.00768] | 0.00828 [0.00828, 0.00828] | 0.0368 [0.0368, 0.0368] | 0.0101 [0.00661, 0.0161] | 0.0247 [0.0162, 0.0258] | 0.00819 [0.00765, 0.00874] | 0.00601 [0.00391, 0.0115] | 0.00499 [0.00365, 0.0118] | 0.0188 [0.0162, 0.0336] | 0.0105 [0.0105, 0.0105] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.00768 [0.00768, 0.00768] | 0.00828 [0.00828, 0.00828] | 0.0368 [0.0368, 0.0368] | 0.0101 [0.00653, 0.0301] | 0.0247 [0.00770, 0.0288] | 0.00819 [0.00711, 0.00928] | 0.00601 [0.00315, 0.0188] | 0.00499 [0.00230, 0.0185] | 0.0188 [0.0125, 0.0966] | 0.0105 [0.0105, 0.0105] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||||||
0 | 0 (0%) | 0 (0%) | 0 (0%) | 1 (16.7%) | 2 (22.2%) | 0 (0%) | 2 (15.4%) | 0 (0%) | 1 (14.3%) | 0 (0%) | 6 (13.6%) |
1 | 0 (0%) | 1 (100%) | 1 (100%) | 5 (83.3%) | 1 (11.1%) | 2 (100%) | 11 (84.6%) | 0 (0%) | 1 (14.3%) | 1 (100%) | 23 (52.3%) |
Missing | 1 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | 6 (66.7%) | 0 (0%) | 0 (0%) | 3 (100%) | 5 (71.4%) | 0 (0%) | 15 (34.1%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code2), data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Bisphosphonates (N=9) |
PTH analog (N=11) |
Romosozumab (N=13) |
Denosumab (N=3) |
Strontium_ranelate (N=7) |
Calcium_VitD (N=1) |
Overall (N=44) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 5000 (3270) | 1190 (387) | 5760 (1600) | 7870 (0) | 1700 (354) | NA | 3900 (2800) |
Median [Q1, Q3] | 7740 [1960, 7740] | 1100 [1090, 1500] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 1650] | 3270 [3270, 3270] | 2840 [1640, 7180] |
Median [min, max] | 7740 [704, 7740] | 1100 [549, 1650] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1220, 2420] | 3270 [3270, 3270] | 2840 [549, 7870] |
active_sample | |||||||
Mean (SD) | 4070 (2550) | 965 (330) | 5360 (1510) | 7530 (240) | 1500 (421) | NA | 3460 (2540) |
Median [Q1, Q3] | 5680 [1950, 6430] | 892 [882, 1160] | 6640 [3840, 6650] | 7390 [7390, 7600] | 1440 [1300, 1440] | 2380 [2380, 2380] | 2400 [1260, 6530] |
Median [min, max] | 5680 [544, 6550] | 892 [426, 1430] | 6640 [3530, 6910] | 7390 [7390, 7810] | 1440 [1150, 2420] | 2380 [2380, 2380] | 2400 [426, 7810] |
n_event | |||||||
Mean (SD) | 289 (273) | 60.1 (24.7) | 245 (160) | 184 (145) | 334 (182) | NA | 220 (193) |
Median [Q1, Q3] | 110 [100, 402] | 48.0 [42.5, 84.5] | 225 [106, 323] | 121 [102, 236] | 330 [234, 360] | 355 [355, 355] | 125 [80.5, 331] |
Median [min, max] | 110 [58.0, 764] | 48.0 [34.0, 100] | 225 [75.0, 658] | 121 [82.0, 350] | 330 [128, 696] | 355 [355, 355] | 125 [34.0, 764] |
FI_final | |||||||
Mean (SD) | 51.3 (50.4) | 16.0 (5.35) | 38.3 (16.9) | 64.3 (63.9) | 44.7 (32.4) | NA | 37.9 (33.4) |
Median [Q1, Q3] | 38.0 [20.0, 43.0] | 15.0 [12.0, 19.5] | 36.0 [26.0, 42.0] | 39.0 [28.0, 88.0] | 45.0 [21.0, 48.5] | 25.0 [25.0, 25.0] | 25.5 [17.8, 42.3] |
Median [min, max] | 38.0 [11.0, 171] | 15.0 [9.00, 25.0] | 36.0 [21.0, 77.0] | 39.0 [17.0, 137] | 45.0 [18.0, 111] | 25.0 [25.0, 25.0] | 25.5 [9.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.0148 (0.0113) | 0.0188 (0.00838) | 0.00820 (0.00525) | 0.00861 (0.00870) | 0.0325 (0.0296) | NA | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.00828 [0.00670, 0.0169] | 0.0193 [0.0118, 0.0258] | 0.00601 [0.00391, 0.0115] | 0.00499 [0.00365, 0.0118] | 0.0188 [0.0162, 0.0336] | 0.0105 [0.0105, 0.0105] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.00828 [0.00653, 0.0368] | 0.0193 [0.00711, 0.0288] | 0.00601 [0.00315, 0.0188] | 0.00499 [0.00230, 0.0185] | 0.0188 [0.0125, 0.0966] | 0.0105 [0.0105, 0.0105] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 1 (11.1%) | 2 (18.2%) | 2 (15.4%) | 0 (0%) | 1 (14.3%) | 0 (0%) | 6 (13.6%) |
1 | 7 (77.8%) | 3 (27.3%) | 11 (84.6%) | 0 (0%) | 1 (14.3%) | 1 (100%) | 23 (52.3%) |
Missing | 1 (11.1%) | 6 (54.5%) | 0 (0%) | 3 (100%) | 5 (71.4%) | 0 (0%) | 15 (34.1%) |
kruskal.test(FI_final ~ interv_code2, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by interv_code2
## Kruskal-Wallis chi-squared = 16.156, df = 5, p-value = 0.006412
kruskal.test(FQ_final ~ interv_code2, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by interv_code2
## Kruskal-Wallis chi-squared = 17.135, df = 5, p-value = 0.00425
Box plots
p1 = ggplot(data = p_sig, aes(y = FI_final, x = as.factor(interv_code2), fill = as.factor(interv_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Pharmacological interventions", y = "Fragility index")
p2 = ggplot(data = p_sig, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Pharmacological interventions", y = "Fragility quotine")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by intervention sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(timing), data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
2 (N=5) |
3 (N=6) |
4 (N=17) |
5 (N=14) |
6 (N=1) |
8 (N=1) |
Overall (N=44) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 4350 (2770) | 1550 (993) | 3770 (2600) | 5200 (3110) | NA | NA | 3900 (2800) |
Median [Q1, Q3] | 4090 [1650, 7180] | 1640 [843, 1650] | 4090 [1100, 7180] | 7740 [1730, 7740] | 1650 [1650, 1650] | 2000 [2000, 2000] | 2840 [1640, 7180] |
Median [min, max] | 4090 [1630, 7180] | 1640 [549, 3270] | 4090 [704, 7180] | 7740 [1220, 7870] | 1650 [1650, 1650] | 2000 [2000, 2000] | 2840 [549, 7870] |
active_sample | |||||||
Mean (SD) | 4050 (2710) | 1220 (726) | 3430 (2480) | 4530 (2660) | NA | NA | 3460 (2540) |
Median [Q1, Q3] | 3980 [1390, 6640] | 1330 [655, 1420] | 3660 [892, 6650] | 5680 [1570, 6540] | 1150 [1150, 1150] | 1950 [1950, 1950] | 2400 [1260, 6530] |
Median [min, max] | 3980 [1330, 6910] | 1330 [426, 2380] | 3660 [544, 6690] | 5680 [1220, 7810] | 1150 [1150, 1150] | 1950 [1950, 1950] | 2400 [426, 7810] |
n_event | |||||||
Mean (SD) | 132 (110) | 93.0 (128) | 192 (156) | 300 (215) | NA | NA | 220 (193) |
Median [Q1, Q3] | 76.0 [75.0, 128] | 42.5 [37.3, 47.0] | 106 [92.0, 246] | 296 [113, 378] | 696 [696, 696] | 312 [312, 312] | 125 [80.5, 331] |
Median [min, max] | 76.0 [58.0, 323] | 42.5 [34.0, 355] | 106 [46.0, 658] | 296 [73.0, 764] | 696 [696, 696] | 312 [312, 312] | 125 [34.0, 764] |
FI_final | |||||||
Mean (SD) | 22.2 (7.46) | 13.7 (5.75) | 32.7 (17.6) | 55.3 (46.3) | NA | NA | 37.9 (33.4) |
Median [Q1, Q3] | 24.0 [19.0, 27.0] | 12.0 [11.0, 13.0] | 25.0 [21.0, 40.0] | 42.5 [26.8, 50.3] | 111 [111, 111] | 33.0 [33.0, 33.0] | 25.5 [17.8, 42.3] |
Median [min, max] | 24.0 [11.0, 30.0] | 12.0 [9.00, 25.0] | 25.0 [15.0, 77.0] | 42.5 [15.0, 171] | 111 [111, 111] | 33.0 [33.0, 33.0] | 25.5 [9.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.00741 (0.00410) | 0.0149 (0.00976) | 0.0151 (0.00970) | 0.0153 (0.0108) | NA | NA | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.00754 [0.00391, 0.00828] | 0.00990 [0.00810, 0.0220] | 0.0143 [0.00601, 0.0193] | 0.0130 [0.00661, 0.0187] | 0.0966 [0.0966, 0.0966] | 0.0169 [0.0169, 0.0169] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.00754 [0.00361, 0.0137] | 0.00990 [0.00711, 0.0288] | 0.0143 [0.00315, 0.0368] | 0.0130 [0.00230, 0.0361] | 0.0966 [0.0966, 0.0966] | 0.0169 [0.0169, 0.0169] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 1 (20.0%) | 0 (0%) | 3 (17.6%) | 1 (7.1%) | 0 (0%) | 1 (100%) | 6 (13.6%) |
1 | 3 (60.0%) | 4 (66.7%) | 10 (58.8%) | 6 (42.9%) | 0 (0%) | 0 (0%) | 23 (52.3%) |
Missing | 1 (20.0%) | 2 (33.3%) | 4 (23.5%) | 7 (50.0%) | 1 (100%) | 0 (0%) | 15 (34.1%) |
kruskal.test(FI_final ~ timing, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by timing
## Kruskal-Wallis chi-squared = 16.328, df = 5, p-value = 0.005967
kruskal.test(FQ_final ~ timing, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by timing
## Kruskal-Wallis chi-squared = 5.6791, df = 5, p-value = 0.3387
Box plots
p1 = ggplot(data = p_sig, aes(y = FI_final, x = as.factor(timing), fill = as.factor(timing))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(journal_code2), data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
NEJM (N=31) |
Lancet (N=2) |
JAMA (N=4) |
JBMR (N=1) |
JCEM (N=4) |
Other (N=2) |
Overall (N=44) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 4950 (2700) | 1360 (0) | 1640 (8.02) | NA | 1190 (874) | 1180 (668) | 3900 (2800) |
Median [Q1, Q3] | 4090 [1820, 7460] | 1360 [1360, 1360] | 1640 [1640, 1650] | 1960 [1960, 1960] | 901 [571, 1520] | 1180 [940, 1410] | 2840 [1640, 7180] |
Median [min, max] | 4090 [1090, 7870] | 1360 [1360, 1360] | 1640 [1630, 1650] | 1960 [1960, 1960] | 901 [549, 2420] | 1180 [704, 1650] | 2840 [549, 7870] |
active_sample | |||||||
Mean (SD) | 4410 (2450) | 1050 (0) | 1360 (73.1) | NA | 1130 (934) | 847 (428) | 3460 (2540) |
Median [Q1, Q3] | 4090 [1700, 6650] | 1050 [1050, 1050] | 1370 [1310, 1410] | 1950 [1950, 1950] | 838 [445, 1520] | 847 [695, 998] | 2400 [1260, 6530] |
Median [min, max] | 4090 [882, 7810] | 1050 [1050, 1050] | 1370 [1270, 1430] | 1950 [1950, 1950] | 838 [426, 2420] | 847 [544, 1150] | 2400 [426, 7810] |
n_event | |||||||
Mean (SD) | 250 (190) | 96.0 (5.66) | 43.0 (10.9) | NA | 170 (148) | 398 (421) | 220 (193) |
Median [Q1, Q3] | 221 [94.5, 353] | 96.0 [94.0, 98.0] | 40.0 [35.5, 47.5] | 110 [110, 110] | 155 [46.3, 278] | 398 [249, 547] | 125 [80.5, 331] |
Median [min, max] | 221 [46.0, 764] | 96.0 [92.0, 100] | 40.0 [34.0, 58.0] | 110 [110, 110] | 155 [41.0, 330] | 398 [100, 696] | 125 [34.0, 764] |
FI_final | |||||||
Mean (SD) | 43.6 (34.3) | 16.0 (1.41) | 11.0 (1.63) | NA | 23.0 (15.6) | 65.5 (64.3) | 37.9 (33.4) |
Median [Q1, Q3] | 36.0 [23.5, 44.0] | 16.0 [15.5, 16.5] | 11.0 [10.5, 11.5] | 15.0 [15.0, 15.0] | 18.0 [12.5, 28.5] | 65.5 [42.8, 88.3] | 25.5 [17.8, 42.3] |
Median [min, max] | 36.0 [17.0, 171] | 16.0 [15.0, 17.0] | 11.0 [9.00, 13.0] | 15.0 [15.0, 15.0] | 18.0 [11.0, 45.0] | 65.5 [20.0, 111] | 25.5 [9.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.0134 (0.00951) | 0.0153 (0.00135) | 0.00809 (0.000924) | NA | 0.0230 (0.00512) | 0.0667 (0.0423) | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.0115 [0.00594, 0.0187] | 0.0153 [0.0148, 0.0157] | 0.00799 [0.00755, 0.00853] | 0.00768 [0.00768, 0.00768] | 0.0223 [0.0187, 0.0266] | 0.0667 [0.0517, 0.0816] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.0115 [0.00230, 0.0361] | 0.0153 [0.0143, 0.0162] | 0.00799 [0.00711, 0.00928] | 0.00768 [0.00768, 0.00768] | 0.0223 [0.0186, 0.0288] | 0.0667 [0.0368, 0.0966] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 3 (9.7%) | 2 (100%) | 0 (0%) | 0 (0%) | 1 (25.0%) | 0 (0%) | 6 (13.6%) |
1 | 17 (54.8%) | 0 (0%) | 4 (100%) | 0 (0%) | 1 (25.0%) | 1 (50.0%) | 23 (52.3%) |
Missing | 11 (35.5%) | 0 (0%) | 0 (0%) | 1 (100%) | 2 (50.0%) | 1 (50.0%) | 15 (34.1%) |
kruskal.test(FI_final ~ journal_code2, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by journal_code2
## Kruskal-Wallis chi-squared = 18.002, df = 5, p-value = 0.002943
kruskal.test(FQ_final ~ journal_code2, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by journal_code2
## Kruskal-Wallis chi-squared = 11.179, df = 5, p-value = 0.04794
Box plots
p1 = ggplot(data = p_sig, aes(y = FI_final, x = as.factor(timing), fill = as.factor(journal_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | sex, data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Both (N=2) |
Women (N=42) |
Overall (N=44) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 564 (20.5) | 4060 (2760) | 3900 (2800) |
Median [Q1, Q3] | 564 [556, 571] | 3680 [1650, 7180] | 2840 [1640, 7180] |
Median [min, max] | 564 [549, 578] | 3680 [704, 7870] | 2840 [549, 7870] |
active_sample | |||
Mean (SD) | 439 (17.7) | 3610 (2510) | 3460 (2540) |
Median [Q1, Q3] | 439 [432, 445] | 2980 [1340, 6540] | 2400 [1260, 6530] |
Median [min, max] | 439 [426, 451] | 2980 [544, 7810] | 2400 [426, 7810] |
n_event | |||
Mean (SD) | 44.5 (4.95) | 229 (193) | 220 (193) |
Median [Q1, Q3] | 44.5 [42.8, 46.3] | 148 [83.8, 332] | 125 [80.5, 331] |
Median [min, max] | 44.5 [41.0, 48.0] | 148 [34.0, 764] | 125 [34.0, 764] |
FI_final | |||
Mean (SD) | 12.0 (1.41) | 39.1 (33.7) | 37.9 (33.4) |
Median [Q1, Q3] | 12.0 [11.5, 12.5] | 26.5 [19.3, 42.8] | 25.5 [17.8, 42.3] |
Median [min, max] | 12.0 [11.0, 13.0] | 26.5 [9.00, 171] | 25.5 [9.00, 171] |
FQ_final | |||
Mean (SD) | 0.0273 (0.00212) | 0.0156 (0.0158) | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.0273 [0.0266, 0.0281] | 0.0120 [0.00661, 0.0187] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.0273 [0.0258, 0.0288] | 0.0120 [0.00230, 0.0966] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |||
0 | 0 (0%) | 6 (14.3%) | 6 (13.6%) |
1 | 0 (0%) | 23 (54.8%) | 23 (52.3%) |
Missing | 2 (100%) | 13 (31.0%) | 15 (34.1%) |
kruskal.test(FI_final ~ sex, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by sex
## Kruskal-Wallis chi-squared = 4.2347, df = 1, p-value = 0.0396
kruskal.test(FQ_final ~ sex, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by sex
## Kruskal-Wallis chi-squared = 3.0508, df = 1, p-value = 0.0807
Box plots
p1 = ggplot(data = p_sig, aes(y = FI_final, x = as.factor(sex), fill = as.factor(sex))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by sex", x = "Sex", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | placebo, data = p_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Active (N=11) |
Placebo (N=33) |
Overall (N=44) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 2930 (1340) | 4230 (3080) | 3900 (2800) |
Median [Q1, Q3] | 4090 [1640, 4090] | 2420 [1630, 7180] | 2840 [1640, 7180] |
Median [min, max] | 4090 [1360, 4090] | 2420 [549, 7870] | 2840 [549, 7870] |
active_sample | |||
Mean (SD) | 2630 (1350) | 3740 (2790) | 3460 (2540) |
Median [Q1, Q3] | 3530 [1330, 3750] | 2380 [1220, 6650] | 2400 [1260, 6530] |
Median [min, max] | 3530 [1050, 4090] | 2380 [426, 7810] | 2400 [426, 7810] |
n_event | |||
Mean (SD) | 226 (193) | 218 (195) | 220 (193) |
Median [Q1, Q3] | 221 [68.0, 339] | 121 [82.0, 330] | 125 [80.5, 331] |
Median [min, max] | 221 [34.0, 658] | 121 [41.0, 764] | 125 [34.0, 764] |
FI_final | |||
Mean (SD) | 32.1 (23.1) | 39.8 (36.3) | 37.9 (33.4) |
Median [Q1, Q3] | 26.0 [14.0, 45.0] | 25.0 [20.0, 42.0] | 25.5 [17.8, 42.3] |
Median [min, max] | 26.0 [9.00, 77.0] | 25.0 [11.0, 171] | 25.5 [9.00, 171] |
FQ_final | |||
Mean (SD) | 0.0118 (0.00431) | 0.0176 (0.0177) | 0.0162 (0.0156) |
Median [Q1, Q3] | 0.0115 [0.00762, 0.0153] | 0.0136 [0.00601, 0.0258] | 0.0128 [0.00667, 0.0189] |
Median [min, max] | 0.0115 [0.00711, 0.0188] | 0.0136 [0.00230, 0.0966] | 0.0128 [0.00230, 0.0966] |
as.factor(missing_fi) | |||
0 | 4 (36.4%) | 2 (6.1%) | 6 (13.6%) |
1 | 7 (63.6%) | 16 (48.5%) | 23 (52.3%) |
Missing | 0 (0%) | 15 (45.5%) | 15 (34.1%) |
kruskal.test(FI_final ~ placebo, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by placebo
## Kruskal-Wallis chi-squared = 0.42368, df = 1, p-value = 0.5151
kruskal.test(FQ_final ~ placebo, data = p_sig)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by placebo
## Kruskal-Wallis chi-squared = 0.097153, df = 1, p-value = 0.7553
Box plots
p1 = ggplot(data = p_sig, aes(y = FI_final, x = as.factor(control), fill = as.factor(control))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by types of control", x = "Types of control", y = "Fragility index")
p1
Set-up data
ori_st = subset(fi_sig, sen_analysis == 0)
# Comparison
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(sen_analysis), data = fi_sig, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
0 (N=112) |
1 (N=17) |
Overall (N=129) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 3240 (2450) | 2110 (1220) | 3090 (2360) |
Median [Q1, Q3] | 1980 [1360, 4430] | 1650 [1200, 3270] | 1960 [1360, 4090] |
Median [min, max] | 1980 [450, 7870] | 1650 [549, 4090] | 1960 [450, 7870] |
active_sample | |||
Mean (SD) | 2820 (2230) | 1880 (1140) | 2700 (2140) |
Median [Q1, Q3] | 1860 [1130, 4020] | 1440 [1110, 2420] | 1860 [1130, 3700] |
Median [min, max] | 1860 [339, 7810] | 1440 [426, 4090] | 1860 [339, 7810] |
n_event | |||
Mean (SD) | 172 (181) | 186 (133) | 174 (176) |
Median [Q1, Q3] | 95.5 [52.5, 227] | 190 [41.0, 330] | 101 [51.0, 246] |
Median [min, max] | 95.5 [10.0, 764] | 190 [19.0, 375] | 101 [10.0, 764] |
FI_final | |||
Mean (SD) | 17.4 (25.5) | 18.1 (20.5) | 17.5 (24.8) |
Median [Q1, Q3] | 9.00 [4.00, 21.3] | 11.0 [4.00, 23.0] | 9.00 [4.00, 22.0] |
Median [min, max] | 9.00 [1.00, 171] | 11.0 [1.00, 77.0] | 9.00 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.00782 (0.0113) | 0.0104 (0.00932) | 0.00815 (0.0111) |
Median [Q1, Q3] | 0.00480 [0.00219, 0.00852] | 0.00609 [0.00337, 0.0186] | 0.00499 [0.00230, 0.00928] |
Median [min, max] | 0.00480 [0.000151, 0.0966] | 0.00609 [0.000946, 0.0312] | 0.00499 [0.000151, 0.0966] |
as.factor(missing_fi) | |||
0 | 8 (7.1%) | 2 (11.8%) | 10 (7.8%) |
1 | 64 (57.1%) | 9 (52.9%) | 73 (56.6%) |
Missing | 40 (35.7%) | 6 (35.3%) | 46 (35.7%) |
fi_sig$sensitive[fi_sig$sen_analysis == 1] = "Sensitivity/Posthoc"
fi_sig$sensitive[fi_sig$sen_analysis == 0] = "Original"
createTable(compareGroups(sensitive ~ no_rand + active_sample + n_event + FI_final + FQ_final + missing_fi, data = fi_sig, method = c(no_rand = 2, active_sample = 2, n_event = 2, FI_final = 2, FQ_final = 2)))
## Warning in chisq.test(xx, correct = FALSE): Chi-squared approximation may be
## incorrect
##
## --------Summary descriptives table by 'sensitive'---------
##
## ____________________________________________________________
## Original Sensitivity/Posthoc p.overall
## N=112 N=17
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
## no_rand 1982 [1360;4432] 1649 [1199;3270] 0.159
## active_sample 1861 [1127;4017] 1442 [1112;2416] 0.338
## n_event 95.5 [52.5;226] 190 [41.0;330] 0.442
## FI_final 9.00 [4.00;21.2] 11.0 [4.00;23.0] 0.725
## FQ_final 0.00 [0.00;0.01] 0.01 [0.00;0.02] 0.189
## missing_fi: 0.615
## 0 8 (11.1%) 2 (18.2%)
## 1 64 (88.9%) 9 (81.8%)
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
# Description
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi), data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Overall (N=112) |
|
---|---|
no_rand | |
Mean (SD) | 3240 (2450) |
Median [Q1, Q3] | 1980 [1360, 4430] |
Median [min, max] | 1980 [450, 7870] |
active_sample | |
Mean (SD) | 2820 (2230) |
Median [Q1, Q3] | 1860 [1130, 4020] |
Median [min, max] | 1860 [339, 7810] |
n_event | |
Mean (SD) | 172 (181) |
Median [Q1, Q3] | 95.5 [52.5, 227] |
Median [min, max] | 95.5 [10.0, 764] |
FI_final | |
Mean (SD) | 17.4 (25.5) |
Median [Q1, Q3] | 9.00 [4.00, 21.3] |
Median [min, max] | 9.00 [1.00, 171] |
FQ_final | |
Mean (SD) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | |
0 | 8 (7.1%) |
1 | 64 (57.1%) |
Missing | 40 (35.7%) |
Relationship between sample size/active sample/no. events and FI
p = ggplot(data = ori_st, aes(x = no_rand, y = FI_final))
p1 = p + geom_point() + geom_smooth() + labs(x = "Number of participants at randomisation", y = "Fragility index") + theme_bw()
p0 = ggplot(data = ori_st, aes(x = active_sample, y = FI_final))
p2 = p0 + geom_point() + geom_smooth() + labs(x = "Number of participants included in the analyses", y = "Fragility index") + theme_bw()
p.0 = ggplot(data = ori_st, aes(x = n_event, y = FI_final))
p3 = p.0 + geom_point() + geom_smooth() + labs(x = "Number of participants with fracture events", y = "Fragility index") + theme_bw()
#grid.arrange(p1, p2, p3, nrow = 1)
grid.arrange(p1, p3, nrow = 1, top = textGrob("Relationship between Number of participants and Fragility index", gp = gpar(fontsize = 20, font = 3)))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code1), data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any_fx (N=3) |
Clin_fx (N=11) |
OFx (N=4) |
MOF (N=4) |
Dif_comb (N=1) |
NonVert_fx (N=17) |
Vert_fx (N=54) |
ClinVert_fx (N=10) |
Hip (N=6) |
Forearm (N=2) |
Overall (N=112) |
|
---|---|---|---|---|---|---|---|---|---|---|---|
no_rand | |||||||||||
Mean (SD) | 1850 (423) | 3860 (2570) | 2780 (1580) | 5020 (2680) | NA | 4010 (2510) | 2800 (2440) | 3160 (2590) | 4510 (2680) | 1740 (374) | 3240 (2450) |
Median [Q1, Q3] | 1770 [1620, 2030] | 4090 [1820, 5810] | 3050 [1730, 4090] | 5640 [3480, 7180] | 2690 [2690, 2690] | 4090 [1630, 5090] | 1630 [1200, 4090] | 1980 [1730, 3600] | 3680 [2540, 6830] | 1740 [1600, 1870] | 1980 [1360, 4430] |
Median [min, max] | 1770 [1470, 2300] | 4090 [578, 7740] | 3050 [930, 4090] | 5640 [1650, 7180] | 2690 [2690, 2690] | 4090 [450, 7870] | 1630 [578, 7870] | 1980 [578, 7870] | 3680 [1770, 7870] | 1740 [1470, 2000] | 1980 [450, 7870] |
active_sample | |||||||||||
Mean (SD) | 1830 (439) | 3340 (2450) | 2670 (1490) | 4320 (2410) | NA | 3550 (2310) | 2440 (2200) | 2660 (2510) | 3700 (2260) | 1160 (810) | 2820 (2230) |
Median [Q1, Q3] | 1770 [1600, 2030] | 3640 [1190, 5430] | 2890 [1690, 3870] | 4820 [2970, 6170] | 2690 [2690, 2690] | 3610 [1630, 4940] | 1350 [1050, 3580] | 1910 [1210, 2920] | 2810 [1900, 5660] | 1160 [876, 1450] | 1860 [1130, 4020] |
Median [min, max] | 1770 [1430, 2300] | 3640 [451, 6690] | 2890 [930, 3980] | 4820 [1270, 6380] | 2690 [2690, 2690] | 3610 [389, 6670] | 1350 [451, 7390] | 1910 [339, 7810] | 2810 [1770, 6600] | 1160 [590, 1740] | 1860 [339, 7810] |
n_event | |||||||||||
Mean (SD) | 354 (290) | 275 (215) | 334 (251) | 170 (135) | NA | 287 (222) | 114 (144) | 81.1 (51.2) | 159 (106) | 111 (16.3) | 172 (181) |
Median [Q1, Q3] | 475 [249, 519] | 231 [120, 393] | 318 [245, 407] | 140 [86.8, 222] | 147 [147, 147] | 225 [85.0, 471] | 72.0 [36.3, 109] | 63.0 [60.5, 93.8] | 124 [78.5, 232] | 111 [105, 116] | 95.5 [52.5, 227] |
Median [min, max] | 475 [23.0, 563] | 231 [34.0, 764] | 318 [44.0, 658] | 140 [44.0, 355] | 147 [147, 147] | 225 [37.0, 680] | 72.0 [10.0, 696] | 63.0 [21.0, 204] | 124 [58.0, 315] | 111 [99.0, 122] | 95.5 [10.0, 764] |
FI_final | |||||||||||
Mean (SD) | 16.7 (11.9) | 19.2 (25.3) | 32.3 (26.2) | 13.8 (9.14) | NA | 9.76 (11.5) | 21.3 (32.2) | 12.7 (15.0) | 7.83 (6.05) | 5.50 (4.95) | 17.4 (25.5) |
Median [Q1, Q3] | 22.0 [12.5, 23.5] | 8.00 [6.00, 20.5] | 31.5 [22.8, 41.0] | 12.0 [8.00, 17.8] | 4.00 [4.00, 4.00] | 5.00 [2.00, 17.0] | 11.0 [4.00, 22.8] | 6.50 [4.00, 11.5] | 8.00 [2.75, 11.8] | 5.50 [3.75, 7.25] | 9.00 [4.00, 21.3] |
Median [min, max] | 22.0 [3.00, 25.0] | 8.00 [4.00, 89.0] | 31.5 [1.00, 65.0] | 12.0 [5.00, 26.0] | 4.00 [4.00, 4.00] | 5.00 [1.00, 43.0] | 11.0 [1.00, 171] | 6.50 [1.00, 42.0] | 8.00 [1.00, 16.0] | 5.50 [2.00, 9.00] | 9.00 [1.00, 171] |
FQ_final | |||||||||||
Mean (SD) | 0.00847 (0.00558) | 0.00668 (0.00469) | 0.0106 (0.00776) | 0.00443 (0.00331) | NA | 0.00282 (0.00247) | 0.0110 (0.0151) | 0.00448 (0.00254) | 0.00290 (0.00292) | 0.00429 (0.00127) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.0109 [0.00647, 0.0117] | 0.00714 [0.00236, 0.00898] | 0.0122 [0.00592, 0.0169] | 0.00478 [0.00204, 0.00717] | 0.00149 [0.00149, 0.00149] | 0.00239 [0.00101, 0.00346] | 0.00634 [0.00299, 0.0136] | 0.00383 [0.00298, 0.00504] | 0.00168 [0.000801, 0.00514] | 0.00429 [0.00384, 0.00474] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.0109 [0.00209, 0.0125] | 0.00714 [0.00124, 0.0146] | 0.0122 [0.00108, 0.0169] | 0.00478 [0.000783, 0.00736] | 0.00149 [0.00149, 0.00149] | 0.00239 [0.000203, 0.00955] | 0.00634 [0.000151, 0.0966] | 0.00383 [0.00205, 0.0104] | 0.00168 [0.000303, 0.00695] | 0.00429 [0.00339, 0.00519] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | |||||||||||
0 | 0 (0%) | 1 (9.1%) | 2 (50.0%) | 0 (0%) | 0 (0%) | 1 (5.9%) | 3 (5.6%) | 0 (0%) | 0 (0%) | 1 (50.0%) | 8 (7.1%) |
1 | 1 (33.3%) | 8 (72.7%) | 2 (50.0%) | 4 (100%) | 1 (100%) | 9 (52.9%) | 31 (57.4%) | 4 (40.0%) | 3 (50.0%) | 1 (50.0%) | 64 (57.1%) |
Missing | 2 (66.7%) | 2 (18.2%) | 0 (0%) | 0 (0%) | 0 (0%) | 7 (41.2%) | 20 (37.0%) | 6 (60.0%) | 3 (50.0%) | 0 (0%) | 40 (35.7%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code2), data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any (N=14) |
Osteoporotic (N=9) |
Non-Vertebrae (N=17) |
Vertebrae (N=54) |
Clinical Vertebrae (N=10) |
Hip (N=6) |
Forearm (N=2) |
Overall (N=112) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | 3430 (2410) | 3770 (2250) | 4010 (2510) | 2800 (2440) | 3160 (2590) | 4510 (2680) | 1740 (374) | 3240 (2450) |
Median [Q1, Q3] | 2220 [1680, 4350] | 4090 [2000, 4090] | 4090 [1630, 5090] | 1630 [1200, 4090] | 1980 [1730, 3600] | 3680 [2540, 6830] | 1740 [1600, 1870] | 1980 [1360, 4430] |
Median [min, max] | 2220 [578, 7740] | 4090 [930, 7180] | 4090 [450, 7870] | 1630 [578, 7870] | 1980 [578, 7870] | 3680 [1770, 7870] | 1740 [1470, 2000] | 1980 [450, 7870] |
active_sample | ||||||||
Mean (SD) | 3020 (2250) | 3410 (1940) | 3550 (2310) | 2440 (2200) | 2660 (2510) | 3700 (2260) | 1160 (810) | 2820 (2230) |
Median [Q1, Q3] | 2150 [1310, 4250] | 3530 [1950, 3980] | 3610 [1630, 4940] | 1350 [1050, 3580] | 1910 [1210, 2920] | 2810 [1900, 5660] | 1160 [876, 1450] | 1860 [1130, 4020] |
Median [min, max] | 2150 [451, 6690] | 3530 [930, 6380] | 3610 [389, 6670] | 1350 [451, 7390] | 1910 [339, 7810] | 2810 [1770, 6600] | 1160 [590, 1740] | 1860 [339, 7810] |
n_event | ||||||||
Mean (SD) | 292 (222) | 240 (196) | 287 (222) | 114 (144) | 81.1 (51.2) | 159 (106) | 111 (16.3) | 172 (181) |
Median [Q1, Q3] | 239 [105, 450] | 178 [101, 323] | 225 [85.0, 471] | 72.0 [36.3, 109] | 63.0 [60.5, 93.8] | 124 [78.5, 232] | 111 [105, 116] | 95.5 [52.5, 227] |
Median [min, max] | 239 [23.0, 764] | 178 [44.0, 658] | 225 [37.0, 680] | 72.0 [10.0, 696] | 63.0 [21.0, 204] | 124 [58.0, 315] | 111 [99.0, 122] | 95.5 [10.0, 764] |
FI_final | ||||||||
Mean (SD) | 18.6 (22.7) | 20.9 (20.3) | 9.76 (11.5) | 21.3 (32.2) | 12.7 (15.0) | 7.83 (6.05) | 5.50 (4.95) | 17.4 (25.5) |
Median [Q1, Q3] | 9.00 [5.50, 24.3] | 15.0 [5.00, 30.0] | 5.00 [2.00, 17.0] | 11.0 [4.00, 22.8] | 6.50 [4.00, 11.5] | 8.00 [2.75, 11.8] | 5.50 [3.75, 7.25] | 9.00 [4.00, 21.3] |
Median [min, max] | 9.00 [3.00, 89.0] | 15.0 [1.00, 65.0] | 5.00 [1.00, 43.0] | 11.0 [1.00, 171] | 6.50 [1.00, 42.0] | 8.00 [1.00, 16.0] | 5.50 [2.00, 9.00] | 9.00 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | 0.00706 (0.00472) | 0.00685 (0.00635) | 0.00282 (0.00247) | 0.0110 (0.0151) | 0.00448 (0.00254) | 0.00290 (0.00292) | 0.00429 (0.00127) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00731 [0.00235, 0.0104] | 0.00711 [0.00149, 0.00754] | 0.00239 [0.00101, 0.00346] | 0.00634 [0.00299, 0.0136] | 0.00383 [0.00298, 0.00504] | 0.00168 [0.000801, 0.00514] | 0.00429 [0.00384, 0.00474] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00731 [0.00124, 0.0146] | 0.00711 [0.000783, 0.0169] | 0.00239 [0.000203, 0.00955] | 0.00634 [0.000151, 0.0966] | 0.00383 [0.00205, 0.0104] | 0.00168 [0.000303, 0.00695] | 0.00429 [0.00339, 0.00519] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||
0 | 1 (7.1%) | 2 (22.2%) | 1 (5.9%) | 3 (5.6%) | 0 (0%) | 0 (0%) | 1 (50.0%) | 8 (7.1%) |
1 | 9 (64.3%) | 7 (77.8%) | 9 (52.9%) | 31 (57.4%) | 4 (40.0%) | 3 (50.0%) | 1 (50.0%) | 64 (57.1%) |
Missing | 4 (28.6%) | 0 (0%) | 7 (41.2%) | 20 (37.0%) | 6 (60.0%) | 3 (50.0%) | 0 (0%) | 40 (35.7%) |
kruskal.test(FI_final ~ fx_code2, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by fx_code2
## Kruskal-Wallis chi-squared = 7.5755, df = 6, p-value = 0.2709
kruskal.test(FQ_final ~ fx_code2, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by fx_code2
## Kruskal-Wallis chi-squared = 17.741, df = 6, p-value = 0.006914
Box plots
p1 = ggplot(data = ori_st, aes(y = FI_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Fracture sites", y = "Fragility index")
p2 = ggplot(data = ori_st, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Fracture sites", y = "Fragility quotient")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by fracture sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code1), data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Alendronate (N=2) |
Ibandronate (N=6) |
Risedronate (N=5) |
Minodronate (N=3) |
Zoledronate (N=19) |
Teriparatide (N=19) |
Abaloparatide (N=3) |
Romosozumab (N=26) |
Denosumab (N=9) |
Strontium_ranelate (N=9) |
Calcium_VitD (N=11) |
Overall (N=112) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
no_rand | ||||||||||||
Mean (SD) | 4430 (0) | 1960 (0) | 1490 (308) | 704 (0) | 3610 (2900) | 1080 (309) | 1650 (0) | 5520 (1570) | 5020 (3370) | 3180 (1810) | 1970 (899) | 3240 (2450) |
Median [Q1, Q3] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 2000 [1600, 7740] | 1100 [1090, 1360] | 1650 [1650, 1650] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1650, 5090] | 1770 [1470, 2490] | 1980 [1360, 4430] |
Median [min, max] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [939, 1630] | 704 [704, 704] | 2000 [1200, 7740] | 1100 [578, 1640] | 1650 [1650, 1650] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1650, 5090] | 1770 [450, 3270] | 1980 [450, 7870] |
active_sample | ||||||||||||
Mean (SD) | 4280 (211) | 1950 (0) | 1270 (317) | 575 (27.7) | 2900 (2370) | 871 (261) | 1310 (75.5) | 4970 (1540) | 4600 (3080) | 2770 (1790) | 1530 (789) | 2820 (2230) |
Median [Q1, Q3] | 4280 [4210, 4360] | 1950 [1950, 1950] | 1330 [1280, 1370] | 582 [563, 590] | 1860 [1130, 5680] | 882 [843, 1050] | 1280 [1270, 1340] | 3910 [3620, 6640] | 6600 [1350, 7390] | 1440 [1390, 4930] | 1770 [760, 2030] | 1860 [1130, 4020] |
Median [min, max] | 4280 [4130, 4430] | 1950 [1950, 1950] | 1330 [759, 1630] | 582 [544, 598] | 1860 [339, 6550] | 882 [451, 1430] | 1280 [1270, 1400] | 3910 [3240, 6910] | 6600 [1350, 7810] | 1440 [1150, 4940] | 1770 [389, 2690] | 1860 [339, 7810] |
n_event | ||||||||||||
Mean (SD) | 265 (204) | 81.5 (23.1) | 86.0 (39.3) | 79.3 (20.5) | 197 (222) | 53.4 (27.3) | 51.3 (21.9) | 203 (148) | 140 (180) | 428 (247) | 205 (180) | 172 (181) |
Median [Q1, Q3] | 265 [193, 337] | 70.5 [64.5, 101] | 68.0 [65.0, 85.0] | 79.0 [69.0, 89.5] | 99.0 [43.5, 281] | 46.0 [34.5, 84.0] | 44.0 [39.0, 60.0] | 168 [105, 253] | 69.0 [29.0, 121] | 471 [204, 671] | 147 [64.0, 289] | 95.5 [52.5, 227] |
Median [min, max] | 265 [121, 409] | 70.5 [63.0, 112] | 68.0 [58.0, 154] | 79.0 [59.0, 100] | 99.0 [13.0, 764] | 46.0 [14.0, 100] | 44.0 [34.0, 76.0] | 168 [10.0, 658] | 69.0 [15.0, 531] | 471 [66.0, 696] | 147 [37.0, 563] | 95.5 [10.0, 764] |
FI_final | ||||||||||||
Mean (SD) | 10.0 (4.24) | 8.50 (4.68) | 5.80 (4.87) | 10.0 (9.17) | 26.7 (41.3) | 9.84 (7.99) | 8.67 (4.51) | 20.8 (16.6) | 25.1 (43.7) | 26.6 (35.5) | 8.36 (8.85) | 17.4 (25.5) |
Median [Q1, Q3] | 10.0 [8.50, 11.5] | 7.50 [4.50, 12.0] | 4.00 [2.00, 11.0] | 8.00 [5.00, 14.0] | 10.0 [5.00, 35.5] | 8.00 [2.50, 16.0] | 9.00 [6.50, 11.0] | 18.0 [7.00, 29.3] | 4.00 [3.00, 17.0] | 12.0 [5.00, 29.0] | 4.00 [2.00, 13.5] | 9.00 [4.00, 21.3] |
Median [min, max] | 10.0 [7.00, 13.0] | 7.50 [4.00, 15.0] | 4.00 [1.00, 11.0] | 8.00 [2.00, 20.0] | 10.0 [1.00, 171] | 8.00 [1.00, 25.0] | 9.00 [4.00, 13.0] | 18.0 [1.00, 65.0] | 4.00 [2.00, 137] | 12.0 [1.00, 111] | 4.00 [1.00, 25.0] | 9.00 [1.00, 171] |
FQ_final | ||||||||||||
Mean (SD) | 0.00236 (0.00111) | 0.00435 (0.00240) | 0.00475 (0.00356) | 0.0180 (0.0171) | 0.00753 (0.00714) | 0.0117 (0.00946) | 0.00651 (0.00311) | 0.00451 (0.00413) | 0.00432 (0.00546) | 0.0191 (0.0311) | 0.00501 (0.00387) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00236 [0.00197, 0.00275] | 0.00384 [0.00231, 0.00615] | 0.00527 [0.00156, 0.00801] | 0.0137 [0.00855, 0.0253] | 0.00537 [0.00309, 0.00851] | 0.00887 [0.00351, 0.0177] | 0.00711 [0.00512, 0.00819] | 0.00330 [0.00140, 0.00598] | 0.00255 [0.00222, 0.00296] | 0.00795 [0.00101, 0.0137] | 0.00353 [0.00244, 0.00659] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00236 [0.00158, 0.00314] | 0.00384 [0.00205, 0.00768] | 0.00527 [0.000615, 0.00828] | 0.0137 [0.00334, 0.0368] | 0.00537 [0.000887, 0.0301] | 0.00887 [0.00114, 0.0288] | 0.00711 [0.00314, 0.00928] | 0.00330 [0.000151, 0.0169] | 0.00255 [0.000303, 0.0185] | 0.00795 [0.000203, 0.0966] | 0.00353 [0.000567, 0.0125] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||||||
0 | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 5 (26.3%) | 2 (10.5%) | 0 (0%) | 1 (3.8%) | 0 (0%) | 0 (0%) | 0 (0%) | 8 (7.1%) |
1 | 0 (0%) | 0 (0%) | 4 (80.0%) | 3 (100%) | 14 (73.7%) | 4 (21.1%) | 3 (100%) | 25 (96.2%) | 4 (44.4%) | 1 (11.1%) | 6 (54.5%) | 64 (57.1%) |
Missing | 2 (100%) | 6 (100%) | 1 (20.0%) | 0 (0%) | 0 (0%) | 13 (68.4%) | 0 (0%) | 0 (0%) | 5 (55.6%) | 8 (88.9%) | 5 (45.5%) | 40 (35.7%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code2), data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Bisphosphonates (N=35) |
PTH analog (N=22) |
Romosozumab (N=26) |
Denosumab (N=9) |
Strontium_ranelate (N=9) |
Calcium_VitD (N=11) |
Overall (N=112) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 2820 (2400) | 1160 (347) | 5520 (1570) | 5020 (3370) | 3180 (1810) | 1970 (899) | 3240 (2450) |
Median [Q1, Q3] | 1960 [1410, 2130] | 1100 [1090, 1360] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1650, 5090] | 1770 [1470, 2490] | 1980 [1360, 4430] |
Median [min, max] | 1960 [704, 7740] | 1100 [578, 1650] | 4090 [4090, 7180] | 7870 [1470, 7870] | 1650 [1650, 5090] | 1770 [450, 3270] | 1980 [450, 7870] |
active_sample | |||||||
Mean (SD) | 2380 (1960) | 932 (289) | 4970 (1540) | 4600 (3080) | 2770 (1790) | 1530 (789) | 2820 (2230) |
Median [Q1, Q3] | 1860 [1130, 1980] | 892 [856, 1090] | 3910 [3620, 6640] | 6600 [1350, 7390] | 1440 [1390, 4930] | 1770 [760, 2030] | 1860 [1130, 4020] |
Median [min, max] | 1860 [339, 6550] | 892 [451, 1430] | 3910 [3240, 6910] | 6600 [1350, 7810] | 1440 [1150, 4940] | 1770 [389, 2690] | 1860 [339, 7810] |
n_event | |||||||
Mean (SD) | 155 (177) | 53.1 (26.2) | 203 (148) | 140 (180) | 428 (247) | 205 (180) | 172 (181) |
Median [Q1, Q3] | 79.0 [61.5, 147] | 45.0 [34.3, 81.3] | 168 [105, 253] | 69.0 [29.0, 121] | 471 [204, 671] | 147 [64.0, 289] | 95.5 [52.5, 227] |
Median [min, max] | 79.0 [13.0, 764] | 45.0 [14.0, 100] | 168 [10.0, 658] | 69.0 [15.0, 531] | 471 [66.0, 696] | 147 [37.0, 563] | 95.5 [10.0, 764] |
FI_final | |||||||
Mean (SD) | 18.2 (31.7) | 9.68 (7.54) | 20.8 (16.6) | 25.1 (43.7) | 26.6 (35.5) | 8.36 (8.85) | 17.4 (25.5) |
Median [Q1, Q3] | 9.00 [4.00, 15.0] | 8.50 [3.25, 14.5] | 18.0 [7.00, 29.3] | 4.00 [3.00, 17.0] | 12.0 [5.00, 29.0] | 4.00 [2.00, 13.5] | 9.00 [4.00, 21.3] |
Median [min, max] | 9.00 [1.00, 171] | 8.50 [1.00, 25.0] | 18.0 [1.00, 65.0] | 4.00 [2.00, 137] | 12.0 [1.00, 111] | 4.00 [1.00, 25.0] | 9.00 [1.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.00719 (0.00778) | 0.0110 (0.00900) | 0.00451 (0.00413) | 0.00432 (0.00546) | 0.0191 (0.0311) | 0.00501 (0.00387) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00527 [0.00250, 0.00785] | 0.00864 [0.00346, 0.0157] | 0.00330 [0.00140, 0.00598] | 0.00255 [0.00222, 0.00296] | 0.00795 [0.00101, 0.0137] | 0.00353 [0.00244, 0.00659] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00527 [0.000615, 0.0368] | 0.00864 [0.00114, 0.0288] | 0.00330 [0.000151, 0.0169] | 0.00255 [0.000303, 0.0185] | 0.00795 [0.000203, 0.0966] | 0.00353 [0.000567, 0.0125] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 5 (14.3%) | 2 (9.1%) | 1 (3.8%) | 0 (0%) | 0 (0%) | 0 (0%) | 8 (7.1%) |
1 | 21 (60.0%) | 7 (31.8%) | 25 (96.2%) | 4 (44.4%) | 1 (11.1%) | 6 (54.5%) | 64 (57.1%) |
Missing | 9 (25.7%) | 13 (59.1%) | 0 (0%) | 5 (55.6%) | 8 (88.9%) | 5 (45.5%) | 40 (35.7%) |
kruskal.test(FI_final ~ interv_code2, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by interv_code2
## Kruskal-Wallis chi-squared = 9.2817, df = 5, p-value = 0.09834
kruskal.test(FQ_final ~ interv_code2, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by interv_code2
## Kruskal-Wallis chi-squared = 11.821, df = 5, p-value = 0.03732
Box plots
p1 = ggplot(data = ori_st, aes(y = FI_final, x = as.factor(interv_code2), fill = as.factor(interv_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Pharmacological interventions", y = "Fragility index")
p2 = ggplot(data = ori_st, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Pharmacological interventions", y = "Fragility quotine")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by intervention sites", gp = gpar(fontsize = 20, font = 1)))
#### (2.1.4) Timing of fracture assessment
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(timing), data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
2 (N=20) |
3 (N=10) |
4 (N=36) |
5 (N=28) |
6 (N=6) |
7 (N=5) |
8 (N=7) |
Overall (N=112) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | 3470 (2500) | 1560 (1030) | 3110 (2360) | 4260 (2980) | 2340 (1650) | 3640 (1980) | 2100 (259) | 3240 (2450) |
Median [Q1, Q3] | 2870 [1440, 4860] | 1640 [610, 1650] | 1720 [1100, 4090] | 2220 [1770, 7740] | 1650 [1120, 3740] | 5090 [1470, 5090] | 2000 [2000, 2000] | 1980 [1360, 4430] |
Median [min, max] | 2870 [578, 7180] | 1640 [578, 3270] | 1720 [704, 7180] | 2220 [450, 7870] | 1650 [930, 4430] | 5090 [1470, 5090] | 2000 [2000, 2690] | 1980 [450, 7870] |
active_sample | ||||||||
Mean (SD) | 3120 (2330) | 1080 (545) | 2760 (2190) | 3660 (2610) | 2090 (1710) | 2930 (2210) | 2000 (315) | 2820 (2230) |
Median [Q1, Q3] | 2390 [1250, 4580] | 1270 [484, 1420] | 1650 [892, 3660] | 2130 [1580, 6470] | 1150 [985, 3390] | 3650 [590, 4940] | 1890 [1860, 1980] | 1860 [1130, 4020] |
Median [min, max] | 2390 [476, 6910] | 1270 [451, 1770] | 1650 [544, 6690] | 2130 [339, 7810] | 1150 [759, 4430] | 3650 [567, 4940] | 1890 [1740, 2690] | 1860 [339, 7810] |
n_event | ||||||||
Mean (SD) | 94.5 (76.5) | 59.3 (40.9) | 141 (145) | 242 (215) | 257 (252) | 418 (301) | 186 (127) | 172 (181) |
Median [Q1, Q3] | 70.5 [48.5, 142] | 46.0 [34.5, 71.5] | 88.5 [44.0, 189] | 131 [72.0, 391] | 163 [81.3, 358] | 537 [122, 671] | 147 [85.5, 281] | 95.5 [52.5, 227] |
Median [min, max] | 70.5 [10.0, 323] | 46.0 [21.0, 163] | 88.5 [14.0, 658] | 131 [23.0, 764] | 163 [44.0, 696] | 537 [70.0, 691] | 147 [48.0, 377] | 95.5 [10.0, 764] |
FI_final | ||||||||
Mean (SD) | 8.75 (8.95) | 7.10 (4.38) | 17.2 (15.3) | 28.5 (40.9) | 24.7 (42.5) | 8.20 (11.7) | 13.6 (9.85) | 17.4 (25.5) |
Median [Q1, Q3] | 5.00 [2.75, 9.50] | 7.00 [4.00, 10.5] | 14.5 [5.75, 23.5] | 14.0 [4.00, 38.3] | 9.50 [4.75, 12.8] | 3.00 [2.00, 5.00] | 10.0 [7.50, 16.5] | 9.00 [4.00, 21.3] |
Median [min, max] | 5.00 [1.00, 30.0] | 7.00 [1.00, 13.0] | 14.5 [1.00, 65.0] | 14.0 [1.00, 171] | 9.50 [1.00, 111] | 3.00 [2.00, 29.0] | 10.0 [4.00, 33.0] | 9.00 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | 0.00362 (0.00342) | 0.00871 (0.00801) | 0.00864 (0.00885) | 0.00792 (0.00850) | 0.0197 (0.0378) | 0.00330 (0.00292) | 0.00703 (0.00510) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00240 [0.00136, 0.00419] | 0.00741 [0.00366, 0.00918] | 0.00535 [0.00283, 0.0119] | 0.00638 [0.00225, 0.00872] | 0.00421 [0.00197, 0.00915] | 0.00339 [0.00101, 0.00353] | 0.00537 [0.00421, 0.00851] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00240 [0.000151, 0.0137] | 0.00741 [0.000567, 0.0288] | 0.00535 [0.000554, 0.0368] | 0.00638 [0.000203, 0.0361] | 0.00421 [0.00108, 0.0966] | 0.00339 [0.000608, 0.00795] | 0.00537 [0.00149, 0.0169] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||
0 | 1 (5.0%) | 0 (0%) | 2 (5.6%) | 0 (0%) | 0 (0%) | 0 (0%) | 5 (71.4%) | 8 (7.1%) |
1 | 16 (80.0%) | 7 (70.0%) | 23 (63.9%) | 13 (46.4%) | 1 (16.7%) | 2 (40.0%) | 2 (28.6%) | 64 (57.1%) |
Missing | 3 (15.0%) | 3 (30.0%) | 11 (30.6%) | 15 (53.6%) | 5 (83.3%) | 3 (60.0%) | 0 (0%) | 40 (35.7%) |
kruskal.test(FI_final ~ timing, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by timing
## Kruskal-Wallis chi-squared = 9.8301, df = 6, p-value = 0.132
kruskal.test(FQ_final ~ timing, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by timing
## Kruskal-Wallis chi-squared = 9.9307, df = 6, p-value = 0.1276
Box plots
p1 = ggplot(data = ori_st, aes(y = FI_final, x = as.factor(timing), fill = as.factor(timing))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(journal_code2), data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
NEJM (N=69) |
Lancet (N=5) |
BMJ (N=5) |
JAMA (N=10) |
JBMR (N=6) |
JCEM (N=5) |
Other (N=12) |
Overall (N=112) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | 4040 (2660) | 1360 (0) | 2160 (397) | 2190 (1180) | 1960 (0) | 1480 (2020) | 2120 (1820) | 3240 (2450) |
Median [Q1, Q3] | 4090 [1470, 7180] | 1360 [1360, 1360] | 2300 [1770, 2300] | 1640 [1630, 1650] | 1960 [1960, 1960] | 578 [578, 578] | 1470 [874, 2510] | 1980 [1360, 4430] |
Median [min, max] | 4090 [450, 7870] | 1360 [1360, 1360] | 2300 [1770, 2690] | 1640 [1630, 4430] | 1960 [1960, 1960] | 578 [578, 5090] | 1470 [704, 5090] | 1980 [450, 7870] |
active_sample | ||||||||
Mean (SD) | 3500 (2430) | 1080 (48.9) | 2160 (397) | 1950 (1230) | 1950 (0) | 1350 (2000) | 1700 (1740) | 2820 (2230) |
Median [Q1, Q3] | 3400 [1350, 6430] | 1050 [1050, 1100] | 2300 [1770, 2300] | 1390 [1290, 1580] | 1950 [1950, 1950] | 451 [451, 476] | 845 [588, 1770] | 1860 [1130, 4020] |
Median [min, max] | 3400 [339, 7810] | 1050 [1050, 1160] | 2300 [1770, 2690] | 1390 [1270, 4430] | 1950 [1950, 1950] | 451 [451, 4930] | 845 [544, 4940] | 1860 [339, 7810] |
n_event | ||||||||
Mean (SD) | 168 (170) | 70.0 (36.2) | 352 (167) | 108 (112) | 81.5 (23.1) | 122 (195) | 278 (279) | 172 (181) |
Median [Q1, Q3] | 103 [48.0, 231] | 91.0 [53.0, 92.0] | 315 [262, 475] | 70.5 [47.5, 112] | 70.5 [64.5, 101] | 35.0 [34.0, 48.0] | 111 [69.5, 571] | 95.5 [52.5, 227] |
Median [min, max] | 103 [10.0, 764] | 91.0 [14.0, 100] | 315 [147, 563] | 70.5 [34.0, 409] | 70.5 [63.0, 112] | 35.0 [21.0, 471] | 111 [44.0, 696] | 95.5 [10.0, 764] |
FI_final | ||||||||
Mean (SD) | 21.3 (29.0) | 9.40 (6.80) | 15.6 (8.44) | 8.20 (4.47) | 8.50 (4.68) | 4.80 (4.76) | 16.6 (30.9) | 17.4 (25.5) |
Median [Q1, Q3] | 10.0 [5.00, 26.0] | 10.0 [3.00, 15.0] | 16.0 [11.0, 22.0] | 10.0 [4.75, 11.0] | 7.50 [4.50, 12.0] | 4.00 [2.00, 4.00] | 4.50 [2.00, 14.0] | 9.00 [4.00, 21.3] |
Median [min, max] | 10.0 [1.00, 171] | 10.0 [2.00, 17.0] | 16.0 [4.00, 25.0] | 10.0 [1.00, 13.0] | 7.50 [4.00, 15.0] | 4.00 [1.00, 13.0] | 4.50 [1.00, 111] | 9.00 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | 0.00700 (0.00778) | 0.00882 (0.00654) | 0.00760 (0.00430) | 0.00504 (0.00332) | 0.00435 (0.00240) | 0.0101 (0.0110) | 0.0153 (0.0275) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00391 [0.00222, 0.00748] | 0.00908 [0.00259, 0.0143] | 0.00695 [0.00623, 0.0109] | 0.00513 [0.00197, 0.00793] | 0.00384 [0.00231, 0.00615] | 0.00840 [0.00443, 0.00887] | 0.00440 [0.00278, 0.0113] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00391 [0.000151, 0.0361] | 0.00908 [0.00191, 0.0162] | 0.00695 [0.00149, 0.0125] | 0.00513 [0.000615, 0.00928] | 0.00384 [0.00205, 0.00768] | 0.00840 [0.000203, 0.0288] | 0.00440 [0.000608, 0.0966] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||||||
0 | 6 (8.7%) | 2 (40.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 8 (7.1%) |
1 | 45 (65.2%) | 3 (60.0%) | 1 (20.0%) | 8 (80.0%) | 0 (0%) | 1 (20.0%) | 6 (50.0%) | 64 (57.1%) |
Missing | 18 (26.1%) | 0 (0%) | 4 (80.0%) | 2 (20.0%) | 6 (100%) | 4 (80.0%) | 6 (50.0%) | 40 (35.7%) |
kruskal.test(FI_final ~ journal_code2, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by journal_code2
## Kruskal-Wallis chi-squared = 8.2654, df = 6, p-value = 0.2193
kruskal.test(FQ_final ~ journal_code2, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by journal_code2
## Kruskal-Wallis chi-squared = 2.733, df = 6, p-value = 0.8415
Box plots
p1 = ggplot(data = ori_st, aes(y = FI_final, x = as.factor(timing), fill = as.factor(journal_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | sex, data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Both (N=9) |
Men (N=9) |
Women (N=94) |
Overall (N=112) |
|
---|---|---|---|---|
no_rand | ||||
Mean (SD) | 1180 (874) | 1320 (142) | 3630 (2490) | 3240 (2450) |
Median [Q1, Q3] | 578 [578, 2130] | 1200 [1200, 1470] | 2150 [1630, 5090] | 1980 [1360, 4430] |
Median [min, max] | 578 [450, 2690] | 1200 [1200, 1470] | 2150 [704, 7870] | 1980 [450, 7870] |
active_sample | ||||
Mean (SD) | 739 (750) | 1240 (132) | 3180 (2260) | 2820 (2230) |
Median [Q1, Q3] | 451 [451, 479] | 1130 [1130, 1350] | 1950 [1280, 4940] | 1860 [1130, 4020] |
Median [min, max] | 451 [339, 2690] | 1130 [1130, 1430] | 1950 [544, 7810] | 1860 [339, 7810] |
n_event | ||||
Mean (SD) | 73.0 (69.9) | 26.2 (9.56) | 195 (188) | 172 (181) |
Median [Q1, Q3] | 44.0 [35.0, 60.0] | 23.0 [21.0, 36.0] | 107 [69.0, 260] | 95.5 [52.5, 227] |
Median [min, max] | 44.0 [21.0, 231] | 23.0 [13.0, 39.0] | 107 [10.0, 764] | 95.5 [10.0, 764] |
FI_final | ||||
Mean (SD) | 4.22 (3.80) | 3.11 (1.62) | 20.0 (27.0) | 17.4 (25.5) |
Median [Q1, Q3] | 4.00 [2.00, 4.00] | 3.00 [2.00, 4.00] | 11.5 [5.00, 23.8] | 9.00 [4.00, 21.3] |
Median [min, max] | 4.00 [1.00, 13.0] | 3.00 [1.00, 6.00] | 11.5 [1.00, 171] | 9.00 [1.00, 171] |
FQ_final | ||||
Mean (SD) | 0.00842 (0.00876) | 0.00252 (0.00139) | 0.00827 (0.0119) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00514 [0.00295, 0.00887] | 0.00222 [0.00177, 0.00296] | 0.00523 [0.00237, 0.00908] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00514 [0.00108, 0.0288] | 0.00222 [0.000887, 0.00532] | 0.00523 [0.000151, 0.0966] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | ||||
0 | 0 (0%) | 0 (0%) | 8 (8.5%) | 8 (7.1%) |
1 | 4 (44.4%) | 9 (100%) | 51 (54.3%) | 64 (57.1%) |
Missing | 5 (55.6%) | 0 (0%) | 35 (37.2%) | 40 (35.7%) |
kruskal.test(FI_final ~ sex, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by sex
## Kruskal-Wallis chi-squared = 19.906, df = 2, p-value = 4.759e-05
kruskal.test(FQ_final ~ sex, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by sex
## Kruskal-Wallis chi-squared = 5.6754, df = 2, p-value = 0.05856
Box plots
p1 = ggplot(data = ori_st, aes(y = FI_final, x = as.factor(sex), fill = as.factor(sex))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by sex", x = "Sex", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | placebo, data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Active (N=23) |
Placebo (N=89) |
Overall (N=112) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 3070 (1300) | 3290 (2670) | 3240 (2450) |
Median [Q1, Q3] | 4090 [1640, 4090] | 1960 [1200, 7180] | 1980 [1360, 4430] |
Median [min, max] | 4090 [1360, 4090] | 1960 [450, 7870] | 1980 [450, 7870] |
active_sample | |||
Mean (SD) | 2650 (1210) | 2870 (2430) | 2820 (2230) |
Median [Q1, Q3] | 3400 [1270, 3650] | 1770 [930, 5680] | 1860 [1130, 4020] |
Median [min, max] | 3400 [1050, 3980] | 1770 [339, 7810] | 1860 [339, 7810] |
n_event | |||
Mean (SD) | 190 (165) | 167 (186) | 172 (181) |
Median [Q1, Q3] | 140 [69.0, 289] | 85.0 [48.0, 204] | 95.5 [52.5, 227] |
Median [min, max] | 140 [14.0, 658] | 85.0 [10.0, 764] | 95.5 [10.0, 764] |
FI_final | |||
Mean (SD) | 16.4 (16.3) | 17.6 (27.5) | 17.4 (25.5) |
Median [Q1, Q3] | 10.0 [5.00, 21.5] | 8.00 [4.00, 21.0] | 9.00 [4.00, 21.3] |
Median [min, max] | 10.0 [2.00, 65.0] | 8.00 [1.00, 171] | 9.00 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.00658 (0.00507) | 0.00814 (0.0124) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00711 [0.00232, 0.00918] | 0.00461 [0.00222, 0.00828] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00711 [0.000554, 0.0169] | 0.00461 [0.000151, 0.0966] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | |||
0 | 3 (13.0%) | 5 (5.6%) | 8 (7.1%) |
1 | 20 (87.0%) | 44 (49.4%) | 64 (57.1%) |
Missing | 0 (0%) | 40 (44.9%) | 40 (35.7%) |
kruskal.test(FI_final ~ placebo, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by placebo
## Kruskal-Wallis chi-squared = 0.86592, df = 1, p-value = 0.3521
kruskal.test(FQ_final ~ placebo, data = ori_st)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by placebo
## Kruskal-Wallis chi-squared = 0.17754, df = 1, p-value = 0.6735
Box plots
p1 = ggplot(data = ori_st, aes(y = FI_final, x = as.factor(control), fill = as.factor(control))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by types of control", x = "Types of control", y = "Fragility index")
p1
# Comparison:
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | fx_primary , data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Primary endpoint (N=24) |
Secondary endpoint (N=88) |
Overall (N=112) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 3300 (2520) | 3230 (2450) | 3240 (2450) |
Median [Q1, Q3] | 1980 [1560, 4600] | 1980 [1360, 4180] | 1980 [1360, 4430] |
Median [min, max] | 1980 [578, 7870] | 1980 [450, 7870] | 1980 [450, 7870] |
active_sample | |||
Mean (SD) | 2830 (2290) | 2820 (2230) | 2820 (2230) |
Median [Q1, Q3] | 1860 [1110, 4330] | 1860 [1130, 3870] | 1860 [1130, 4020] |
Median [min, max] | 1860 [451, 7390] | 1860 [339, 7810] | 1860 [339, 7810] |
n_event | |||
Mean (SD) | 185 (165) | 168 (187) | 172 (181) |
Median [Q1, Q3] | 111 [81.0, 251] | 83.5 [47.5, 209] | 95.5 [52.5, 227] |
Median [min, max] | 111 [34.0, 671] | 83.5 [10.0, 764] | 95.5 [10.0, 764] |
FI_final | |||
Mean (SD) | 30.3 (40.4) | 13.9 (18.4) | 17.4 (25.5) |
Median [Q1, Q3] | 15.0 [11.8, 27.8] | 7.00 [3.00, 17.0] | 9.00 [4.00, 21.3] |
Median [min, max] | 15.0 [1.00, 171] | 7.00 [1.00, 111] | 9.00 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.0137 (0.0114) | 0.00621 (0.0108) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00864 [0.00584, 0.0203] | 0.00343 [0.00205, 0.00717] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00864 [0.000567, 0.0368] | 0.00343 [0.000151, 0.0966] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | |||
0 | 2 (8.3%) | 6 (6.8%) | 8 (7.1%) |
1 | 13 (54.2%) | 51 (58.0%) | 64 (57.1%) |
Missing | 9 (37.5%) | 31 (35.2%) | 40 (35.7%) |
createTable(compareGroups(fx_primary ~ no_rand + active_sample + n_event + FI_final + FQ_final + missing_fi, data = ori_st, method = c(no_rand = 2, active_sample = 2, n_event = 2, FI_final = 2, FQ_final = 2)))
## Warning in chisq.test(xx, correct = FALSE): Chi-squared approximation may be
## incorrect
##
## --------Summary descriptives table by 'fx_primary'---------
##
## ___________________________________________________________
## Primary endpoint Secondary endpoint p.overall
## N=24 N=88
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
## no_rand 1982 [1561;4597] 1982 [1360;4178] 0.817
## active_sample 1856 [1108;4334] 1861 [1127;3872] 0.938
## n_event 111 [81.0;251] 83.5 [47.5;209] 0.202
## FI_final 15.0 [11.8;27.8] 7.00 [3.00;17.0] 0.001
## FQ_final 0.01 [0.01;0.02] 0.00 [0.00;0.01] <0.001
## missing_fi: 0.669
## 0 2 (13.3%) 6 (10.5%)
## 1 13 (86.7%) 51 (89.5%)
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
# Description:
fx_prim2 = subset(ori_st, pri_endpoint == 1)
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi), data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Overall (N=24) |
|
---|---|
no_rand | |
Mean (SD) | 3300 (2520) |
Median [Q1, Q3] | 1980 [1560, 4600] |
Median [min, max] | 1980 [578, 7870] |
active_sample | |
Mean (SD) | 2830 (2290) |
Median [Q1, Q3] | 1860 [1110, 4330] |
Median [min, max] | 1860 [451, 7390] |
n_event | |
Mean (SD) | 185 (165) |
Median [Q1, Q3] | 111 [81.0, 251] |
Median [min, max] | 111 [34.0, 671] |
FI_final | |
Mean (SD) | 30.3 (40.4) |
Median [Q1, Q3] | 15.0 [11.8, 27.8] |
Median [min, max] | 15.0 [1.00, 171] |
FQ_final | |
Mean (SD) | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |
0 | 2 (8.3%) |
1 | 13 (54.2%) |
Missing | 9 (37.5%) |
Relationship between sample size/active sample/no. events and FI
p = ggplot(data = fx_prim2, aes(x = no_rand, y = FI_final))
p1 = p + geom_point() + geom_smooth() + labs(x = "Number of participants at randomisation", y = "Fragility index") + theme_bw()
p0 = ggplot(data = fx_prim2, aes(x = active_sample, y = FI_final))
p2 = p0 + geom_point() + geom_smooth() + labs(x = "Number of participants included in the analyses", y = "Fragility index") + theme_bw()
p.0 = ggplot(data = fx_prim2, aes(x = n_event, y = FI_final))
p3 = p.0 + geom_point() + geom_smooth() + labs(x = "Number of participants with fracture events", y = "Fragility index") + theme_bw()
#grid.arrange(p1, p2, p3, nrow = 1)
grid.arrange(p1, p3, nrow = 1, top = textGrob("Relationship between Number of participants and Fragility index", gp = gpar(fontsize = 20, font = 3)))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code1), data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Clin_fx (N=2) |
OFx (N=1) |
NonVert_fx (N=1) |
Vert_fx (N=18) |
Hip (N=2) |
Overall (N=24) |
|
---|---|---|---|---|---|---|
no_rand | ||||||
Mean (SD) | 3110 (1390) | NA | NA | 3060 (2640) | 5500 (3160) | 3300 (2520) |
Median [Q1, Q3] | 3110 [2620, 3600] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [1240, 4350] | 5500 [4390, 6620] | 1980 [1560, 4600] |
Median [min, max] | 3110 [2130, 4090] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [578, 7870] | 5500 [3270, 7740] | 1980 [578, 7870] |
active_sample | ||||||
Mean (SD) | 2060 (2240) | NA | NA | 2700 (2350) | 4110 (3310) | 2830 (2290) |
Median [Q1, Q3] | 2060 [1270, 2850] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [1070, 4020] | 4110 [2940, 5280] | 1860 [1110, 4330] |
Median [min, max] | 2060 [479, 3640] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [451, 7390] | 4110 [1770, 6450] | 1860 [451, 7390] |
n_event | ||||||
Mean (SD) | 348 (165) | NA | NA | 142 (119) | 99.0 (58.0) | 185 (165) |
Median [Q1, Q3] | 348 [289, 406] | 312 [312, 312] | 671 [671, 671] | 103 [77.0, 146] | 99.0 [78.5, 120] | 111 [81.0, 251] |
Median [min, max] | 348 [231, 464] | 312 [312, 312] | 671 [671, 671] | 103 [34.0, 402] | 99.0 [58.0, 140] | 111 [34.0, 671] |
FI_final | ||||||
Mean (SD) | 16.5 (13.4) | NA | NA | 35.8 (45.1) | 6.50 (7.78) | 30.3 (40.4) |
Median [Q1, Q3] | 16.5 [11.8, 21.3] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [13.0, 36.3] | 6.50 [3.75, 9.25] | 15.0 [11.8, 27.8] |
Median [min, max] | 16.5 [7.00, 26.0] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [6.00, 171] | 6.50 [1.00, 12.0] | 15.0 [1.00, 171] |
FQ_final | ||||||
Mean (SD) | 0.0109 (0.00529) | NA | NA | 0.0160 (0.0117) | 0.00121 (0.000916) | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.0109 [0.00901, 0.0127] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0104 [0.00692, 0.0277] | 0.00121 [0.000890, 0.00154] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.0109 [0.00714, 0.0146] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0104 [0.00314, 0.0368] | 0.00121 [0.000567, 0.00186] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||
0 | 0 (0%) | 1 (100%) | 0 (0%) | 1 (5.6%) | 0 (0%) | 2 (8.3%) |
1 | 2 (100%) | 0 (0%) | 0 (0%) | 9 (50.0%) | 2 (100%) | 13 (54.2%) |
Missing | 0 (0%) | 0 (0%) | 1 (100%) | 8 (44.4%) | 0 (0%) | 9 (37.5%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code2), data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any (N=2) |
Osteoporotic (N=1) |
Non-Vertebrae (N=1) |
Vertebrae (N=18) |
Hip (N=2) |
Overall (N=24) |
|
---|---|---|---|---|---|---|
no_rand | ||||||
Mean (SD) | 3110 (1390) | NA | NA | 3060 (2640) | 5500 (3160) | 3300 (2520) |
Median [Q1, Q3] | 3110 [2620, 3600] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [1240, 4350] | 5500 [4390, 6620] | 1980 [1560, 4600] |
Median [min, max] | 3110 [2130, 4090] | 2000 [2000, 2000] | 5090 [5090, 5090] | 1650 [578, 7870] | 5500 [3270, 7740] | 1980 [578, 7870] |
active_sample | ||||||
Mean (SD) | 2060 (2240) | NA | NA | 2700 (2350) | 4110 (3310) | 2830 (2290) |
Median [Q1, Q3] | 2060 [1270, 2850] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [1070, 4020] | 4110 [2940, 5280] | 1860 [1110, 4330] |
Median [min, max] | 2060 [479, 3640] | 1950 [1950, 1950] | 4940 [4940, 4940] | 1440 [451, 7390] | 4110 [1770, 6450] | 1860 [451, 7390] |
n_event | ||||||
Mean (SD) | 348 (165) | NA | NA | 142 (119) | 99.0 (58.0) | 185 (165) |
Median [Q1, Q3] | 348 [289, 406] | 312 [312, 312] | 671 [671, 671] | 103 [77.0, 146] | 99.0 [78.5, 120] | 111 [81.0, 251] |
Median [min, max] | 348 [231, 464] | 312 [312, 312] | 671 [671, 671] | 103 [34.0, 402] | 99.0 [58.0, 140] | 111 [34.0, 671] |
FI_final | ||||||
Mean (SD) | 16.5 (13.4) | NA | NA | 35.8 (45.1) | 6.50 (7.78) | 30.3 (40.4) |
Median [Q1, Q3] | 16.5 [11.8, 21.3] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [13.0, 36.3] | 6.50 [3.75, 9.25] | 15.0 [11.8, 27.8] |
Median [min, max] | 16.5 [7.00, 26.0] | 33.0 [33.0, 33.0] | 3.00 [3.00, 3.00] | 17.5 [6.00, 171] | 6.50 [1.00, 12.0] | 15.0 [1.00, 171] |
FQ_final | ||||||
Mean (SD) | 0.0109 (0.00529) | NA | NA | 0.0160 (0.0117) | 0.00121 (0.000916) | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.0109 [0.00901, 0.0127] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0104 [0.00692, 0.0277] | 0.00121 [0.000890, 0.00154] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.0109 [0.00714, 0.0146] | 0.0169 [0.0169, 0.0169] | 0.000608 [0.000608, 0.000608] | 0.0104 [0.00314, 0.0368] | 0.00121 [0.000567, 0.00186] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||
0 | 0 (0%) | 1 (100%) | 0 (0%) | 1 (5.6%) | 0 (0%) | 2 (8.3%) |
1 | 2 (100%) | 0 (0%) | 0 (0%) | 9 (50.0%) | 2 (100%) | 13 (54.2%) |
Missing | 0 (0%) | 0 (0%) | 1 (100%) | 8 (44.4%) | 0 (0%) | 9 (37.5%) |
kruskal.test(FI_final ~ fx_code2, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by fx_code2
## Kruskal-Wallis chi-squared = 6.705, df = 4, p-value = 0.1523
kruskal.test(FQ_final ~ fx_code2, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by fx_code2
## Kruskal-Wallis chi-squared = 7.83, df = 4, p-value = 0.09801
Box plots
p1 = ggplot(data = fx_prim2, aes(y = FI_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Fracture sites", y = "Fragility index")
p2 = ggplot(data = fx_prim2, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Fracture sites", y = "Fragility quotient")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by fracture sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code1), data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Alendronate (N=1) |
Ibandronate (N=2) |
Risedronate (N=1) |
Minodronate (N=1) |
Zoledronate (N=5) |
Teriparatide (N=5) |
Abaloparatide (N=1) |
Romosozumab (N=4) |
Denosumab (N=1) |
Strontium_ranelate (N=2) |
Calcium_VitD (N=1) |
Overall (N=24) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
no_rand | ||||||||||||
Mean (SD) | NA | 1960 (0) | NA | NA | 4160 (3280) | 1150 (393) | NA | 5640 (1780) | NA | 3370 (2430) | NA | 3300 (2520) |
Median [Q1, Q3] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 2130 [2000, 7740] | 1100 [1090, 1360] | 1650 [1650, 1650] | 5640 [4090, 7180] | 7870 [7870, 7870] | 3370 [2510, 4230] | 3270 [3270, 3270] | 1980 [1560, 4600] |
Median [min, max] | 4430 [4430, 4430] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 2130 [1200, 7740] | 1100 [578, 1640] | 1650 [1650, 1650] | 5640 [4090, 7180] | 7870 [7870, 7870] | 3370 [1650, 5090] | 3270 [3270, 3270] | 1980 [578, 7870] |
active_sample | ||||||||||||
Mean (SD) | NA | 1950 (0) | NA | NA | 3130 (2730) | 940 (352) | NA | 5150 (1730) | NA | 3190 (2470) | NA | 2830 (2290) |
Median [Q1, Q3] | 4130 [4130, 4130] | 1950 [1950, 1950] | 1370 [1370, 1370] | 544 [544, 544] | 1950 [1130, 5680] | 892 [882, 1050] | 1400 [1400, 1400] | 5150 [3660, 6650] | 7390 [7390, 7390] | 3190 [2320, 4060] | 1770 [1770, 1770] | 1860 [1110, 4330] |
Median [min, max] | 4130 [4130, 4130] | 1950 [1950, 1950] | 1370 [1370, 1370] | 544 [544, 544] | 1950 [479, 6450] | 892 [451, 1430] | 1400 [1400, 1400] | 5150 [3640, 6650] | 7390 [7390, 7390] | 3190 [1440, 4940] | 1770 [1770, 1770] | 1860 [451, 7390] |
n_event | ||||||||||||
Mean (SD) | NA | 111 (1.41) | NA | NA | 224 (143) | 69.0 (25.2) | NA | 216 (177) | NA | 529 (201) | NA | 185 (165) |
Median [Q1, Q3] | 121 [121, 121] | 111 [111, 112] | 154 [154, 154] | 100 [100, 100] | 231 [140, 312] | 83.0 [48.0, 86.0] | 34.0 [34.0, 34.0] | 163 [97.5, 282] | 350 [350, 350] | 529 [458, 600] | 58.0 [58.0, 58.0] | 111 [81.0, 251] |
Median [min, max] | 121 [121, 121] | 111 [110, 112] | 154 [154, 154] | 100 [100, 100] | 231 [37.0, 402] | 83.0 [36.0, 92.0] | 34.0 [34.0, 34.0] | 163 [75.0, 464] | 350 [350, 350] | 529 [387, 671] | 58.0 [58.0, 58.0] | 111 [34.0, 671] |
FI_final | ||||||||||||
Mean (SD) | NA | 14.0 (1.41) | NA | NA | 45.8 (70.8) | 17.4 (6.23) | NA | 33.0 (9.31) | NA | 27.5 (34.6) | NA | 30.3 (40.4) |
Median [Q1, Q3] | 13.0 [13.0, 13.0] | 14.0 [13.5, 14.5] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 12.0 [7.00, 33.0] | 15.0 [13.0, 23.0] | 13.0 [13.0, 13.0] | 33.0 [25.5, 40.5] | 137 [137, 137] | 27.5 [15.3, 39.8] | 1.00 [1.00, 1.00] | 15.0 [11.8, 27.8] |
Median [min, max] | 13.0 [13.0, 13.0] | 14.0 [13.0, 15.0] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 12.0 [6.00, 171] | 15.0 [11.0, 25.0] | 13.0 [13.0, 13.0] | 33.0 [24.0, 42.0] | 137 [137, 137] | 27.5 [3.00, 52.0] | 1.00 [1.00, 1.00] | 15.0 [1.00, 171] |
FQ_final | ||||||||||||
Mean (SD) | NA | 0.00717 (0.000724) | NA | NA | 0.0138 (0.0111) | 0.0210 (0.00948) | NA | 0.00706 (0.00329) | NA | 0.0183 (0.0251) | NA | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.00314 [0.00314, 0.00314] | 0.00717 [0.00692, 0.00743] | 0.00801 [0.00801, 0.00801] | 0.0368 [0.0368, 0.0368] | 0.0146 [0.00532, 0.0169] | 0.0258 [0.0143, 0.0283] | 0.00928 [0.00928, 0.00928] | 0.00658 [0.00541, 0.00822] | 0.0185 [0.0185, 0.0185] | 0.0183 [0.00947, 0.0272] | 0.000567 [0.000567, 0.000567] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.00314 [0.00314, 0.00314] | 0.00717 [0.00666, 0.00768] | 0.00801 [0.00801, 0.00801] | 0.0368 [0.0368, 0.0368] | 0.0146 [0.00186, 0.0301] | 0.0258 [0.00770, 0.0288] | 0.00928 [0.00928, 0.00928] | 0.00658 [0.00361, 0.0115] | 0.0185 [0.0185, 0.0185] | 0.0183 [0.000608, 0.0361] | 0.000567 [0.000567, 0.000567] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||||||||
0 | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 1 (20.0%) | 1 (20.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 2 (8.3%) |
1 | 0 (0%) | 0 (0%) | 1 (100%) | 1 (100%) | 4 (80.0%) | 1 (20.0%) | 1 (100%) | 4 (100%) | 0 (0%) | 0 (0%) | 1 (100%) | 13 (54.2%) |
Missing | 1 (100%) | 2 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | 3 (60.0%) | 0 (0%) | 0 (0%) | 1 (100%) | 2 (100%) | 0 (0%) | 9 (37.5%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code2), data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Bisphosphonates (N=10) |
PTH analog (N=6) |
Romosozumab (N=4) |
Denosumab (N=1) |
Strontium_ranelate (N=2) |
Calcium_VitD (N=1) |
Overall (N=24) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 3150 (2600) | 1230 (405) | 5640 (1780) | NA | 3370 (2430) | NA | 3300 (2520) |
Median [Q1, Q3] | 1980 [1710, 3860] | 1230 [1090, 1570] | 5640 [4090, 7180] | 7870 [7870, 7870] | 3370 [2510, 4230] | 3270 [3270, 3270] | 1980 [1560, 4600] |
Median [min, max] | 1980 [704, 7740] | 1230 [578, 1650] | 5640 [4090, 7180] | 7870 [7870, 7870] | 3370 [1650, 5090] | 3270 [3270, 3270] | 1980 [578, 7870] |
active_sample | |||||||
Mean (SD) | 2560 (2110) | 1020 (366) | 5150 (1730) | NA | 3190 (2470) | NA | 2830 (2290) |
Median [Q1, Q3] | 1950 [1190, 3590] | 971 [885, 1310] | 5150 [3660, 6650] | 7390 [7390, 7390] | 3190 [2320, 4060] | 1770 [1770, 1770] | 1860 [1110, 4330] |
Median [min, max] | 1950 [479, 6450] | 971 [451, 1430] | 5150 [3640, 6650] | 7390 [7390, 7390] | 3190 [1440, 4940] | 1770 [1770, 1770] | 1860 [451, 7390] |
n_event | |||||||
Mean (SD) | 172 (111) | 63.2 (26.7) | 216 (177) | NA | 529 (201) | NA | 185 (165) |
Median [Q1, Q3] | 131 [111, 212] | 65.5 [39.0, 85.3] | 163 [97.5, 282] | 350 [350, 350] | 529 [458, 600] | 58.0 [58.0, 58.0] | 111 [81.0, 251] |
Median [min, max] | 131 [37.0, 402] | 65.5 [34.0, 92.0] | 163 [75.0, 464] | 350 [350, 350] | 529 [387, 671] | 58.0 [58.0, 58.0] | 111 [34.0, 671] |
FI_final | |||||||
Mean (SD) | 30.1 (50.1) | 16.7 (5.85) | 33.0 (9.31) | NA | 27.5 (34.6) | NA | 30.3 (40.4) |
Median [Q1, Q3] | 13.0 [11.3, 18.8] | 14.0 [13.0, 21.0] | 33.0 [25.5, 40.5] | 137 [137, 137] | 27.5 [15.3, 39.8] | 1.00 [1.00, 1.00] | 15.0 [11.8, 27.8] |
Median [min, max] | 13.0 [6.00, 171] | 14.0 [11.0, 25.0] | 33.0 [24.0, 42.0] | 137 [137, 137] | 27.5 [3.00, 52.0] | 1.00 [1.00, 1.00] | 15.0 [1.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.0131 (0.0118) | 0.0190 (0.00974) | 0.00706 (0.00329) | NA | 0.0183 (0.0251) | NA | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.00785 [0.00566, 0.0164] | 0.0200 [0.0105, 0.0277] | 0.00658 [0.00541, 0.00822] | 0.0185 [0.0185, 0.0185] | 0.0183 [0.00947, 0.0272] | 0.000567 [0.000567, 0.000567] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.00785 [0.00186, 0.0368] | 0.0200 [0.00770, 0.0288] | 0.00658 [0.00361, 0.0115] | 0.0185 [0.0185, 0.0185] | 0.0183 [0.000608, 0.0361] | 0.000567 [0.000567, 0.000567] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |||||||
0 | 1 (10.0%) | 1 (16.7%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 2 (8.3%) |
1 | 6 (60.0%) | 2 (33.3%) | 4 (100%) | 0 (0%) | 0 (0%) | 1 (100%) | 13 (54.2%) |
Missing | 3 (30.0%) | 3 (50.0%) | 0 (0%) | 1 (100%) | 2 (100%) | 0 (0%) | 9 (37.5%) |
kruskal.test(FI_final ~ interv_code2, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by interv_code2
## Kruskal-Wallis chi-squared = 8.7285, df = 5, p-value = 0.1204
kruskal.test(FQ_final ~ interv_code2, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by interv_code2
## Kruskal-Wallis chi-squared = 6.313, df = 5, p-value = 0.2769
Box plots
p1 = ggplot(data = fx_prim2, aes(y = FI_final, x = as.factor(interv_code2), fill = as.factor(interv_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Pharmacological interventions", y = "Fragility index")
p2 = ggplot(data = fx_prim2, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Pharmacological interventions", y = "Fragility quotine")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by intervention sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(timing), data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
2 (N=1) |
3 (N=4) |
4 (N=8) |
5 (N=8) |
6 (N=1) |
7 (N=1) |
8 (N=1) |
Overall (N=24) |
|
---|---|---|---|---|---|---|---|---|
no_rand | ||||||||
Mean (SD) | NA | 1780 (1110) | 2600 (2300) | 4080 (3070) | NA | NA | NA | 3300 (2520) |
Median [Q1, Q3] | 7180 [7180, 7180] | 1640 [1370, 2050] | 1280 [1090, 4090] | 2050 [1890, 7740] | 4430 [4430, 4430] | 5090 [5090, 5090] | 2000 [2000, 2000] | 1980 [1560, 4600] |
Median [min, max] | 7180 [7180, 7180] | 1640 [578, 3270] | 1280 [704, 7180] | 2050 [1630, 7870] | 4430 [4430, 4430] | 5090 [5090, 5090] | 2000 [2000, 2000] | 1980 [578, 7870] |
active_sample | ||||||||
Mean (SD) | NA | 1260 (565) | 2310 (2160) | 3340 (2700) | NA | NA | NA | 2830 (2290) |
Median [Q1, Q3] | 6640 [6640, 6640] | 1410 [1160, 1510] | 1090 [890, 3650] | 1950 [1430, 5870] | 4130 [4130, 4130] | 4940 [4940, 4940] | 1950 [1950, 1950] | 1860 [1110, 4330] |
Median [min, max] | 6640 [6640, 6640] | 1410 [451, 1770] | 1090 [544, 6650] | 1950 [479, 7390] | 4130 [4130, 4130] | 4940 [4940, 4940] | 1950 [1950, 1950] | 1860 [451, 7390] |
n_event | ||||||||
Mean (SD) | NA | 44.0 (11.2) | 149 (138) | 236 (126) | NA | NA | NA | 185 (165) |
Median [Q1, Q3] | 75.0 [75.0, 75.0] | 42.0 [35.5, 50.5] | 96.0 [85.3, 134] | 193 [133, 359] | 121 [121, 121] | 671 [671, 671] | 312 [312, 312] | 111 [81.0, 251] |
Median [min, max] | 75.0 [75.0, 75.0] | 42.0 [34.0, 58.0] | 96.0 [37.0, 464] | 193 [110, 402] | 121 [121, 121] | 671 [671, 671] | 312 [312, 312] | 111 [34.0, 671] |
FI_final | ||||||||
Mean (SD) | NA | 9.50 (5.74) | 24.6 (12.0) | 52.3 (65.0) | NA | NA | NA | 30.3 (40.4) |
Median [Q1, Q3] | 24.0 [24.0, 24.0] | 12.0 [8.50, 13.0] | 24.0 [18.8, 29.5] | 14.0 [11.8, 73.3] | 13.0 [13.0, 13.0] | 3.00 [3.00, 3.00] | 33.0 [33.0, 33.0] | 15.0 [11.8, 27.8] |
Median [min, max] | 24.0 [24.0, 24.0] | 12.0 [1.00, 13.0] | 24.0 [6.00, 42.0] | 14.0 [7.00, 171] | 13.0 [13.0, 13.0] | 3.00 [3.00, 3.00] | 33.0 [33.0, 33.0] | 15.0 [1.00, 171] |
FQ_final | ||||||||
Mean (SD) | NA | 0.0116 (0.0121) | 0.0169 (0.0119) | 0.0154 (0.0121) | NA | NA | NA | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.00361 [0.00361, 0.00361] | 0.00849 [0.00592, 0.0142] | 0.0129 [0.00686, 0.0264] | 0.0113 [0.00743, 0.0214] | 0.00314 [0.00314, 0.00314] | 0.000608 [0.000608, 0.000608] | 0.0169 [0.0169, 0.0169] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.00361 [0.00361, 0.00361] | 0.00849 [0.000567, 0.0288] | 0.0129 [0.00532, 0.0368] | 0.0113 [0.00186, 0.0361] | 0.00314 [0.00314, 0.00314] | 0.000608 [0.000608, 0.000608] | 0.0169 [0.0169, 0.0169] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||||||
0 | 0 (0%) | 0 (0%) | 1 (12.5%) | 0 (0%) | 0 (0%) | 0 (0%) | 1 (100%) | 2 (8.3%) |
1 | 1 (100%) | 3 (75.0%) | 5 (62.5%) | 4 (50.0%) | 0 (0%) | 0 (0%) | 0 (0%) | 13 (54.2%) |
Missing | 0 (0%) | 1 (25.0%) | 2 (25.0%) | 4 (50.0%) | 1 (100%) | 1 (100%) | 0 (0%) | 9 (37.5%) |
kruskal.test(FI_final ~ timing, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by timing
## Kruskal-Wallis chi-squared = 7.7077, df = 6, p-value = 0.2603
kruskal.test(FQ_final ~ timing, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by timing
## Kruskal-Wallis chi-squared = 6.11, df = 6, p-value = 0.411
Box plots
p1 = ggplot(data = fx_prim2, aes(y = FI_final, x = as.factor(timing), fill = as.factor(timing))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(journal_code2), data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
NEJM (N=14) |
Lancet (N=1) |
JAMA (N=4) |
JBMR (N=2) |
JCEM (N=1) |
Other (N=2) |
Overall (N=24) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 4170 (2790) | NA | 2340 (1400) | 1960 (0) | NA | 2900 (3100) | 3300 (2520) |
Median [Q1, Q3] | 3680 [1740, 7180] | 1360 [1360, 1360] | 1640 [1640, 2340] | 1960 [1960, 1960] | 578 [578, 578] | 2900 [1800, 3990] | 1980 [1560, 4600] |
Median [min, max] | 3680 [1090, 7870] | 1360 [1360, 1360] | 1640 [1630, 4430] | 1960 [1960, 1960] | 578 [578, 578] | 2900 [704, 5090] | 1980 [578, 7870] |
active_sample | |||||||
Mean (SD) | 3470 (2580) | NA | 2080 (1370) | 1950 (0) | NA | 2740 (3100) | 2830 (2290) |
Median [Q1, Q3] | 2800 [1210, 6250] | 1050 [1050, 1050] | 1410 [1390, 2100] | 1950 [1950, 1950] | 451 [451, 451] | 2740 [1640, 3840] | 1860 [1110, 4330] |
Median [min, max] | 2800 [479, 7390] | 1050 [1050, 1050] | 1410 [1370, 4130] | 1950 [1950, 1950] | 451 [451, 451] | 2740 [544, 4940] | 1860 [451, 7390] |
n_event | |||||||
Mean (SD) | 211 (147) | NA | 86.3 (60.7) | 111 (1.41) | NA | 386 (404) | 185 (165) |
Median [Q1, Q3] | 181 [83.8, 341] | 92.0 [92.0, 92.0] | 78.5 [35.5, 129] | 111 [111, 112] | 48.0 [48.0, 48.0] | 386 [243, 528] | 111 [81.0, 251] |
Median [min, max] | 181 [37.0, 464] | 92.0 [92.0, 92.0] | 78.5 [34.0, 154] | 111 [110, 112] | 48.0 [48.0, 48.0] | 386 [100, 671] | 111 [34.0, 671] |
FI_final | |||||||
Mean (SD) | 42.8 (49.7) | NA | 12.0 (1.15) | 14.0 (1.41) | NA | 11.5 (12.0) | 30.3 (40.4) |
Median [Q1, Q3] | 25.5 [14.8, 41.5] | 15.0 [15.0, 15.0] | 12.0 [11.0, 13.0] | 14.0 [13.5, 14.5] | 13.0 [13.0, 13.0] | 11.5 [7.25, 15.8] | 15.0 [11.8, 27.8] |
Median [min, max] | 25.5 [1.00, 171] | 15.0 [15.0, 15.0] | 12.0 [11.0, 13.0] | 14.0 [13.0, 15.0] | 13.0 [13.0, 13.0] | 11.5 [3.00, 20.0] | 15.0 [1.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.0147 (0.0116) | NA | 0.00703 (0.00268) | 0.00717 (0.000724) | NA | 0.0187 (0.0256) | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.0130 [0.00550, 0.0240] | 0.0143 [0.0143, 0.0143] | 0.00785 [0.00656, 0.00832] | 0.00717 [0.00692, 0.00743] | 0.0288 [0.0288, 0.0288] | 0.0187 [0.00965, 0.0277] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.0130 [0.000567, 0.0361] | 0.0143 [0.0143, 0.0143] | 0.00785 [0.00314, 0.00928] | 0.00717 [0.00666, 0.00768] | 0.0288 [0.0288, 0.0288] | 0.0187 [0.000608, 0.0368] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |||||||
0 | 1 (7.1%) | 1 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 2 (8.3%) |
1 | 9 (64.3%) | 0 (0%) | 3 (75.0%) | 0 (0%) | 0 (0%) | 1 (50.0%) | 13 (54.2%) |
Missing | 4 (28.6%) | 0 (0%) | 1 (25.0%) | 2 (100%) | 1 (100%) | 1 (50.0%) | 9 (37.5%) |
kruskal.test(FI_final ~ journal_code2, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by journal_code2
## Kruskal-Wallis chi-squared = 4.8553, df = 5, p-value = 0.4338
kruskal.test(FQ_final ~ journal_code2, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by journal_code2
## Kruskal-Wallis chi-squared = 2.6057, df = 5, p-value = 0.7605
Box plots
p1 = ggplot(data = fx_prim2, aes(y = FI_final, x = as.factor(timing), fill = as.factor(journal_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | sex, data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Both (N=2) |
Men (N=1) |
Women (N=21) |
Overall (N=24) |
|
---|---|---|---|---|
no_rand | ||||
Mean (SD) | 1350 (1100) | NA | 3590 (2560) | 3300 (2520) |
Median [Q1, Q3] | 1350 [965, 1740] | 1200 [1200, 1200] | 2000 [1640, 5090] | 1980 [1560, 4600] |
Median [min, max] | 1350 [578, 2130] | 1200 [1200, 1200] | 2000 [704, 7870] | 1980 [578, 7870] |
active_sample | ||||
Mean (SD) | 465 (19.8) | NA | 3130 (2280) | 2830 (2290) |
Median [Q1, Q3] | 465 [458, 472] | 1130 [1130, 1130] | 1950 [1400, 4940] | 1860 [1110, 4330] |
Median [min, max] | 465 [451, 479] | 1130 [1130, 1130] | 1950 [544, 7390] | 1860 [451, 7390] |
n_event | ||||
Mean (SD) | 140 (129) | NA | 196 (170) | 185 (165) |
Median [Q1, Q3] | 140 [93.8, 185] | 37.0 [37.0, 37.0] | 112 [86.0, 312] | 111 [81.0, 251] |
Median [min, max] | 140 [48.0, 231] | 37.0 [37.0, 37.0] | 112 [34.0, 671] | 111 [34.0, 671] |
FI_final | ||||
Mean (SD) | 10.0 (4.24) | NA | 33.3 (42.4) | 30.3 (40.4) |
Median [Q1, Q3] | 10.0 [8.50, 11.5] | 6.00 [6.00, 6.00] | 20.0 [13.0, 33.0] | 15.0 [11.8, 27.8] |
Median [min, max] | 10.0 [7.00, 13.0] | 6.00 [6.00, 6.00] | 20.0 [1.00, 171] | 15.0 [1.00, 171] |
FQ_final | ||||
Mean (SD) | 0.0217 (0.0100) | NA | 0.0134 (0.0116) | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.0217 [0.0182, 0.0253] | 0.00532 [0.00532, 0.00532] | 0.00801 [0.00601, 0.0185] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.0217 [0.0146, 0.0288] | 0.00532 [0.00532, 0.00532] | 0.00801 [0.000567, 0.0368] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | ||||
0 | 0 (0%) | 0 (0%) | 2 (9.5%) | 2 (8.3%) |
1 | 1 (50.0%) | 1 (100%) | 11 (52.4%) | 13 (54.2%) |
Missing | 1 (50.0%) | 0 (0%) | 8 (38.1%) | 9 (37.5%) |
kruskal.test(FI_final ~ sex, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by sex
## Kruskal-Wallis chi-squared = 3.5661, df = 2, p-value = 0.1681
kruskal.test(FQ_final ~ sex, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by sex
## Kruskal-Wallis chi-squared = 2.3138, df = 2, p-value = 0.3145
Box plots
p1 = ggplot(data = fx_prim2, aes(y = FI_final, x = as.factor(sex), fill = as.factor(sex))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by sex", x = "Sex", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | placebo, data = fx_prim2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Active (N=5) |
Placebo (N=19) |
Overall (N=24) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 2570 (1400) | 3500 (2730) | 3300 (2520) |
Median [Q1, Q3] | 1650 [1640, 4090] | 2000 [1410, 6140] | 1980 [1560, 4600] |
Median [min, max] | 1650 [1360, 4090] | 2000 [578, 7870] | 1980 [578, 7870] |
active_sample | |||
Mean (SD) | 2240 (1300) | 2980 (2490) | 2830 (2290) |
Median [Q1, Q3] | 1430 [1400, 3640] | 1950 [1010, 5310] | 1860 [1110, 4330] |
Median [min, max] | 1430 [1050, 3660] | 1950 [451, 7390] | 1860 [451, 7390] |
n_event | |||
Mean (SD) | 169 (181) | 189 (165) | 185 (165) |
Median [Q1, Q3] | 92.0 [36.0, 221] | 112 [84.5, 272] | 111 [81.0, 251] |
Median [min, max] | 92.0 [34.0, 464] | 112 [37.0, 671] | 111 [34.0, 671] |
FI_final | |||
Mean (SD) | 21.4 (12.9) | 32.6 (45.0) | 30.3 (40.4) |
Median [Q1, Q3] | 15.0 [13.0, 26.0] | 15.0 [11.5, 29.0] | 15.0 [11.8, 27.8] |
Median [min, max] | 15.0 [11.0, 42.0] | 15.0 [1.00, 171] | 15.0 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.00998 (0.00294) | 0.0147 (0.0126) | 0.0137 (0.0114) |
Median [Q1, Q3] | 0.00928 [0.00770, 0.0115] | 0.00801 [0.00447, 0.0271] | 0.00864 [0.00584, 0.0203] |
Median [min, max] | 0.00928 [0.00714, 0.0143] | 0.00801 [0.000567, 0.0368] | 0.00864 [0.000567, 0.0368] |
as.factor(missing_fi) | |||
0 | 1 (20.0%) | 1 (5.3%) | 2 (8.3%) |
1 | 4 (80.0%) | 9 (47.4%) | 13 (54.2%) |
Missing | 0 (0%) | 9 (47.4%) | 9 (37.5%) |
kruskal.test(FI_final ~ placebo, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by placebo
## Kruskal-Wallis chi-squared = 0.081266, df = 1, p-value = 0.7756
kruskal.test(FQ_final ~ placebo, data = fx_prim2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by placebo
## Kruskal-Wallis chi-squared = 0.0012632, df = 1, p-value = 0.9716
Box plots
p1 = ggplot(data = fx_prim2, aes(y = FI_final, x = as.factor(control), fill = as.factor(control))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by types of control", x = "Types of control", y = "Fragility index")
p1
# Comparison of different P values:
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | p_sig2 , data = ori_st, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Highly significant (N=37) |
Significant (N=75) |
Overall (N=112) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 4240 (2890) | 2750 (2050) | 3240 (2450) |
Median [Q1, Q3] | 4090 [1640, 7180] | 1960 [1360, 4090] | 1980 [1360, 4430] |
Median [min, max] | 4090 [578, 7870] | 1960 [450, 7870] | 1980 [450, 7870] |
active_sample | |||
Mean (SD) | 3750 (2630) | 2370 (1850) | 2820 (2230) |
Median [Q1, Q3] | 3660 [1270, 6640] | 1770 [1110, 3480] | 1860 [1130, 4020] |
Median [min, max] | 3660 [451, 7810] | 1770 [339, 6670] | 1860 [339, 7810] |
n_event | |||
Mean (SD) | 211 (204) | 153 (168) | 172 (181) |
Median [Q1, Q3] | 106 [76.0, 312] | 76.0 [44.0, 173] | 95.5 [52.5, 227] |
Median [min, max] | 106 [34.0, 764] | 76.0 [10.0, 691] | 95.5 [10.0, 764] |
FI_final | |||
Mean (SD) | 38.5 (35.3) | 7.00 (6.23) | 17.4 (25.5) |
Median [Q1, Q3] | 26.0 [17.0, 42.0] | 5.00 [2.00, 9.50] | 9.00 [4.00, 21.3] |
Median [min, max] | 26.0 [9.00, 171] | 5.00 [1.00, 29.0] | 9.00 [1.00, 171] |
FQ_final | |||
Mean (SD) | 0.0155 (0.0167) | 0.00402 (0.00337) | 0.00782 (0.0113) |
Median [Q1, Q3] | 0.00928 [0.00653, 0.0185] | 0.00296 [0.00153, 0.00535] | 0.00480 [0.00219, 0.00852] |
Median [min, max] | 0.00928 [0.00230, 0.0966] | 0.00296 [0.000151, 0.0146] | 0.00480 [0.000151, 0.0966] |
as.factor(missing_fi) | |||
0 | 4 (10.8%) | 4 (5.3%) | 8 (7.1%) |
1 | 21 (56.8%) | 43 (57.3%) | 64 (57.1%) |
Missing | 12 (32.4%) | 28 (37.3%) | 40 (35.7%) |
createTable(compareGroups(p_sig2 ~ no_rand + active_sample + n_event + FI_final + FQ_final + missing_fi, data = ori_st, method = c(no_rand = 2, active_sample = 2, n_event = 2, FI_final = 2, FQ_final = 2)))
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in chisq.test(xx, correct = FALSE): Chi-squared approximation may be
## incorrect
##
## --------Summary descriptives table by 'p_sig2'---------
##
## ___________________________________________________________
## Highly significant Significant p.overall
## N=37 N=75
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
## no_rand 4093 [1639;7180] 1964 [1360;4093] 0.030
## active_sample 3659 [1266;6643] 1765 [1114;3479] 0.013
## n_event 106 [76.0;312] 76.0 [44.0;173] 0.029
## FI_final 26.0 [17.0;42.0] 5.00 [2.00;9.50] <0.001
## FQ_final 0.01 [0.01;0.02] 0.00 [0.00;0.01] <0.001
## missing_fi: 0.436
## 0 4 (16.0%) 4 (8.51%)
## 1 21 (84.0%) 43 (91.5%)
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
# Subset of analyses whose P-value<= 0.001
p_sig2 = subset(ori_st, Pval_screen<=0.001)
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi), data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Overall (N=37) |
|
---|---|
no_rand | |
Mean (SD) | 4240 (2890) |
Median [Q1, Q3] | 4090 [1640, 7180] |
Median [min, max] | 4090 [578, 7870] |
active_sample | |
Mean (SD) | 3750 (2630) |
Median [Q1, Q3] | 3660 [1270, 6640] |
Median [min, max] | 3660 [451, 7810] |
n_event | |
Mean (SD) | 211 (204) |
Median [Q1, Q3] | 106 [76.0, 312] |
Median [min, max] | 106 [34.0, 764] |
FI_final | |
Mean (SD) | 38.5 (35.3) |
Median [Q1, Q3] | 26.0 [17.0, 42.0] |
Median [min, max] | 26.0 [9.00, 171] |
FQ_final | |
Mean (SD) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | |
0 | 4 (10.8%) |
1 | 21 (56.8%) |
Missing | 12 (32.4%) |
Relationship between sample size/active sample/no. events and FI
p = ggplot(data = p_sig2, aes(x = no_rand, y = FI_final))
p1 = p + geom_point() + geom_smooth() + labs(x = "Number of participants at randomisation", y = "Fragility index") + theme_bw()
p0 = ggplot(data = p_sig2, aes(x = active_sample, y = FI_final))
p2 = p0 + geom_point() + geom_smooth() + labs(x = "Number of participants included in the analyses", y = "Fragility index") + theme_bw()
p.0 = ggplot(data = p_sig2, aes(x = n_event, y = FI_final))
p3 = p.0 + geom_point() + geom_smooth() + labs(x = "Number of participants with fracture events", y = "Fragility index") + theme_bw()
#grid.arrange(p1, p2, p3, nrow = 1)
grid.arrange(p1, p3, nrow = 1, top = textGrob("Relationship between Number of participants and Fragility index", gp = gpar(fontsize = 20, font = 3)))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code1), data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Clin_fx (N=2) |
OFx (N=3) |
MOF (N=2) |
NonVert_fx (N=3) |
Vert_fx (N=25) |
ClinVert_fx (N=2) |
Overall (N=37) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 7460 (393) | 3400 (1210) | 2870 (1730) | 7370 (321) | 3530 (2890) | 7800 (93.3) | 4240 (2890) |
Median [Q1, Q3] | 7460 [7320, 7600] | 4090 [3050, 4090] | 2870 [2260, 3480] | 7180 [7180, 7460] | 1650 [1360, 7180] | 7800 [7770, 7840] | 4090 [1640, 7180] |
Median [min, max] | 7460 [7180, 7740] | 4090 [2000, 4090] | 2870 [1650, 4090] | 7180 [7180, 7740] | 1650 [578, 7870] | 7800 [7740, 7870] | 4090 [578, 7870] |
active_sample | |||||||
Mean (SD) | 6620 (100) | 3250 (1130) | 2400 (1600) | 6620 (76.9) | 3080 (2620) | 7120 (975) | 3750 (2630) |
Median [Q1, Q3] | 6620 [6580, 6660] | 3840 [2890, 3910] | 2400 [1830, 2970] | 6650 [6590, 6660] | 1430 [1050, 5680] | 7120 [6770, 7460] | 3660 [1270, 6640] |
Median [min, max] | 6620 [6550, 6690] | 3840 [1950, 3980] | 2400 [1270, 3530] | 6650 [6530, 6670] | 1430 [451, 7390] | 7120 [6430, 7810] | 3660 [451, 7810] |
n_event | |||||||
Mean (SD) | 505 (366) | 431 (197) | 200 (220) | 358 (281) | 152 (156) | 112 (12.7) | 211 (204) |
Median [Q1, Q3] | 505 [376, 635] | 323 [318, 491] | 200 [122, 277] | 225 [197, 453] | 92.0 [73.0, 128] | 112 [108, 117] | 106 [76.0, 312] |
Median [min, max] | 505 [246, 764] | 323 [312, 658] | 200 [44.0, 355] | 225 [168, 680] | 92.0 [34.0, 696] | 112 [103, 121] | 106 [34.0, 764] |
FI_final | |||||||
Mean (SD) | 62.5 (37.5) | 42.7 (19.4) | 17.5 (12.0) | 29.0 (12.2) | 38.7 (40.8) | 40.5 (2.12) | 38.5 (35.3) |
Median [Q1, Q3] | 62.5 [49.3, 75.8] | 33.0 [31.5, 49.0] | 17.5 [13.3, 21.8] | 23.0 [22.0, 33.0] | 23.0 [17.0, 40.0] | 40.5 [39.8, 41.3] | 26.0 [17.0, 42.0] |
Median [min, max] | 62.5 [36.0, 89.0] | 33.0 [30.0, 65.0] | 17.5 [9.00, 26.0] | 23.0 [21.0, 43.0] | 23.0 [11.0, 171] | 40.5 [39.0, 42.0] | 26.0 [9.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.00949 (0.00580) | 0.0138 (0.00543) | 0.00723 (0.000175) | 0.00440 (0.00190) | 0.0190 (0.0192) | 0.00576 (0.00109) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.00949 [0.00743, 0.0115] | 0.0169 [0.0122, 0.0169] | 0.00723 [0.00717, 0.00730] | 0.00346 [0.00330, 0.00502] | 0.0137 [0.00768, 0.0258] | 0.00576 [0.00538, 0.00615] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.00949 [0.00538, 0.0136] | 0.0169 [0.00754, 0.0169] | 0.00723 [0.00711, 0.00736] | 0.00346 [0.00315, 0.00659] | 0.0137 [0.00230, 0.0966] | 0.00576 [0.00499, 0.00653] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 0 (0%) | 2 (66.7%) | 0 (0%) | 0 (0%) | 2 (8.0%) | 0 (0%) | 4 (10.8%) |
1 | 2 (100%) | 1 (33.3%) | 2 (100%) | 3 (100%) | 12 (48.0%) | 1 (50.0%) | 21 (56.8%) |
Missing | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 11 (44.0%) | 1 (50.0%) | 12 (32.4%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(fx_code2), data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Any (N=2) |
Osteoporotic (N=5) |
Non-Vertebrae (N=3) |
Vertebrae (N=25) |
Clinical Vertebrae (N=2) |
Overall (N=37) |
|
---|---|---|---|---|---|---|
no_rand | ||||||
Mean (SD) | 7460 (393) | 3180 (1250) | 7370 (321) | 3530 (2890) | 7800 (93.3) | 4240 (2890) |
Median [Q1, Q3] | 7460 [7320, 7600] | 4090 [2000, 4090] | 7180 [7180, 7460] | 1650 [1360, 7180] | 7800 [7770, 7840] | 4090 [1640, 7180] |
Median [min, max] | 7460 [7180, 7740] | 4090 [1650, 4090] | 7180 [7180, 7740] | 1650 [578, 7870] | 7800 [7740, 7870] | 4090 [578, 7870] |
active_sample | ||||||
Mean (SD) | 6620 (100) | 2910 (1230) | 6620 (76.9) | 3080 (2620) | 7120 (975) | 3750 (2630) |
Median [Q1, Q3] | 6620 [6580, 6660] | 3530 [1950, 3840] | 6650 [6590, 6660] | 1430 [1050, 5680] | 7120 [6770, 7460] | 3660 [1270, 6640] |
Median [min, max] | 6620 [6550, 6690] | 3530 [1270, 3980] | 6650 [6530, 6670] | 1430 [451, 7390] | 7120 [6430, 7810] | 3660 [451, 7810] |
n_event | ||||||
Mean (SD) | 505 (366) | 338 (218) | 358 (281) | 152 (156) | 112 (12.7) | 211 (204) |
Median [Q1, Q3] | 505 [376, 635] | 323 [312, 355] | 225 [197, 453] | 92.0 [73.0, 128] | 112 [108, 117] | 106 [76.0, 312] |
Median [min, max] | 505 [246, 764] | 323 [44.0, 658] | 225 [168, 680] | 92.0 [34.0, 696] | 112 [103, 121] | 106 [34.0, 764] |
FI_final | ||||||
Mean (SD) | 62.5 (37.5) | 32.6 (20.4) | 29.0 (12.2) | 38.7 (40.8) | 40.5 (2.12) | 38.5 (35.3) |
Median [Q1, Q3] | 62.5 [49.3, 75.8] | 30.0 [26.0, 33.0] | 23.0 [22.0, 33.0] | 23.0 [17.0, 40.0] | 40.5 [39.8, 41.3] | 26.0 [17.0, 42.0] |
Median [min, max] | 62.5 [36.0, 89.0] | 30.0 [9.00, 65.0] | 23.0 [21.0, 43.0] | 23.0 [11.0, 171] | 40.5 [39.0, 42.0] | 26.0 [9.00, 171] |
FQ_final | ||||||
Mean (SD) | 0.00949 (0.00580) | 0.0112 (0.00526) | 0.00440 (0.00190) | 0.0190 (0.0192) | 0.00576 (0.00109) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.00949 [0.00743, 0.0115] | 0.00754 [0.00736, 0.0169] | 0.00346 [0.00330, 0.00502] | 0.0137 [0.00768, 0.0258] | 0.00576 [0.00538, 0.00615] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.00949 [0.00538, 0.0136] | 0.00754 [0.00711, 0.0169] | 0.00346 [0.00315, 0.00659] | 0.0137 [0.00230, 0.0966] | 0.00576 [0.00499, 0.00653] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | ||||||
0 | 0 (0%) | 2 (40.0%) | 0 (0%) | 2 (8.0%) | 0 (0%) | 4 (10.8%) |
1 | 2 (100%) | 3 (60.0%) | 3 (100%) | 12 (48.0%) | 1 (50.0%) | 21 (56.8%) |
Missing | 0 (0%) | 0 (0%) | 0 (0%) | 11 (44.0%) | 1 (50.0%) | 12 (32.4%) |
kruskal.test(FI_final ~ fx_code2, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by fx_code2
## Kruskal-Wallis chi-squared = 3.1249, df = 4, p-value = 0.5371
kruskal.test(FQ_final ~ fx_code2, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by fx_code2
## Kruskal-Wallis chi-squared = 8.9632, df = 4, p-value = 0.06202
Box plots
p1 = ggplot(data = p_sig2, aes(y = FI_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Fracture sites", y = "Fragility index")
p2 = ggplot(data = p_sig2, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Fracture sites", y = "Fragility quotient")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by fracture sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code1), data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Ibandronate (N=1) |
Risedronate (N=1) |
Minodronate (N=1) |
Zoledronate (N=6) |
Teriparatide (N=8) |
Abaloparatide (N=2) |
Romosozumab (N=12) |
Denosumab (N=3) |
Strontium_ranelate (N=3) |
Overall (N=37) |
|
---|---|---|---|---|---|---|---|---|---|---|
no_rand | ||||||||||
Mean (SD) | NA | NA | NA | 6780 (2340) | 1160 (309) | 1650 (0) | 5890 (1590) | 7870 (0) | 1650 (0) | 4240 (2890) |
Median [Q1, Q3] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 7740 [7740, 7740] | 1100 [1090, 1360] | 1650 [1650, 1650] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 1650] | 4090 [1640, 7180] |
Median [min, max] | 1960 [1960, 1960] | 1630 [1630, 1630] | 704 [704, 704] | 7740 [2000, 7740] | 1100 [578, 1640] | 1650 [1650, 1650] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 1650] | 4090 [578, 7870] |
active_sample | ||||||||||
Mean (SD) | NA | NA | NA | 5470 (1770) | 941 (271) | 1330 (95.5) | 5460 (1530) | 7530 (240) | 1330 (155) | 3750 (2630) |
Median [Q1, Q3] | 1950 [1950, 1950] | 1330 [1330, 1330] | 544 [544, 544] | 6050 [5680, 6500] | 892 [882, 1050] | 1330 [1300, 1370] | 6640 [3790, 6660] | 7390 [7390, 7600] | 1390 [1270, 1410] | 3660 [1270, 6640] |
Median [min, max] | 1950 [1950, 1950] | 1330 [1330, 1330] | 544 [544, 544] | 6050 [1950, 6550] | 892 [451, 1430] | 1330 [1270, 1400] | 6640 [3530, 6910] | 7390 [7390, 7810] | 1390 [1150, 1440] | 3660 [451, 7810] |
n_event | ||||||||||
Mean (SD) | NA | NA | NA | 389 (287) | 67.8 (24.9) | 39.0 (7.07) | 234 (163) | 184 (145) | 404 (284) | 211 (204) |
Median [Q1, Q3] | 110 [110, 110] | 58.0 [58.0, 58.0] | 100 [100, 100] | 357 [155, 611] | 67.0 [47.5, 87.5] | 39.0 [36.5, 41.5] | 223 [106, 272] | 121 [102, 236] | 387 [258, 542] | 106 [76.0, 312] |
Median [min, max] | 110 [110, 110] | 58.0 [58.0, 58.0] | 100 [100, 100] | 357 [73.0, 764] | 67.0 [36.0, 100] | 39.0 [34.0, 44.0] | 223 [75.0, 658] | 121 [82.0, 350] | 387 [128, 696] | 106 [34.0, 764] |
FI_final | ||||||||||
Mean (SD) | NA | NA | NA | 69.3 (53.8) | 17.9 (5.00) | 11.0 (2.83) | 35.1 (12.8) | 64.3 (63.9) | 60.7 (46.6) | 38.5 (35.3) |
Median [Q1, Q3] | 15.0 [15.0, 15.0] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 42.5 [39.0, 77.5] | 17.0 [14.5, 22.3] | 11.0 [10.0, 12.0] | 33.0 [25.5, 40.5] | 39.0 [28.0, 88.0] | 52.0 [35.5, 81.5] | 26.0 [17.0, 42.0] |
Median [min, max] | 15.0 [15.0, 15.0] | 11.0 [11.0, 11.0] | 20.0 [20.0, 20.0] | 42.5 [33.0, 171] | 17.0 [11.0, 25.0] | 11.0 [9.00, 13.0] | 33.0 [21.0, 65.0] | 39.0 [17.0, 137] | 52.0 [19.0, 111] | 26.0 [9.00, 171] |
FQ_final | ||||||||||
Mean (SD) | NA | NA | NA | 0.0134 (0.00928) | 0.0206 (0.00754) | 0.00819 (0.00153) | 0.00732 (0.00436) | 0.00861 (0.00870) | 0.0488 (0.0429) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.00768 [0.00768, 0.00768] | 0.00828 [0.00828, 0.00828] | 0.0368 [0.0368, 0.0368] | 0.0101 [0.00661, 0.0161] | 0.0220 [0.0157, 0.0264] | 0.00819 [0.00765, 0.00874] | 0.00594 [0.00383, 0.00853] | 0.00499 [0.00365, 0.0118] | 0.0361 [0.0249, 0.0663] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.00768 [0.00768, 0.00768] | 0.00828 [0.00828, 0.00828] | 0.0368 [0.0368, 0.0368] | 0.0101 [0.00653, 0.0301] | 0.0220 [0.00770, 0.0288] | 0.00819 [0.00711, 0.00928] | 0.00594 [0.00315, 0.0169] | 0.00499 [0.00230, 0.0185] | 0.0361 [0.0137, 0.0966] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | ||||||||||
0 | 0 (0%) | 0 (0%) | 0 (0%) | 1 (16.7%) | 2 (25.0%) | 0 (0%) | 1 (8.3%) | 0 (0%) | 0 (0%) | 4 (10.8%) |
1 | 0 (0%) | 1 (100%) | 1 (100%) | 5 (83.3%) | 1 (12.5%) | 2 (100%) | 11 (91.7%) | 0 (0%) | 0 (0%) | 21 (56.8%) |
Missing | 1 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | 5 (62.5%) | 0 (0%) | 0 (0%) | 3 (100%) | 3 (100%) | 12 (32.4%) |
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(interv_code2), data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]"))
Bisphosphonates (N=9) |
PTH analog (N=10) |
Romosozumab (N=12) |
Denosumab (N=3) |
Strontium_ranelate (N=3) |
Overall (N=37) |
|
---|---|---|---|---|---|---|
no_rand | ||||||
Mean (SD) | 5000 (3270) | 1260 (340) | 5890 (1590) | 7870 (0) | 1650 (0) | 4240 (2890) |
Median [Q1, Q3] | 7740 [1960, 7740] | 1230 [1090, 1570] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 1650] | 4090 [1640, 7180] |
Median [min, max] | 7740 [704, 7740] | 1230 [578, 1650] | 7180 [4090, 7180] | 7870 [7870, 7870] | 1650 [1650, 1650] | 4090 [578, 7870] |
active_sample | ||||||
Mean (SD) | 4070 (2550) | 1020 (292) | 5460 (1530) | 7530 (240) | 1330 (155) | 3750 (2630) |
Median [Q1, Q3] | 5680 [1950, 6430] | 971 [885, 1210] | 6640 [3790, 6660] | 7390 [7390, 7600] | 1390 [1270, 1410] | 3660 [1270, 6640] |
Median [min, max] | 5680 [544, 6550] | 971 [451, 1430] | 6640 [3530, 6910] | 7390 [7390, 7810] | 1390 [1150, 1440] | 3660 [451, 7810] |
n_event | ||||||
Mean (SD) | 289 (273) | 62.0 (25.2) | 234 (163) | 184 (145) | 404 (284) | 211 (204) |
Median [Q1, Q3] | 110 [100, 402] | 49.5 [44.5, 85.3] | 223 [106, 272] | 121 [102, 236] | 387 [258, 542] | 106 [76.0, 312] |
Median [min, max] | 110 [58.0, 764] | 49.5 [34.0, 100] | 223 [75.0, 658] | 121 [82.0, 350] | 387 [128, 696] | 106 [34.0, 764] |
FI_final | ||||||
Mean (SD) | 51.3 (50.4) | 16.5 (5.36) | 35.1 (12.8) | 64.3 (63.9) | 60.7 (46.6) | 38.5 (35.3) |
Median [Q1, Q3] | 38.0 [20.0, 43.0] | 16.0 [13.0, 20.8] | 33.0 [25.5, 40.5] | 39.0 [28.0, 88.0] | 52.0 [35.5, 81.5] | 26.0 [17.0, 42.0] |
Median [min, max] | 38.0 [11.0, 171] | 16.0 [9.00, 25.0] | 33.0 [21.0, 65.0] | 39.0 [17.0, 137] | 52.0 [19.0, 111] | 26.0 [9.00, 171] |
FQ_final | ||||||
Mean (SD) | 0.0148 (0.0113) | 0.0181 (0.00849) | 0.00732 (0.00436) | 0.00861 (0.00870) | 0.0488 (0.0429) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.00828 [0.00670, 0.0169] | 0.0177 [0.0105, 0.0255] | 0.00594 [0.00383, 0.00853] | 0.00499 [0.00365, 0.0118] | 0.0361 [0.0249, 0.0663] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.00828 [0.00653, 0.0368] | 0.0177 [0.00711, 0.0288] | 0.00594 [0.00315, 0.0169] | 0.00499 [0.00230, 0.0185] | 0.0361 [0.0137, 0.0966] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | ||||||
0 | 1 (11.1%) | 2 (20.0%) | 1 (8.3%) | 0 (0%) | 0 (0%) | 4 (10.8%) |
1 | 7 (77.8%) | 3 (30.0%) | 11 (91.7%) | 0 (0%) | 0 (0%) | 21 (56.8%) |
Missing | 1 (11.1%) | 5 (50.0%) | 0 (0%) | 3 (100%) | 3 (100%) | 12 (32.4%) |
kruskal.test(FI_final ~ interv_code2, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by interv_code2
## Kruskal-Wallis chi-squared = 13.378, df = 4, p-value = 0.009571
kruskal.test(FQ_final ~ interv_code2, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by interv_code2
## Kruskal-Wallis chi-squared = 15.37, df = 4, p-value = 0.003992
Box plots
p1 = ggplot(data = p_sig2, aes(y = FI_final, x = as.factor(interv_code2), fill = as.factor(interv_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index", x = "Pharmacological interventions", y = "Fragility index")
p2 = ggplot(data = p_sig2, aes(y = FQ_final, x = as.factor(fx_code2), fill = as.factor(fx_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility quotient", x = "Pharmacological interventions", y = "Fragility quotine")
grid.arrange(p1, p2, nrow = 1, top = textGrob("Fragility of evidence for anti-fracture efficacy by intervention sites", gp = gpar(fontsize = 20, font = 1)))
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(timing), data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
2 (N=5) |
3 (N=4) |
4 (N=16) |
5 (N=10) |
6 (N=1) |
8 (N=1) |
Overall (N=37) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 4350 (2770) | 1380 (533) | 3750 (2690) | 6590 (2520) | NA | NA | 4240 (2890) |
Median [Q1, Q3] | 4090 [1650, 7180] | 1640 [1370, 1650] | 4090 [1100, 7180] | 7740 [7740, 7840] | 1650 [1650, 1650] | 2000 [2000, 2000] | 4090 [1640, 7180] |
Median [min, max] | 4090 [1630, 7180] | 1640 [578, 1650] | 4090 [704, 7180] | 7740 [1650, 7870] | 1650 [1650, 1650] | 2000 [2000, 2000] | 4090 [578, 7870] |
active_sample | |||||||
Mean (SD) | 4050 (2710) | 1140 (462) | 3390 (2560) | 5680 (2220) | NA | NA | 3750 (2630) |
Median [Q1, Q3] | 3980 [1390, 6640] | 1330 [1060, 1410] | 3600 [892, 6650] | 6480 [5680, 7180] | 1150 [1150, 1150] | 1950 [1950, 1950] | 3660 [1270, 6640] |
Median [min, max] | 3980 [1330, 6910] | 1330 [451, 1430] | 3600 [544, 6690] | 6480 [1440, 7810] | 1150 [1150, 1150] | 1950 [1950, 1950] | 3660 [451, 7810] |
n_event | |||||||
Mean (SD) | 132 (110) | 40.5 (6.61) | 181 (154) | 307 (255) | NA | NA | 211 (204) |
Median [Q1, Q3] | 76.0 [75.0, 128] | 40.0 [35.5, 45.0] | 106 [90.5, 230] | 236 [105, 398] | 696 [696, 696] | 312 [312, 312] | 106 [76.0, 312] |
Median [min, max] | 76.0 [58.0, 323] | 40.0 [34.0, 48.0] | 106 [46.0, 658] | 236 [73.0, 764] | 696 [696, 696] | 312 [312, 312] | 106 [34.0, 764] |
FI_final | |||||||
Mean (SD) | 22.2 (7.46) | 11.5 (1.91) | 29.9 (13.8) | 64.3 (52.0) | NA | NA | 38.5 (35.3) |
Median [Q1, Q3] | 24.0 [19.0, 27.0] | 12.0 [10.5, 13.0] | 24.0 [20.8, 39.3] | 42.5 [38.3, 79.8] | 111 [111, 111] | 33.0 [33.0, 33.0] | 26.0 [17.0, 42.0] |
Median [min, max] | 24.0 [11.0, 30.0] | 12.0 [9.00, 13.0] | 24.0 [15.0, 65.0] | 42.5 [15.0, 171] | 111 [111, 111] | 33.0 [33.0, 33.0] | 26.0 [9.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.00741 (0.00410) | 0.0132 (0.0104) | 0.0149 (0.00997) | 0.0133 (0.0115) | NA | NA | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.00754 [0.00391, 0.00828] | 0.00849 [0.00755, 0.0142] | 0.0137 [0.00598, 0.0206] | 0.00719 [0.00655, 0.0173] | 0.0966 [0.0966, 0.0966] | 0.0169 [0.0169, 0.0169] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.00754 [0.00361, 0.0137] | 0.00849 [0.00711, 0.0288] | 0.0137 [0.00315, 0.0368] | 0.00719 [0.00230, 0.0361] | 0.0966 [0.0966, 0.0966] | 0.0169 [0.0169, 0.0169] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 1 (20.0%) | 0 (0%) | 2 (12.5%) | 0 (0%) | 0 (0%) | 1 (100%) | 4 (10.8%) |
1 | 3 (60.0%) | 3 (75.0%) | 10 (62.5%) | 5 (50.0%) | 0 (0%) | 0 (0%) | 21 (56.8%) |
Missing | 1 (20.0%) | 1 (25.0%) | 4 (25.0%) | 5 (50.0%) | 1 (100%) | 0 (0%) | 12 (32.4%) |
kruskal.test(FI_final ~ timing, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by timing
## Kruskal-Wallis chi-squared = 16.324, df = 5, p-value = 0.005977
kruskal.test(FQ_final ~ timing, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by timing
## Kruskal-Wallis chi-squared = 5.2068, df = 5, p-value = 0.3912
Box plots
p1 = ggplot(data = p_sig2, aes(y = FI_final, x = as.factor(timing), fill = as.factor(timing))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | as.factor(journal_code2), data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
NEJM (N=27) |
Lancet (N=2) |
JAMA (N=4) |
JBMR (N=1) |
JCEM (N=1) |
Other (N=2) |
Overall (N=37) |
|
---|---|---|---|---|---|---|---|
no_rand | |||||||
Mean (SD) | 5280 (2700) | 1360 (0) | 1640 (8.02) | NA | NA | 1180 (668) | 4240 (2890) |
Median [Q1, Q3] | 7180 [3050, 7740] | 1360 [1360, 1360] | 1640 [1640, 1650] | 1960 [1960, 1960] | 578 [578, 578] | 1180 [940, 1410] | 4090 [1640, 7180] |
Median [min, max] | 7180 [1090, 7870] | 1360 [1360, 1360] | 1640 [1630, 1650] | 1960 [1960, 1960] | 578 [578, 578] | 1180 [704, 1650] | 4090 [578, 7870] |
active_sample | |||||||
Mean (SD) | 4720 (2450) | 1050 (0) | 1360 (73.1) | NA | NA | 847 (428) | 3750 (2630) |
Median [Q1, Q3] | 5680 [2740, 6650] | 1050 [1050, 1050] | 1370 [1310, 1410] | 1950 [1950, 1950] | 451 [451, 451] | 847 [695, 998] | 3660 [1270, 6640] |
Median [min, max] | 5680 [882, 7810] | 1050 [1050, 1050] | 1370 [1270, 1430] | 1950 [1950, 1950] | 451 [451, 451] | 847 [544, 1150] | 3660 [451, 7810] |
n_event | |||||||
Mean (SD) | 240 (200) | 96.0 (5.66) | 43.0 (10.9) | NA | NA | 398 (421) | 211 (204) |
Median [Q1, Q3] | 168 [84.5, 337] | 96.0 [94.0, 98.0] | 40.0 [35.5, 47.5] | 110 [110, 110] | 48.0 [48.0, 48.0] | 398 [249, 547] | 106 [76.0, 312] |
Median [min, max] | 168 [46.0, 764] | 96.0 [92.0, 100] | 40.0 [34.0, 58.0] | 110 [110, 110] | 48.0 [48.0, 48.0] | 398 [100, 696] | 106 [34.0, 764] |
FI_final | |||||||
Mean (SD) | 44.0 (35.7) | 16.0 (1.41) | 11.0 (1.63) | NA | NA | 65.5 (64.3) | 38.5 (35.3) |
Median [Q1, Q3] | 36.0 [23.5, 42.5] | 16.0 [15.5, 16.5] | 11.0 [10.5, 11.5] | 15.0 [15.0, 15.0] | 13.0 [13.0, 13.0] | 65.5 [42.8, 88.3] | 26.0 [17.0, 42.0] |
Median [min, max] | 36.0 [17.0, 171] | 16.0 [15.0, 17.0] | 11.0 [9.00, 13.0] | 15.0 [15.0, 15.0] | 13.0 [13.0, 13.0] | 65.5 [20.0, 111] | 26.0 [9.00, 171] |
FQ_final | |||||||
Mean (SD) | 0.0127 (0.00949) | 0.0153 (0.00135) | 0.00809 (0.000924) | NA | NA | 0.0667 (0.0423) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.00754 [0.00562, 0.0177] | 0.0153 [0.0148, 0.0157] | 0.00799 [0.00755, 0.00853] | 0.00768 [0.00768, 0.00768] | 0.0288 [0.0288, 0.0288] | 0.0667 [0.0517, 0.0816] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.00754 [0.00230, 0.0361] | 0.0153 [0.0143, 0.0162] | 0.00799 [0.00711, 0.00928] | 0.00768 [0.00768, 0.00768] | 0.0288 [0.0288, 0.0288] | 0.0667 [0.0368, 0.0966] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | |||||||
0 | 2 (7.4%) | 2 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | 0 (0%) | 4 (10.8%) |
1 | 16 (59.3%) | 0 (0%) | 4 (100%) | 0 (0%) | 0 (0%) | 1 (50.0%) | 21 (56.8%) |
Missing | 9 (33.3%) | 0 (0%) | 0 (0%) | 1 (100%) | 1 (100%) | 1 (50.0%) | 12 (32.4%) |
kruskal.test(FI_final ~ journal, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by journal
## Kruskal-Wallis chi-squared = 18.362, df = 5, p-value = 0.002526
kruskal.test(FQ_final ~ journal, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by journal
## Kruskal-Wallis chi-squared = 8.3947, df = 5, p-value = 0.1358
Box plots
p1 = ggplot(data = p_sig2, aes(y = FI_final, x = as.factor(timing), fill = as.factor(journal_code2))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by timing of fracture assessment", x = "Timing of fracture assessment", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | sex, data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Both (N=1) |
Women (N=36) |
Overall (N=37) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | NA | 4340 (2860) | 4240 (2890) |
Median [Q1, Q3] | 578 [578, 578] | 4090 [1640, 7180] | 4090 [1640, 7180] |
Median [min, max] | 578 [578, 578] | 4090 [704, 7870] | 4090 [578, 7870] |
active_sample | |||
Mean (SD) | NA | 3850 (2610) | 3750 (2630) |
Median [Q1, Q3] | 451 [451, 451] | 3660 [1310, 6640] | 3660 [1270, 6640] |
Median [min, max] | 451 [451, 451] | 3660 [544, 7810] | 3660 [451, 7810] |
n_event | |||
Mean (SD) | NA | 215 (205) | 211 (204) |
Median [Q1, Q3] | 48.0 [48.0, 48.0] | 108 [80.5, 315] | 106 [76.0, 312] |
Median [min, max] | 48.0 [48.0, 48.0] | 108 [34.0, 764] | 106 [34.0, 764] |
FI_final | |||
Mean (SD) | NA | 39.2 (35.5) | 38.5 (35.3) |
Median [Q1, Q3] | 13.0 [13.0, 13.0] | 26.5 [18.5, 42.0] | 26.0 [17.0, 42.0] |
Median [min, max] | 13.0 [13.0, 13.0] | 26.5 [9.00, 171] | 26.0 [9.00, 171] |
FQ_final | |||
Mean (SD) | NA | 0.0152 (0.0168) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.0288 [0.0288, 0.0288] | 0.00878 [0.00640, 0.0173] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.0288 [0.0288, 0.0288] | 0.00878 [0.00230, 0.0966] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | |||
0 | 0 (0%) | 4 (11.1%) | 4 (10.8%) |
1 | 0 (0%) | 21 (58.3%) | 21 (56.8%) |
Missing | 1 (100%) | 11 (30.6%) | 12 (32.4%) |
kruskal.test(FI_final ~ sex, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by sex
## Kruskal-Wallis chi-squared = 1.8465, df = 1, p-value = 0.1742
kruskal.test(FQ_final ~ sex, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by sex
## Kruskal-Wallis chi-squared = 1.7193, df = 1, p-value = 0.1898
Box plots
p1 = ggplot(data = p_sig2, aes(y = FI_final, x = as.factor(sex), fill = as.factor(sex))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by sex", x = "Sex", y = "Fragility index")
p1
table1(~ no_rand + active_sample + n_event + FI_final + FQ_final + as.factor(missing_fi) | placebo, data = p_sig2, render.continuous = c(. = "Mean (SD)", . = "Median [Q1, Q3]", . = "Median [min, max]" ))
Active (N=10) |
Placebo (N=27) |
Overall (N=37) |
|
---|---|---|---|
no_rand | |||
Mean (SD) | 2810 (1350) | 4770 (3140) | 4240 (2890) |
Median [Q1, Q3] | 2870 [1640, 4090] | 7180 [1640, 7740] | 4090 [1640, 7180] |
Median [min, max] | 2870 [1360, 4090] | 7180 [578, 7870] | 4090 [578, 7870] |
active_sample | |||
Mean (SD) | 2490 (1330) | 4220 (2850) | 3750 (2630) |
Median [Q1, Q3] | 2480 [1300, 3660] | 5680 [1240, 6650] | 3660 [1270, 6640] |
Median [min, max] | 2480 [1050, 3980] | 5680 [451, 7810] | 3660 [451, 7810] |
n_event | |||
Mean (SD) | 212 (198) | 210 (209) | 211 (204) |
Median [Q1, Q3] | 161 [56.0, 306] | 106 [79.0, 279] | 106 [76.0, 312] |
Median [min, max] | 161 [34.0, 658] | 106 [46.0, 764] | 106 [34.0, 764] |
FI_final | |||
Mean (SD) | 27.6 (18.7) | 42.5 (39.3) | 38.5 (35.3) |
Median [Q1, Q3] | 21.5 [13.5, 39.0] | 27.0 [20.5, 41.0] | 26.0 [17.0, 42.0] |
Median [min, max] | 21.5 [9.00, 65.0] | 27.0 [11.0, 171] | 26.0 [9.00, 171] |
FQ_final | |||
Mean (SD) | 0.0111 (0.00383) | 0.0172 (0.0193) | 0.0155 (0.0167) |
Median [Q1, Q3] | 0.0104 [0.00758, 0.0140] | 0.00828 [0.00562, 0.0252] | 0.00928 [0.00653, 0.0185] |
Median [min, max] | 0.0104 [0.00711, 0.0169] | 0.00828 [0.00230, 0.0966] | 0.00928 [0.00230, 0.0966] |
as.factor(missing_fi) | |||
0 | 3 (30.0%) | 1 (3.7%) | 4 (10.8%) |
1 | 7 (70.0%) | 14 (51.9%) | 21 (56.8%) |
Missing | 0 (0%) | 12 (44.4%) | 12 (32.4%) |
kruskal.test(FI_final ~ placebo, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FI_final by placebo
## Kruskal-Wallis chi-squared = 1.3537, df = 1, p-value = 0.2446
kruskal.test(FQ_final ~ placebo, data = p_sig2)
##
## Kruskal-Wallis rank sum test
##
## data: FQ_final by placebo
## Kruskal-Wallis chi-squared = 0.018713, df = 1, p-value = 0.8912
Box plots
p1 = ggplot(data = p_sig2, aes(y = FI_final, x = as.factor(control), fill = as.factor(control))) + geom_boxplot() +
geom_jitter(alpha=0.2) + theme_bw() + theme(legend.position="none") +
labs(title = "Fragility index by types of control", x = "Types of control", y = "Fragility index")
p1