双面置换测试与两个单面

机器算法验证 假设检验 置换检验
2022-04-05 22:50:30

我正在使用一组具有两个甲基化值的基因β(在单位间隔上连续)和基因表达E(非负连续)我想测试相关性ρ^(log2E,β)=R. 为了只过滤掉显着的相关性,我执行了一个置换测试,对于每个站点我随机置换E多次计算R. 这给了我零假设下的分布p(R|H0),即当之间没有依赖关系时βE,我可以比较R反对。

现在回答我的问题,

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

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