Исправление множественных сравнений в процедуре перестановки с использованием R и мульттеста - PullRequest
3 голосов
/ 05 мая 2020

Я провел тест на перестановку, включающий в себя нулевое распределение расстояний, а затем 5 наблюдаемых расстояний в качестве статистики. Теперь я хотел бы исправить множественные сравнения с помощью метода Max-T; используя пакет multtest и функции ss.maxT, ss.minT и / или sd.maxT. Но у меня проблемы с реализацией функций и пониманием результатов; первая функция выдает только единицы, третья возвращает только нескорректированные p-значения, а третья выдает ошибку. См. Пример данных ниже:

## Example data
# Observed distances
obs <- matrix(c(0.001, 0.2, 0.50, 0.9, .9999))
null_values <- runif(20)

# Null distribution of distances
null <- matrix(null_values, nrow = length(obs), ncol = length(c(1:20)), byrow=TRUE)
null

# Hypotheses
alternative <- "more"
# The unadjusted raw p-value
praw <- c(0, 0.1, 0.45, 0.85,  1)

# Only getting 1s as results
adjusted_p_values_max <- multtest::ss.maxT(null, obs, alternative, get.cutoff=FALSE, 
                                 get.cr = FALSE, get.adjp = TRUE, alpha = 0.05)

adjusted_p_values_max

# Should probably use this one: but getting praw back, which is supposedly correct (but perhaps odd) 
# this is because of the null distribution being identical for all 5 variables. 
# Hence, should each word be tested against its own unique null distribution?
adjusted_p_values_min <- multtest::ss.minP(null, obs, praw, alternative, get.cutoff=FALSE, 
                                 get.cr = FALSE, get.adjp = TRUE, alpha=0.05)
adjusted_p_values_min


# Throwing and error
adjusted_p_values_sdmax <- sd.maxT(null, obs, alternative, get.cutoff=TRUE, 
                                   get.cr = TRUE, get.adjp = TRUE, alpha = 0.05)

adjusted_p_values_sdmax

Учитывая очень разные выводы из первых двух методов, мне интересно, является ли мой план по реализации этих методов неправильным в первую очередь. По сути, я хочу исследовать несколько сотен расстояний на фоне нулевого распределения в несколько тысяч.

obs = Наблюдаемые расстояния между разными наблюдаемыми точками в пространстве до одной и той же «исходной» точки A. (Следовательно, расстояния не являются независимыми, поскольку все они относятся к одной и той же точке)

null = Нулевое распределение включает расстояния между точками, которые были выбраны случайным образом (замена = ИСТИНА) из разных наблюдаемых точек и той же исходной точки A.

Мне кажется, слишком консервативно использовать ss.maxP для меня. В то время как кажется ненужным использовать ss.minP, если он «просто» возвращает необработанные p-значения; или что мне не хватает?

Могу ли я решить эту ситуацию, построив индивидуальные нулевые распределения для каждого наблюдаемого расстояния?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...