Код Senior Множественные проверки обновлено
Процедура Бенджамини-Хохберга на Python
Условие
Напишите bh_reject(pvals, q): какие гипотезы отвергает процедура Бенджамини-Хохберга на уровне FDR q. Найдите наибольшее k (с единицы), для которого k-й по возрастанию p-value ≤ k / m * q (сравнивайте с допуском 1e-12), и отвергните k наименьших. Верните список bool в исходном порядке.
Примеры
bh_reject([0.001, 0.012, 0.03, 0.04, 0.2], 0.05) // [true, true, true, true, false]
bh_reject([0.2, 0.3], 0.05) // [false, false]
bh_reject([0.04, 0.01, 0.03], 0.05) // [true, true, true]
Как подойти
Подсказки: 2
- Ищите максимальное k, а не первое непрошедшее.
- Отвергаются k наименьших p-value.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.