Meta-analizde toplanan tek oranlar için güven aralıkları nasıl hesaplanır?


9

Genom çapında ilişki çalışmalarından iki veri setim var. Mevcut tek bilgi, her genotipli SNP için tek oranlar ve bunların güven aralıklarıdır (% 95). Bu iki olasılık oranını karşılaştıran bir orman grafiği oluşturmak istiyorum, ancak özet efektleri görselleştirmek için birleşik güven aralıklarını hesaplamanın yolunu bulamıyorum. PLINK programını sabit efektler kullanarak meta-analiz yapmak için kullandım, ancak program bu güven aralıklarını göstermedi.

  • Bu tür güven aralıklarını nasıl hesaplayabilirim?

Mevcut veriler:

  • Her çalışma için garip oranlar,
  • % 95 güven aralığı ve
  • Standart hatalar.

Yanıtlar:


10

oranlarının çoğu meta-analizinde, standart hataları günlük oran oranları . Peki, nasıl tahmin edildiğini (ve hangi metriği yansıttığını biliyor musunuz? ya da )? dayandığı göz önüne alındığında , havuzlanmış standart hata (sabit efekt modelinde) kolayca hesaplanabilir. İlk olarak, her efekt boyutu için ağırlıkları hesaplayalım: . İkinci olarak, toplanan standart hata . Ayrıca yapalımsebenlÖg(ÖR,ben)sebenÖR,lÖg(ÖR,)sebenlÖg(ÖR,ben)wben=1seben2seFEM=1ΣwlÖg(ÖR,FEM)ortak etki olmak (sabit etki modeli). Daha sonra, ("havuzlanmış")% 95 güven aralığı .lÖg(ÖR,FEM)±1.96seFEM

Güncelleme

BIBB verileri nazikçe sağladığından, R'de 'tam' meta-analizi çalıştırabiliyorum.

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

Referanslar

Bkz. Örneğin Lipsey / Wilson (2001: 114)


Yanıtınız için çok teşekkür ederim. Standart hatalar OR Ln'nin (ORi) doğal Günlüğü'ne dayanır. İlk önce SE1 (0.0937) = 10.67 ve SE2 (0.1029) = 9.71 için ağırlıkları hesaplıyorum. Yani FEM altındaki hesaplanan SE = 0.2215'tir. Bu SNP'ler için birleştirilmiş OR = 0.7645 olduğundan,% 95 güven aralığı = (0.515-1.228). Doğruyum ??, eğer öyleyse, endişeliyim çünkü bir Orman arazisindeki tüm sonuçları karşılaştırdığımda, birleşik aralıklar her çalışmada orijinallerle karşılaştırıldığında çok büyük = çalışma 1 =% 95 CI (0.63-0.91) VEYA = 0.75, çalışma 2.95% CI (0.69-1.04) VEYA = 0.85. Her şey yolunda?. Teşekkürler
BIBB

Hayır, maalesef değil. Lütfen için formülümün yanlış olduğunu, değil unutmayın . Gördüğünüz gibi, 'havuzlanmış'% 95 CI [0.693; 0,9092]. Ayrıca, havuzlanmış OR'nizin neden farklı olduğunu merak ediyorum (0.7645'e karşı 0.7938). Üzgünüm, gitmek zorundayım ama yarın geri döneceğim ...w1/(se2)1/se
Bernd Weiss

Çok teşekkür ederim !!!, bu sonuç benimkinden daha tutarlı. Sana verdiğim VEYA vereceğim PLINK çıktısındaydı ... şimdi tüm meta-analiz sonuçlarım hakkında çok endişeliyim ... R.
BIBB'i

Lipsey / Wilson "Pratik meta-analiz" kitabına bir bağlantı ekledim (bkz. Referanslar). PLINK ve sonuçlarımın farklı olması konusunda biraz endişeliyim. Hangi meta analiz yöntemlerini kullandıklarını biliyor musunuz? Ayrıca, "genom çapında ilişki çalışmaları" hakkında hiçbir fikrim olmadığını da dikkate almalısınız.
Bernd Weiss

