来自 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函数。如果 m
和 s
和 n
是均值、sd 和样本量,t.test(scale(rnorm(n))*s+m)
应该可以(使用什么分布无关紧要,所以 runif
就足够了)。请注意在那里调用 scale
的重要性。这使得更改替代方案或获得 CI 变得容易,而无需编写更多代码,但如果您有数百万次观察并且需要多次执行,则它不适合。
在不同的包中调用一个函数来计算它——至少有一个或两个其他这样的包(你不清楚使用 BSDA 是否有问题或者你是否想要完全避免包裹)
我可以使用 t.test 命令在 R 中执行 1 个样本的 t 检验。这需要实际的数据集。我不能使用汇总统计数据(样本量、样本均值、标准差)。我可以使用 BSDA 包解决这个问题。但是有没有其他方法可以在没有 BSDA 包的情况下在 R 中完成这个 1-sample-T?
多种方式。我会列出一些:
直接计算 p 值,方法是计算统计数据并调用
pt
并将其和 df 作为参数,正如上面的评论者所建议的那样(可以用一条短线完成R - ekstroem 显示双尾测试用例;对于单尾测试用例,您不会加倍)或者,如果它是您非常需要的东西,您可以将其转换为一个很好的健壮函数,如果您愿意,甚至可以添加针对非零 mu 和置信区间的测试。据推测,如果你走这条路,你想利用围绕
构建的功能htest
class(代码甚至相当完整的功能都可以在这个 stats.SE question 的答案中找到。)
如果样本不是很大(比方说小于几百万),你可以用完全相同的均值和标准差来模拟数据并调用普通的t.test函数。如果
m
和s
和n
是均值、sd 和样本量,t.test(scale(rnorm(n))*s+m)
应该可以(使用什么分布无关紧要,所以runif
就足够了)。请注意在那里调用scale
的重要性。这使得更改替代方案或获得 CI 变得容易,而无需编写更多代码,但如果您有数百万次观察并且需要多次执行,则它不适合。在不同的包中调用一个函数来计算它——至少有一个或两个其他这样的包(你不清楚使用 BSDA 是否有问题或者你是否想要完全避免包裹)