Làm cách nào để tính khoảng tin cậy cho các tỷ lệ lẻ gộp trong phân tích tổng hợp?


9

Tôi có hai bộ dữ liệu từ các nghiên cứu kết hợp trên toàn bộ gen. Thông tin duy nhất có sẵn là tỷ lệ lẻ và khoảng tin cậy của chúng (95%) cho mỗi SNP có kiểu gen. Tôi muốn tạo ra một lô rừng so sánh hai tỷ lệ cược này, nhưng tôi không thể tìm ra cách tính các khoảng tin cậy kết hợp để hình dung các hiệu ứng tóm tắt. Tôi đã sử dụng chương trình PLINK để thực hiện phân tích tổng hợp bằng các hiệu ứng cố định, nhưng chương trình không hiển thị các khoảng tin cậy này.

  • Làm thế nào tôi có thể tính toán khoảng tin cậy như vậy?

Dữ liệu có sẵn là:

  • Tỷ lệ lẻ cho mỗi nghiên cứu,
  • Khoảng tin cậy 95% và
  • Lỗi tiêu chuẩn.

Câu trả lời:


10

Trong hầu hết các phân tích tổng hợp về tỷ lệ cược, các lỗi tiêu chuẩn dựa trên tỷ lệ tỷ lệ cược . Vì vậy, bạn có biết của bạn đã được ước tính như thế nào (và số liệu họ phản ánh không? hoặc )? Cho rằng dựa trên , sau đó có thể dễ dàng tính toán lỗi tiêu chuẩn gộp (theo mô hình hiệu ứng cố định). Trước tiên, hãy tính trọng số cho từng kích thước hiệu ứng: . Thứ hai, lỗi tiêu chuẩn gộp là . Hơn nữa, hãy l o g ( O R i ) s e i O R l o g ( O R ) s e i l o g ( O R i ) w i = 1seilog(ORi)seiORlog(OR)seilog(ORi) seFEM=wi=1sei2 log(ORFEM)log(ORFEM)±1,96seFEMseFEM=1wlog(ORFEM)là hiệu ứng chung (mô hình hiệu ứng cố định). Sau đó, khoảng tin cậy 95% ("gộp") là .log(ORFEM)±1.96seFEM

Cập nhật

Vì BIBB vui lòng cung cấp dữ liệu, tôi có thể chạy phân tích tổng hợp 'đầy đủ' trong 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

Người giới thiệu

Xem, ví dụ, Lipsey / Wilson (2001: 114)


Cảm ơn bạn rất nhiều vì đã trả lời của bạn. Các erros tiêu chuẩn được dựa trên Nhật ký tự nhiên của OR Ln (ORi). Đầu tiên tôi tính các trọng số cho SE1 (0,0937) = 10,67 và cho SE2 (0,1029) = 9,71. Vậy SE tính toán theo FEM là = 0,2215. HOẶC gộp cho các SNP này là = 0,7645, vì vậy khoảng tin cậy 95% là = (0,515-1,228). Tôi có đúng không ??, nếu tôi làm vậy, tôi lo lắng vì khi tôi so sánh tất cả các kết quả trong một lô rừng, khoảng thời gian kết hợp quá lớn so với bản gốc trong mỗi nghiên cứu = nghiên cứu 1 = 95% CI (0,63-0,91) HOẶC = 0,75, nghiên cứu 2 KTC 95% (0,69-1,04) HOẶC = 0,85. Mọi thứ ổn chứ? Cảm ơn
BIBB

Không, tiếc là không. Xin lưu ý rằng công thức của tôi cho là sai, đó là chứ không phải . Như bạn có thể thấy, CI 95% 'gộp' là [0,693; 0,9092]. Tôi cũng tự hỏi tại sao gộp OR của bạn lại khác (0,7645 so với 0,7938). Xin lỗi, tôi phải đi nhưng tôi sẽ quay lại vào ngày mai ...1 / ( s e 2 ) 1 / s đw1/(se2)1/se
Bernd Weiss

Cảm ơn bạn rất nhiều !!!, kết quả đó phù hợp hơn tôi. Tổng hợp HOẶC tôi đưa cho bạn là ở đầu ra PLINK ... bây giờ tôi rất quan tâm đến tất cả các kết quả phân tích tổng hợp của mình ... Tôi nên sử dụng R.
BIBB

