The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Phases 2-3 compare two extracted datasets by computing stratified prevalence ratios and synthesizing them via multi-level random-effects meta-analysis.
The pipeline has 4 steps, each producing a more aggregated table:
yearly concept x year x sex x age_group (raw PR per stratum)
|
v meta across years
meta_agegroups concept x sex x age_group (pooled across years)
|
v meta across age groups
meta_by_sex concept x sex (pooled across age groups)
|
v meta across sexes
meta_summary concept (sex = "Both") (final summary)
You can also run each step individually for more control:
d1 <- load_dataset("Hospital_A")
d2 <- load_dataset("Hospital_B")
# Step 1: Yearly comparison (inner join on concept x year x sex x age_group)
yearly <- compare_yearly(d1, d2, prev_table = "condition_prevalence")
# Step 2: Meta across years
meta_ag <- compare_meta_agegroups(yearly)
# Step 3: Meta across age groups
meta_sex <- compare_meta_by_sex(meta_ag)
# Step 4: Meta across sexes
meta_sum <- compare_meta_summary(meta_sex)For each matched stratum, Syrona computes:
Log2 prevalence ratio:
log2_pr = log2(p2 / p1)
Where p1 and p2 are the prevalence values in dataset 1 (reference) and dataset 2 (comparison).
Standard error (on log2 scale):
SE = sqrt((1 - p1) / (p1 * n1) + (1 - p2) / (p2 * n2)) / ln(2)
Where n1 and n2 are the denominators (persons observed in that stratum).
95% confidence interval:
CI = log2_pr +/- 1.96 * SE
Significance: A stratum is significant if the CI excludes zero on the log2 scale (i.e., the fold difference excludes 1.0).
Each comparison table contains these columns:
| Column | Description |
|---|---|
concept_id |
OMOP concept ID |
log2_pr |
Log2 prevalence ratio |
se |
Standard error (log2 scale) |
ci_low, ci_high |
95% CI bounds (log2 scale) |
fold_diff |
Natural-scale fold difference (2^log2_pr) |
fold_ci_low, fold_ci_high |
Natural-scale CI bounds |
fold_symmetric |
max(fold, 1/fold) - useful for ranking |
p_value |
Two-sided p-value |
sig |
TRUE if CI excludes zero |
meta_model_type |
“Random-Effects”, “Fixed-Effect”, or “Pass-Through” |
n_strata |
Number of strata pooled |
tau2 |
Between-study variance (heterogeneity) |
I2 |
Percentage of variance due to heterogeneity |
Q |
Cochran’s Q statistic |
pval_Q |
P-value for Q test |
For each group of strata to be pooled, Syrona uses this fallback strategy:
meta::metagen)The Paule-Mandel estimator is preferred because it handles small numbers of studies better than DerSimonian-Laird.
The meta-analysis cascade produces heterogeneity metrics at each aggregation level:
These metrics help identify concepts where the summary prevalence ratio masks meaningful variation across strata.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.