R.使用t检验,将个体均值与全局均值进行比较

时间:2018-03-08 20:51:49

标签: r t-test

我有一个这种形式的巨大矩阵,有1000000行和10000列。这是一个玩具示例:

A B C Mean
1 3 4 2.66
2 4 3 3
1 3 4 2.66
9 9 9 9
1 3 2 2
2 4 5 3
1 2 6 3
2 3 5 3.33

列中的行"平均"表示每行的A,B和C的平均值。另一方面,列的全局均值"均值"是3.58。我想知道,使用t检验和R,每行的均值是否明显高于全局均值。如何获得p值进行比较?使用t.test()比较两组之间的平均值非常简单,但我无法找到如何将单个值与包含该值的组的平均值进行比较。

1 个答案:

答案 0 :(得分:3)

我非常同意罗马,你应该回到简历,因为这似乎有可能给你一些误报。

但就你的R问题而言,你可以在这里尝试单样本t检验:

global.mean <- 3.58
val.matrix <- matrix(c(...),...)

pvals <- apply(val.matrix,1,function(r) t.test(r,mu=global.mean)$p.value)
### should do a multiple comparison correction here, e.g., pvals*nrow(val.matrix)

这将为您提供一个大小为nrow(val.matrix)的向量,每个元素都是来自双侧t检验的p值,测试行的值是否为 与3.58显着不同。我不是在倡导这种统计方法,但这就是你实现它的方法。