Hiệu chỉnh thử nghiệm nhiều giả thuyết với Stewamini-Hochberg, p-value hay q-value?


22

Đưa ra một danh sách các giá trị p được tạo ra từ các thử nghiệm độc lập, được sắp xếp theo thứ tự tăng dần, người ta có thể sử dụng thủ tục Stewamini-Hochberg để điều chỉnh nhiều thử nghiệm . Đối với mỗi giá trị p, quy trình Stewamini-Hochberg cho phép bạn tính Tỷ lệ khám phá sai (FDR) cho từng giá trị p. Nghĩa là, tại mỗi "vị trí" trong danh sách giá trị p được sắp xếp, nó sẽ cho bạn biết tỷ lệ nào trong số đó có khả năng là sự từ chối sai của giả thuyết khống.

Câu hỏi của tôi là, những giá trị FDR này được gọi là " giá trị q " hay " giá trị p được sửa " hay là một cái gì đó hoàn toàn khác?

EDIT 2010-07-12: Tôi muốn mô tả đầy đủ hơn về quy trình sửa lỗi mà chúng tôi đang sử dụng. Đầu tiên, chúng tôi sắp xếp các kết quả thử nghiệm theo thứ tự tăng dần theo giá trị p gốc chưa được sửa của chúng. Sau đó, chúng tôi lặp lại danh sách, tính toán những gì tôi đã diễn giải là "FDR dự kiến ​​nếu chúng tôi từ chối giả thuyết khống cho điều này và tất cả các thử nghiệm trước trong danh sách", sử dụng hiệu chỉnh BH, với alpha bằng với quan sát , giá trị p chưa được hiệu chỉnh cho lần lặp tương ứng. Sau đó, chúng tôi lấy, như cái mà chúng tôi đã gọi là "giá trị q" của chúng tôi, tối đa của giá trị được sửa trước đó (FDR ở lần lặp i - 1) hoặc giá trị hiện tại (tại i), để duy trì tính đơn điệu.

Dưới đây là một số mã Python đại diện cho thủ tục này:

def calc_benjamini_hochberg_corrections(p_values, num_total_tests):
    """
    Calculates the Benjamini-Hochberg correction for multiple hypothesis
    testing from a list of p-values *sorted in ascending order*.

    See
    http://en.wikipedia.org/wiki/False_discovery_rate#Independent_tests
    for more detail on the theory behind the correction.

    **NOTE:** This is a generator, not a function. It will yield values
    until all calculations have completed.

    :Parameters:
    - `p_values`: a list or iterable of p-values sorted in ascending
      order
    - `num_total_tests`: the total number of tests (p-values)

    """
    prev_bh_value = 0
    for i, p_value in enumerate(p_values):
        bh_value = p_value * num_total_tests / (i + 1)
        # Sometimes this correction can give values greater than 1,
        # so we set those values at 1
        bh_value = min(bh_value, 1)

        # To preserve monotonicity in the values, we take the
        # maximum of the previous value or this one, so that we
        # don't yield a value less than the previous.
        bh_value = max(bh_value, prev_bh_value)
        prev_bh_value = bh_value
        yield bh_value

tài liệu tham khảo của bạn về giá trị q phải là projecteuclid.org/ từ
robin girard

Thủ tục Stewamini-Hochberg không phải để tính toán FDR, mà là để kiểm soát FDR (giữ nó dưới một ngưỡng được xác định trước)
cướp tài sản

Câu hỏi của bạn, như nó đứng, là khó hiểu. Bạn có ý nghĩa gì khi "nhắc đến"?
cướp girard

@robin Rất cám ơn ý kiến ​​của bạn. Tôi xin lỗi vì sự nhầm lẫn của tôi về thuật ngữ. Tôi đã cập nhật câu hỏi để bao gồm một mô tả đầy đủ hơn về quy trình sửa lỗi của chúng tôi, với hy vọng rằng nó cung cấp làm rõ. Tôi cũng đã cập nhật liên kết q-value; cảm ơn đã chỉ cho tôi điều đó
gotgenes

Câu trả lời:


17

Như Robin đã nói, bạn đã có phương pháp Stewamini-Hochberg ngược. Với phương pháp đó, bạn đặt giá trị cho Q (chữ hoa Q; FDR mong muốn tối đa) và sau đó sắp xếp các phép so sánh của bạn thành hai cọc. Mục tiêu là không quá Q% so sánh trong đống "khám phá" là sai, và do đó ít nhất 100% -Q% là đúng.

Nếu bạn tính một giá trị mới cho mỗi so sánh, đó là giá trị của Q mà so sánh đó sẽ chỉ được coi là một khám phá, thì những giá trị mới đó là giá trị q (chữ thường q; xem liên kết đến một bài báo của John Storey trong câu hỏi ban đầu).


Chúng tôi sắp xếp các kết quả thử nghiệm theo thứ tự tăng dần theo giá trị p gốc chưa được sửa của chúng, sau đó, lặp lại danh sách, tính toán FDR dự kiến ​​nếu chúng tôi từ chối giả thuyết khống cho điều này và tất cả các thử nghiệm trước trong danh sách, sử dụng BH hiệu chỉnh bằng cách sử dụng một alpha bằng với giá trị p không quan sát được. Sau đó, chúng tôi lấy, như cái mà chúng tôi đã gọi là "giá trị q" của chúng tôi, mức tối đa của giá trị được sửa trước đó (FDR khi lặp i - 1) hoặc giá trị hiện tại (at i), để duy trì tính đơn điệu. Điều này có giống như các thủ tục bạn mô tả trong đoạn thứ hai của bạn?
gotgenes
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.