Tôi đã bao gồm một liên kết đến cuốn sách "Phân tích tổng hợp thực tế" của Lipsey / Wilson (xem Tài liệu tham khảo). Tôi hơi lo lắng rằng PLINK và kết quả của tôi khác nhau. Bạn có biết họ sử dụng phương pháp phân tích tổng hợp nào không? Bạn cũng nên tính đến việc tôi hoàn toàn không biết gì về "nghiên cứu kết hợp trên toàn bộ gen".
Bernd Weiss

Cảm ơn giải pháp, tôi tự hỏi liệu tôi có thể áp dụng phương pháp phân tích tổng hợp cho vấn đề của mình không. Những gì tôi làm, là mô phỏng một hồi quy bằng cách gây ra một số tiếng ồn. Tôi chạy phân tích n lần (giả sử n là 500) và thu được n OR và CI. Đây là đường dẫn đến câu hỏi: stats.stackexchange.com/questions/206042/ . Vì vậy, tôi có thể thực hiện chức năng metmetagen Gọi theo từng ORs log và lỗi std không. Được thiên vị giới thiệu với giá trị lớn hơn củan
lukeg

3

Trên thực tế, bạn có thể sử dụng phần mềm như METAL được thiết kế đặc biệt để phân tích tổng hợp trong ngữ cảnh GWA.

Thật khó xử khi plink không cung cấp khoảng tin cậy. Tuy nhiên, bạn có thể nhận được CI vì bạn có OR cuối cùng (lấy ) và giá trị (do đó là ) cho hiệu ứng cố định.p zlog(OR)pz

Phương pháp của Bernd thậm chí còn chính xác hơn.

Xin lưu ý rằng tôi sẽ lo lắng hơn về hướng hiệu ứng vì có vẻ như bạn chỉ có số liệu thống kê tóm tắt cho mỗi nghiên cứu nhưng không có gì chắc chắn đó là alen OR. Trừ khi bạn biết nó được thực hiện trên cùng một alen.

Cơ đốc giáo


0

Đây là một nhận xét (không có đủ điểm đại diện). Nếu bạn biết kích thước mẫu (#case và #controls) trong mỗi nghiên cứu và tỷ lệ chênh lệch cho SNP, bạn có thể xây dựng lại bảng 2x2 của trường hợp / kiểm soát theo a / b (trong đó a và b là hai alen) cho mỗi trong hai nghiên cứu. Sau đó, bạn có thể chỉ cần thêm các số đó để có được bảng cho nghiên cứu tổng hợp và sử dụng số này để tính tỷ lệ chênh lệch tỷ lệ cược và khoảng tin cậy.


Cảm ơn bạn vì câu trả lời. Thật không may, tôi không có tần số hoặc số lượng alen, các tác giả không hiển thị những dữ liệu này, họ chỉ đặt các khoảng SNP ID, OR và Confidence (95%). Tôi chỉ trích xuất giá trị SE từ mỗi nghiên cứu, nhưng bây giờ tôi không kết hợp chúng (SE hoặc CI) !!!! Cứu giúp!!
BIBB

Ồ, bạn nói đúng - cần thêm một mức độ tự do ở đây. Thông thường các tác giả đưa ra các alen freq. (đôi khi bị chôn vùi trong thông tin supp.). Nếu không, bạn có thể tìm thấy nó từ một nguồn bên ngoài như hapmap (giả sử GWAS đã được thực hiện trên một dân số tương tự). Một ý tưởng khác: khoảng tin cậy tự nó có thể cho bạn biết các alen freq. Tất cả những thứ khác đều bằng nhau (cỡ mẫu và OR), SNP với tần số alen thấp. có ít sóng mang hơn trong cả hai nhóm, do đó khoảng tin cậy rộng hơn. Bạn có thể thử các tần số alen khác nhau., Tính khoảng tin cậy cho từng loại và lấy tần số alen. phù hợp với những gì đã được báo cáo
Hoặc Zuk

Tôi sẽ cố gắng thực hiện điều đó, nhưng trong lúc này, tôi tò mò về cách PLINK có thể tính toán HOẶC chỉ với các tham số này: trình xác thực SNP, tỷ lệ Odds (hoặc BETA, v.v.) và lỗi SE Standard của OR (hoặc người dùng- trường trọng lượng xác định). Bạn có thể nhận ra rằng PLINK đã không yêu cầu tần số alen ... vì vậy có một cách để thực hiện điều này ...
BIBB

0

Đây là mã để có được các TCTD cho phân tích tổng hợp như trong 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)
}

Gọi hàm R:

getCI(log(plinkORs), plinkSEs)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.