Benjamini-Hochberg, p- 값 또는 q- 값을 사용한 다중 가설 검정 수정?


22

독립적 인 테스트에서 생성 된 p- 값 목록이 오름차순으로 정렬되어 있으면 여러 테스트 수정에 Benjamini-Hochberg 절차 를 사용할 수 있습니다 . 각 p- 값에 대해 Benjamini-Hochberg 절차를 사용하면 각 p- 값에 대한 FDR (False Discovery Rate)을 계산할 수 있습니다. 즉, 정렬 된 p- 값 목록의 각 "위치"에서 귀무 가설을 잘못 기각 할 가능성이있는 비율을 알려줍니다.

내 질문은, 이러한 FDR 값이 " q-values "또는 " 정정 된 p-values "또는 완전히 다른 것입니까?

편집 2010-07-12 : 사용중인 수정 절차에 대해 자세히 설명하겠습니다. 먼저 수정되지 않은 원래 p- 값에 따라 테스트 결과가 오름차순으로 정렬됩니다. 그런 다음 BH 보정을 사용하여 관찰 된 것과 동일한 알파를 사용하여 "목록에 대한 귀무 가설을 기각 할 경우 예상되는 FDR"로 해석 한 것을 계산하여 목록을 반복합니다. 각 반복에 대해 수정되지 않은 p- 값입니다. 그런 다음 "q- 값"이라고 부르는 것으로 단 조성을 유지하기 위해 이전에 수정 된 값의 최대 값 (반복 i-1에서 FDR) 또는 현재 값 (i에서 i)을 취합니다.

다음은이 절차를 나타내는 일부 Python 코드입니다.

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

q-value에 대한 참조는 projecteuclid.org/…
robin girard

Benjamini-Hochberg 절차는 FDR을 계산하기위한 것이 아니라 FDR을 제어하기위한 것입니다 (사전 정의 된 임계 값 이하로 유지)
Robin girard

귀하의 질문은 이해하기 어렵습니다. "참조"는 무슨 뜻입니까?
로빈 지라드

@robin 귀하의 의견에 감사드립니다. 용어 혼동에 대해 사과드립니다. 설명을 제공하기 위해 수정 절차에 대한 자세한 설명을 포함하도록 질문을 업데이트했습니다. 또한 q- 값 링크를 업데이트했습니다. 그것을 지적 해 주셔서 감사합니다.
gotgenes

답변:


17

Robin이 말했듯이 Benjamini-Hochberg 방법은 거꾸로 있습니다. 이 방법을 사용하면 Q (대문자 Q; 원하는 최대 FDR) 값을 설정 한 다음 비교를 두 개의 파일로 정렬합니다. 목표는 "발견"파일에서 비교의 Q % 이하가 허위이므로 100 % -Q % 이상이 사실이라는 것입니다.

각 비교에 대해 새 값을 계산 한 경우 (비교가 거의 발견으로 간주되지 않는 Q 값) 새 값은 q- 값입니다 (소문자 q; John Storey의 논문 링크 참조) 원래 질문에서).


우리는 수정되지 않은 원래 p- 값에 따라 테스트 결과를 오름차순으로 정렬 한 다음 목록을 반복하고 BH를 사용하여 목록 및 이전의 모든 테스트에 대한 귀무 가설을 기각 할 경우 예상되는 FDR을 계산합니다. 관찰 된 보정되지 않은 p- 값과 동일한 알파를 사용한 보정. 그런 다음 "q- 값"이라고 부르는 것으로 단 조성을 유지하기 위해 이전에 수정 된 값의 최대 값 (반복에서 FDR i - 1) 또는 현재 값 (at i)을 취합니다. 두 번째 단락에서 설명한 절차처럼 들립니까?
gotgenes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.