Çözüm için teşekkürler, problemime meta-analiz yöntemini uygulayıp uygulayamayacağımı merak ediyorum. Yaptığım şey, biraz gürültüye neden olarak bir gerilemeyi simüle etmektir. Analizi n kere çalıştırıyorum (diyelim ki n 500) ve n ORs ve CI elde ediyorum. İşte sorunun bağlantısı: stats.stackexchange.com/questions/206042/… . Bu yüzden her bir günlük OR'lerini ve std errs'lerini çağıran ´metagen´ işlevini uygulayabilir miyim. Önyargı daha büyük değerlerle tanıtılıyor mun
lukeg

3

Aslında, GWA bağlamında meta analizler için özel olarak tasarlanmış METAL gibi bir yazılım kullanabilirsiniz .

Plink'in güven aralığı vermemesi çok garip. Ancak, sabit etki için son OR (take ) ve değerine (dolayısıyla ) sahip olduğunuz için CI alabilirsiniz .günlük(VEYA)pz

Bernd'ın yöntemi daha da kesin.

Her çalışma için yalnızca özet istatistikleriniz var ama OR aleli olduğundan emin olmak için hiçbir şeye benzemiyor gibi, etki yönü hakkında daha fazla endişeleneceğime dikkat edin. Aynı alel üzerinde yapıldığını bilmiyorsan.

Hristiyan


0

Bu bir yorum (yeterli destek puanı yok). Her çalışmada örnek boyutunu (#cases ve #controls) ve bir SNP için olasılık oranını biliyorsanız, a / b ile 2x2 vaka / kontrol tablosunu yeniden oluşturabilirsiniz (burada a ve b iki aleldir) iki çalışmanın her biri. Daha sonra meta-çalışma için bir tablo almak için bu sayıları ekleyebilir ve birleşik oran-oran ve güven aralıklarını hesaplamak için bunu kullanabilirsiniz.


Cevabınız için teşekkür ederim. Ne yazık ki, alel frekansları veya sayılarım yok, yazarlar bu verileri göstermediler, sadece SNP ID, OR ve Güven aralıklarını (% 95) koydular. Her çalışmadan SE değerini çıkardım, ancak şimdi bunları birleştirmiyorum (SE veya CI) !!!! Yardım!!
BIBB

Oh, haklısın - burada bir serbestlik daha gerekiyor. Genellikle yazarlar alel sıklığını verir. (bazen ek bilgilerde gömülüdür.). Değilse, hapmap gibi bir dış kaynaktan bulabilirsiniz (GWAS'ın benzer bir popülasyonda yapıldığı varsayılarak). Başka bir fikir: güven aralığının kendisi size alel frekansını söyleyebilir. Diğer her şey eşittir (örnek büyüklüğü ve OR), düşük alel frekansı olan SNP'ler. her iki grupta da daha az taşıyıcı bulunduğundan, daha geniş bir güven aralığı vardır. Farklı alel frekanslarını deneyebilir, her biri için güven aralığını hesaplayabilir ve alel frekansını alabilirsiniz. bildirilen ile eşleşen
Or Zuk

Bunu yapmaya çalışacağım, ancak bu arada PLINK'in sadece bu parametrelerle havuzlanmış OR'yi nasıl hesaplayabileceğini merak ediyorum: SNP idenitifier, OR Odds oranı (veya BETA, vb.) Ve OR (veya kullanıcı- tanımlanmış ağırlık alanı). PLINK'in alel frekanslarını istemediğini fark edebilirsiniz ... bu yüzden bunu yapmanın bir yolu var ...
BIBB

0

PLINK'te olduğu gibi meta analiz için CI'leri almak için kod:

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)
}

R işlevi çağrılıyor:

getCI(log(plinkORs), plinkSEs)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.