来自 R 中汇总数据的 1 个样本 t 检验

1 sample t-test from summarized data in R

我可以使用 t.test 命令在 R 中执行 1 个样本的 t 检验。这需要实际的数据集。我不能使用汇总统计数据(样本量、样本均值、标准差)。我可以使用 BSDA 包解决这个问题。但是有没有其他方法可以在没有 BSDA 包的情况下在 R 中完成这个 1-sample-T?

多种方式。我会列出一些:

  • 直接计算 p 值,方法是计算统计数据并调用 pt 并将其和 df 作为参数,正如上面的评论者所建议的那样(可以用一条短线完成R - ekstroem 显示双尾测试用例;对于单尾测试用例,您不会加倍)

  • 或者,如果它是您非常需要的东西,您可以将其转换为一个很好的健壮函数,如果您愿意,甚至可以添加针对非零 mu 和置信区间的测试。据推测,如果你走这条路,你想利用围绕 htest class

    构建的功能

    (代码甚至相当完整的功能都可以在这个 stats.SE question 的答案中找到。)

  • 如果样本不是很大(比方说小于几百万),你可以用完全相同的均值和标准差来模拟数据并调用普通的t.test函数。如果 msn 是均值、sd 和样本量,t.test(scale(rnorm(n))*s+m) 应该可以(使用什么分布无关紧要,所以 runif 就足够了)。请注意在那里调用 scale 的重要性。这使得更改替代方案或获得 CI 变得容易,而无需编写更多代码,但如果您有数百万次观察并且需要多次执行,则它不适合。

  • 在不同的包中调用一个函数来计算它——至少有一个或两个其他这样的包(你不清楚使用 BSDA 是否有问题或者你是否想要完全避免包裹)