Сравните пропорции метаанализа подгрупп, используя соотношение шансов - PullRequest
0 голосов
/ 05 мая 2020

Я провел метаанализ пропорций со случайным эффектом, используя metaprop из пакета meta. Я хотел бы сравнить пропорции group A против group B, используя odds rat ios и 95% доверительный интервал, как в примере ниже. Есть ли способ сделать это?

Я нашел эту ссылку http://www.metafor-project.org/doku.php/tips: comp_two_independent_estimates , но она не ответила на мой вопрос.

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Без написания нового кода вы можете просто использовать уже имеющийся функционал:

library(metafor)

df <- structure(list(study_nr = c(1, 4, 5, 6, 7, 8, 9, 10, 
                                  11, 14, 15, 18, 19, 20), 
                         group = c("A", "A", "A", "A", "A", "A", "A", 
                                   "A", "A", "B", "B", "B", "B", "B"), 
                         n_tot = c(1190, 37, 47, 26, 300, 402, 405, 
                                   195, 89, 47, 93, 49, 227, 61), 
                         n_event = c(189,2, 1, 0, 21, 11, 1, 
                                     8, 4, 2, 21, 4, 13, 5)), 
                    class = c("tbl_df", "tbl", "data.frame"), 
                    row.names = c(NA, -14L))
df

# compute log(odds) and corresponding sampling variances
df <- escalc(measure="PLO", xi=n_event, ni=n_tot, data=df)
df

# fit meta-regression model with 'group' as moderator
res <- rma(yi, vi, mods = ~ group, data=df, method="DL")
res

# obtain the OR and 95% CI
predict(res, newmods=1, intercept=FALSE, transf=exp, digits=2)

# test if the log(OR) is significantly different from 0
anova(res, L=c(0,1), transf=exp, digits=2)
0 голосов
/ 06 мая 2020

Думаю, я нашел ответ, который я опубликую здесь, если у кого-то в будущем возникнет такой же вопрос.

На самом деле это довольно просто, нам просто нужно возвести в степень lo git -транформированные оценки, полученные из метапропа или объекта метарегрессии для получения Odds rat ios:

    library(metafor)
    library(meta) 
    library(dplyr)

    df <- structure(list(study_nr = c(1, 4, 5, 6, 7, 8, 9, 10, 
                                      11, 14, 15, 18, 19, 20), 
                         group = c("A", "A", "A", "A", "A", "A", "A", 
                                   "A", "A", "B", "B", "B", "B", "B"), 
                         n_tot = c(1190, 37, 47, 26, 300, 402, 405, 
                                   195, 89, 47, 93, 49, 227, 61), 
                         n_event = c(189,2, 1, 0, 21, 11, 1, 
                                     8, 4, 2, 21, 4, 13, 5)), 
                    class = c("tbl_df", "tbl", "data.frame"), 
                    row.names = c(NA, -14L))

Необходимо установить tau.common = TRUE, чтобы сравнить результат с мета-регрессией

    m <- metaprop(event = n_event, n = n_tot, data = df, 
                  comb.fixed = FALSE, method = "Inverse",
                  byvar = group, tau.common = T)


    m
    # Output truncated...

    #> Test of heterogeneity:
    #>       Q d.f.  p-value
    #>  109.01   13 < 0.0001
    #> 
    #> Results for subgroups (random effects model):
    #>             k proportion           95%-CI  tau^2    tau     Q   I^2
    #> group = A   9     0.0408 [0.0199; 0.0818] 0.9127 0.9553 87.69 90.9%
    #> group = B   5     0.0879 [0.0367; 0.1959] 0.9127 0.9553 21.05 81.0%
    #> 
    #> Test for subgroup differences (random effects model):
    #>                     Q d.f.  p-value
    #> Between groups   1.82    1   0.1768
    #> Within groups  108.73   12 < 0.0001
    #> 
    #> Details on meta-analytical method:
    #> - Inverse variance method
    #> - DerSimonian-Laird estimator for tau^2 (assuming common tau^2 in subgroups)
    #> - Jackson method for confidence interval of tau^2 and tau
    #> - Logit transformation
    #> - Clopper-Pearson confidence interval for individual studies
    #> - Continuity correction of 0.5 in studies with zero cell frequencies

Мы можем вручную рассчитать отношение шансов группы B по сравнению с A

    round((0.0879 / (1-0.0879)) / (0.0408 / (1-0.0408)), 2)
    #> [1] 2.27

Теперь используйте оценки метарегрессии

    metareg(m, group)
    #> 
    #> Mixed-Effects Model (k = 14; tau^2 estimator: DL)
    #> 
    #> tau^2 (estimated amount of residual heterogeneity):     0.9127 (SE = 0.6639)
    #> tau (square root of estimated tau^2 value):             0.9553
    #> I^2 (residual heterogeneity / unaccounted variability): 88.96%
    #> H^2 (unaccounted variability / sampling variability):   9.06
    #> R^2 (amount of heterogeneity accounted for):            0.00%
    #> 
    #> Test for Residual Heterogeneity:
    #> QE(df = 12) = 108.7341, p-val < .0001
    #> 
    #> Test of Moderators (coefficient 2):
    #> QM(df = 1) = 1.8245, p-val = 0.1768
    #> 
    #> Model Results:
    #> 
    #>          estimate      se     zval    pval    ci.lb    ci.ub 
    #> intrcpt   -3.1586  0.3779  -8.3578  <.0001  -3.8993  -2.4179  *** 
    #> groupB     0.8184  0.6059   1.3507  0.1768  -0.3692   2.0060      
    #> 
    #> ---
    #> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Теперь просто возведите в степень оценку группы B, чтобы получить шансы соотношение B и A

    round(exp(0.8184), 2)
    #> [1] 2.27

<sup>Created on 2020-05-06 by the [reprex package](https://reprex.tidyverse.org) (v0.3.0)</sup>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...