Jak obliczyć przedziały ufności dla połączonych wskaźników nieparzystych w metaanalizie?

9

Mam dwa zestawy danych z badań asocjacyjnych całego genomu. Jedynymi dostępnymi informacjami są współczynniki nieparzyste i przedziały ufności (95%) dla każdego genotypowanego SNP. Chcę wygenerować działkę leśną porównującą te dwa współczynniki szans, ale nie mogę znaleźć sposobu na obliczenie łączonych przedziałów ufności w celu wizualizacji efektów podsumowania. Użyłem programu PLINK do przeprowadzenia metaanalizy przy użyciu ustalonych efektów, ale program nie wykazał tych przedziałów ufności.

  • Jak mogę obliczyć takie przedziały ufności?

Dostępne dane to:

  • Dziwne wskaźniki dla każdego badania,
  • 95% przedziały ufności i
  • Standardowe błędy.
BIBB
źródło

Odpowiedzi:

10

W większości metaanalizy standardowe błędy oparte są na . Czy wiesz, jak Twoje wartości (i jakie dane odzwierciedlają? lub )? Biorąc pod uwagę, że są oparte na , można z łatwością obliczyć standardowy błąd w puli (w modelu o stałym efekcie). Najpierw wagi dla każdego rozmiaru efektu: . Po drugie, standardowy błąd w puli to . Ponadto, pozwól sięsejalosol(ORja)smijaORlosol(OR)smijalosol(ORja)wja=1smija2)smifamiM.=1wlosol(ORfamiM.)być wspólnym efektem (model z efektem stałym). Następnie 95-procentowy przedział ufności ”) to .losol(ORfamiM.)±1,96smifamiM.

Aktualizacja

Ponieważ BIBB uprzejmie dostarczył dane, jestem w stanie przeprowadzić „pełną” metaanalizę w języku R.

library(meta)
or <- c(0.75, 0.85)
se <- c(0.0937, 0.1029)
logor <- log(or)
(or.fem <- metagen(logor, se, sm = "OR"))

> (or.fem <- metagen(logor, se, sm = "OR"))
    OR            95%-CI %W(fixed) %W(random)
1 0.75  [0.6242; 0.9012]     54.67      54.67
2 0.85  [0.6948; 1.0399]     45.33      45.33

Number of trials combined: 2 

                         OR           95%-CI       z  p.value
Fixed effect model   0.7938  [0.693; 0.9092] -3.3335   0.0009
Random effects model 0.7938  [0.693; 0.9092] -3.3335   0.0009

Quantifying heterogeneity:
tau^2 < 0.0001; H = 1; I^2 = 0%

Test of heterogeneity:
    Q d.f.  p.value
 0.81    1   0.3685

Method: Inverse variance method

Bibliografia

Patrz np. Lipsey / Wilson (2001: 114)

Bernd Weiss
źródło
Dziękuję bardzo za odpowiedź. Standardowe błędy są oparte na naturalnym logu OR Ln (ORi). Najpierw obliczam wagi dla SE1 (0,0937) = 10,67 i dla SE2 (0,1029) = 9,71. Tak więc obliczona SE dla MES = 0,2215. Połączone OR dla tych SNP wynosi = 0,7645, więc 95% przedziały ufności wynoszą = (0,515–1,228). Czy mam rację? Jeśli tak, martwię się, ponieważ podczas porównywania wszystkich wyników na działkach leśnych połączone przedziały są zbyt duże w porównaniu do oryginałów w każdym badaniu = badanie 1 = 95% CI (0,63-0,91) LUB = 0,75, badanie 2 95% CI (0,69-1,04) LUB = 0,85. Wszystko w porządku?. Dzięki
BIBB,
Nie, niestety nie. Zauważ, że moja formuła dla była błędna, wynosi nie . Jak widać, „zbiorcza” 95% CI wynosi [0,693; 0,9092]. Zastanawiam się także, dlaczego twoja pula OR jest inna (0,7645 vs 0,7938). Przepraszam, muszę iść, ale wrócę do niego jutro ...w1/(smi2))1/smi
Bernd Weiss,
Dziękuję bardzo !!!, ten wynik jest bardziej spójny niż mój. Połączone OR, które ci daję, znajdowało się w wyjściu PLINK ... teraz jestem bardzo zaniepokojony wszystkimi moimi wynikami metaanalizy ... Lepiej skorzystam z R.
BIBB
Zamieściłem link do książki Lipsey / Wilson „Praktyczna metaanaliza” (patrz źródła). Martwię się trochę, że PLINK i moje wyniki się różnią. Czy wiesz, jakiej metodyki metaanalizy używają? Powinieneś także wziąć pod uwagę, że absolutnie nie mam pojęcia o „badaniach asocjacyjnych obejmujących cały genom”.
Bernd Weiss,
Dzięki za rozwiązanie, zastanawiam się, czy mogę zastosować metodę metaanalizy do mojego problemu. To, co robię, to symulowanie regresji poprzez indukowanie hałasu. Analizę przeprowadzam n razy (powiedzmy, że n to 500) i otrzymuję n OR i CI. Oto link do pytania: stats.stackexchange.com/questions/206042/... . Czy mogę więc zaimplementować funkcję „metagen” wywołującą każdą log OR i std err. Wprowadzane jest uprzedzenie o większych wartościachn
luk 11.04.16
3

