2015-05-07 11 views
1

Я хотел бы применить функцию p.adjust в R, где n is < Число p-значений. Реальное число независимых тестов ниже, чем число p-значений, поскольку оно исходит из геномных данных с Desequilibrium Unequilibrium равновесием (эффективное число независимых тестов, Meff).p.adjust с n <число тестов

Однако функция p.adjust не позволяет: number of comparisons, must be at least length(p).

Кто-то знает, как изменить это значение по умолчанию в функции или другой общей функции для выполнения аналогичной работы? Спасибо!

Кругов шаги:

1 - 3242 проходят маркера = 3242 р-значение

2 - Прогнозное Meff является: +1096 (http://simplem.sourceforge.net/ процедурой)

Теперь нужно оценить скорректированный treshould или исправлен p-значения на основе Meff.

Я не уверен, какая из нескольких стратегий коррекции теста подходит лучше или как применить его в моих данных.

+1

Я предлагаю вам может получить лучшие результаты, спрашивая на stats.stackexchange.com, так как это вопрос методологии? – TARehman

+0

Если у вас $ M_effective $, почему бы вам просто не умножить $ P $ на это значение? –

+0

Коррекция Šidák дает αp = 1- (1-αe) 1/M и поправка Бонферрони дает αp = αe/M. В тех случаях, когда M необходимо заменить на эффективное количество независимых тестов, значение Meff. Почему я должен умножаться? – user2120870

ответ

4

Код:

p.adjust # typed at command line prints out the code 
    # copy the body of the function 

... на самом деле очень просто и все R. Просто переопределить функцию, которая комментирует, что stopifnot() линия:

my.p.adj <- function (p, method = p.adjust.methods, n = length(p)) 
# paste the body and edit this: 
.... 
p <- p[nna] 
lp <- length(p) 
# stopifnot(n >= lp) 
if (n <= 1) 
.... # hit enter