Коррекция множественных гипотез с помощью Бенджамини-Хохберга, p-значения или q-значения?


22

Учитывая список значений p, полученных из независимых тестов, отсортированных в порядке возрастания, можно использовать процедуру Бенджамини-Хохберга для множественной коррекции тестирования . Для каждого значения p процедура Бенджамини-Хохберга позволяет рассчитать частоту ложных открытий (FDR) для каждого из значений p. То есть, в каждой «позиции» в отсортированном списке значений p он скажет вам, какая часть из них может быть ложным отклонением нулевой гипотезы.

Мой вопрос заключается в том, следует ли называть эти значения FDR « q-значениями » или « скорректированными p-значениями », или как что-то еще целиком?

РЕДАКТИРОВАТЬ 2010-07-12: Я хотел бы более полно описать процедуру коррекции, которую мы используем. Сначала мы сортируем результаты теста по возрастанию по их неоткорректированному исходному значению p. Затем мы выполняем итерацию по списку, вычисляя то, что я интерпретировал как «ожидаемый FDR, если бы мы отвергли нулевую гипотезу для этого и всех предыдущих тестов в списке», используя поправку BH, причем альфа равна наблюдаемой , неоткорректированное p-значение для соответствующей итерации. Затем мы берем, как мы называем наше «q-значение», максимум ранее исправленного значения (FDR на итерации i - 1) или текущего значения (на 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-значение должна быть projecteuclid.org/…
Робин Джирард

Процедура Бенджамини-Хохберга предназначена не для расчета FDR, а для контроля FDR (поддерживая его ниже заданного порога)
Робин Джирард

Ваш вопрос в его нынешнем виде трудно понять. Что вы подразумеваете под "упоминается"?
Робин Жирар

@robin Большое спасибо за ваши комментарии. Я прошу прощения за мою путаницу в терминологии. Я обновил вопрос, включив в него более полное описание нашей процедуры исправления, в надежде, что она даст разъяснения. Я также обновил ссылку q-value; спасибо, что указал мне на это.
получил

Ответы:


17

Как сказал Робин, у вас есть метод Бенджамини-Хохберга в обратном направлении. С помощью этого метода вы устанавливаете значение для Q (верхний регистр Q; максимальный желаемый FDR), а затем сортирует ваши сравнения в две стопки. Цель состоит в том, чтобы не более Q% сравнений в куче «обнаружения» были ложными, и, таким образом, по крайней мере 100% -Q% были истинными.

Если вы вычислили новое значение для каждого сравнения, то есть значение Q, при котором эти сравнения едва ли будут считаться открытием, тогда эти новые значения будут q-значениями (строчные буквы q; см. Ссылку на статью Джона Стори в оригинальном вопросе).


Мы сортируем результаты теста в порядке возрастания по их неоткорректированному исходному p-значению, а затем, перебирая список, рассчитываем ожидаемый FDR, если мы отклоним нулевую гипотезу для этого и всех предыдущих тестов в списке, используя BH коррекция с использованием альфа-канала, равного наблюдаемому неоткорректированному p-значению. Затем мы берем, как мы называем наше «q-значение», максимум ранее исправленного значения (FDR на итерации i - 1) или текущего значения (в i), чтобы сохранить монотонность. Похоже ли это на процедуру, описанную во втором абзаце?
получил
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.