W rzeczywistości możesz użyć oprogramowania takiego jak METAL, który jest specjalnie zaprojektowany do metaanalizy w kontekście GWA.

To dziwne, że plink nie podaje przedziału ufności. Możesz jednak uzyskać CI, ponieważ masz ostateczną OR (weźlog(LUB)) i p-wartość (stąd z) dla ustalonego efektu.

Metoda Bernda jest jeszcze bardziej precyzyjna.

Strzeż się, że bardziej martwię się o kierunek efektu, ponieważ wygląda na to, że masz tylko statystyki podsumowujące dla każdego badania, ale nie ma pewności, który jest allel OR. Chyba że wiesz, że odbywa się to na tym samym allelu.

chrześcijanin

genotepes
źródło
0

To jest komentarz (nie ma wystarczającej liczby punktów rep.). Jeśli znasz wielkość próby (# przypadków i # kontroli) w każdym badaniu oraz iloraz szans dla SNP, możesz zrekonstruować tabelę przypadków / kontroli 2x2 za pomocą a / b (gdzie a i b są dwoma allelami) dla każde z dwóch badań. Następnie możesz po prostu dodać te liczby, aby uzyskać tabelę dla meta-badania, i użyć jej do obliczenia połączonego ilorazu szans i przedziałów ufności.

Lub Zuk
źródło
Dziękuję za Twoją odpowiedź. Niestety nie mam częstotliwości alleli ani zliczeń, autorzy nie pokazali tych danych, po prostu podali SNP ID, OR i przedziały ufności (95%). Właśnie wyodrębniłem wartość SE z każdego badania, ale teraz nie łączę ich (SE lub CI) !!!! Wsparcie!!
BIBB,
Och, masz rację - potrzebny jest tutaj jeszcze jeden stopień swobody. Zwykle autorzy podają częstotliwość alleli. (czasami pochowany w supp. informacji.). Jeśli nie, możesz go znaleźć z zewnętrznego źródła, takiego jak hapmap (zakładając, że GWAS wykonano na podobnej populacji). Kolejny pomysł: sam przedział ufności może powiedzieć częstość alleli. Wszystkie pozostałe są równe (wielkość próby i OR), SNP o niskiej częstotliwości alleli. mają mniej nosicieli w obu grupach, stąd szerszy przedział ufności. Możesz wypróbować różne częstości alleli., Obliczyć przedział ufności dla każdego z nich i uzyskać częstotliwość alleli. pasujące do tego, co zostało zgłoszone
Lub Zuk
Spróbuję to zrobić, ale tymczasem jestem ciekawy, w jaki sposób PLINK może obliczyć pulę OR tylko z tymi parametrami: identyfikator SNP, iloraz szans OR (lub BETA itp.) I błąd standardowy SE dla OR (lub użytkownika zdefiniowane pole masy). Możesz zdać sobie sprawę, że PLINK nie prosił o częstotliwości alleli ... więc istnieje sposób, aby to zrobić ...
BIBB
0

Oto kod, aby pobrać CI do metaanalizy jak w PLINK:

getCI = function(mn1, se1, method){
    remov = c(0, NA)
    mn    = mn1[! mn1 %in% remov]
    se    = se1[! mn1 %in% remov]
    vars  <- se^2
    vwts  <- 1/vars

    fixedsumm <- sum(vwts * mn)/sum(vwts)
    Q         <- sum(((mn - fixedsumm)^2)/vars)
    df        <- length(mn) - 1
    tau2      <- max(0, (Q - df)/(sum(vwts) - sum(vwts^2)/sum(vwts)) )

    if (method == "fixed"){ wt <- 1/vars } else { wt <- 1/(vars + tau2) }

    summ <- sum(wt * mn)/sum(wt)
    if (method == "fixed") 
         varsum <- sum(wt * wt * vars)/(sum(wt)^2)
    else varsum <- sum(wt * wt * (vars + tau2))/(sum(wt)^2)

    summtest   <- summ/sqrt(varsum)
    df         <- length(vars) - 1
    se.summary <- sqrt(varsum)
    pval       = 1 - pchisq(summtest^2,1)
    pvalhet    = 1 - pchisq(Q, df)
    L95        = summ - 1.96*se.summary
    U95        = summ + 1.96*se.summary
    # out = c(round(c(summ,L95,U95),2), format(pval,scientific=TRUE), pvalhet)   
    # c("OR","L95","U95","p","ph")
    # return(out)

    out = c(paste(round(summ,3), ' [', round(L95,3), ', ', round(U95,3), ']', sep=""),
            format(pval, scientific=TRUE), round(pvalhet,3))
    # c("OR","L95","U95","p","ph")
    return(out)
}

Wywołanie funkcji R:

getCI(log(plinkORs), plinkSEs)
Pankaj
źródło