【问题标题】:R. Using t-test, compare individual mean with global meanR. 使用 t 检验,将个人平均值与全局平均值进行比较
【发布时间】:2018-08-17 08:14:54
【问题描述】:

我有一个这种形式的巨大矩阵,有 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() 比较两组之间的平均值非常简单,但我无法找到如何将单个值与包含该值的组的平均值进行比较。

【问题讨论】:

  • 这是一个统计问题,更适合简历。
  • 嗨@RomanLuštrik,我很久以前在简历中问过一个类似的问题,但没有人回答。我确信在 SO 中有很多从事统计/R 工作的人会阅读这篇文章,并且我有更好的机会得到 SO 用户的回复。

标签: r t-test


【解决方案1】:

我非常同意 Roman 的观点,即您应该返回 CV,因为这似乎会给您带来一些误报。

但就您的 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 显着不同。我不提倡这种统计方法,但这是您可以实施的方法。

【讨论】:

    猜你喜欢
    • 2015-05-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    相关资源
    最近更新 更多