双面置换测试与两个单面

机器算法验证 假设检验 置换检验
2022-03-23 18:16:29

我正在使用一组基因,我想要测试其相关性 beta为了只过滤掉显着的相关性,我执行了一个置换测试,对于每个站点,我随机排列很多次并计算这给了我一个在原假设之间没有依赖关系时,我可以将与之进行比较。βEρ^(log2E,β)=RERp(R|H0)βER

现在回答我的问题,

我想测试正相关和负相关。我是否对每个基因进行两次测试并使用双重多重测试校正,其中

p=infRp(x|H0)dx

p+=Rinf(x|H0)dx

或者我可以而且应该直接根据还是这样,并使用正常的多重测试校正?我只能想到以下几点,但感觉不对,而且力量很差。|R|

p2=inf|R|p(x|H0)dx+|R|inf(x|H0)dx

在此处输入图像描述

编辑:更新了图形并添加了缺少的 x 轴标签。所有面板的 y 轴都相同。

2个回答

这是置换测试的 R 示例。

## dummy data
set.seed(1)
x <- runif(20)
y <- 0.5 * x
y <- y + rnorm(20)

## set up for the permutation, compute observed R
nullR <- numeric(length = 1000)
nullR[1] <- cor(x, y) ## obsered R in [1]
N <- length(x)

## permutation test
for(i in seq_len(999) + 1) {
    nullR[i] <- cor(x[sample(N)], y)
}

hist(nullR) ## histogram of R under H0

在此处输入图像描述

现在我们可以根据您考虑的各种有尾测试的排列分布p

> ## one side H1 R > 0
> sum(nullR >= nullR[1]) / length(nullR)
[1] 0.908
> ## one side H1 R < 0
> sum(nullR <= nullR[1]) / length(nullR)
[1] 0.093
> ## two sided
> sum(abs(nullR) >= abs(nullR[1])) / length(nullR)
[1] 0.177

公式仅在您的分布对称于时才有效,至少您的插图似乎没有。给出了更好的估计 使用您对的定义。p20p2(t)=min(2p+,2p)p+p