是否可以使用t.test()函数更改I类错误阈值?

时间:2019-02-10 16:26:24

标签: r

系统要求我使用t.test()函数来计算测试统计量,但是我需要减少I类错误。我的教授向我们展示了如何更改此功能的置信度,但没有为零假设检验提供可接受的I型错误。目标是使参数根据.01错误率而非正常的.05自动计算p值。

下面的r代码涉及我已下载的数据集。

t.test(mid$log_radius_area, mu=8.456)

1 个答案:

答案 0 :(得分:0)

我觉得我已经在某个地方回答了这个问题,但似乎无法在SO或CrossValidated上找到它。

this question类似,答案是t.test()没有为拒绝/失败拒绝无效假设指定任何个阈值;它报告一个p值,您可以决定是否拒绝。 (conf.level参数用于调整输出报告的置信区间。)

来自?t.test

t.test(1:10, y = c(7:20))

    Welch Two Sample t-test

data:  1:10 and c(7:20)
t = -5.4349, df = 21.982, p-value = 1.855e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -11.052802  -4.947198
sample estimates:
mean of x mean of y 
      5.5      13.5 

此处p值报告为1.855e-05,因此对于任何(预先指定)alpha级别> 1.855e-05而言,原假设将被拒绝。请注意,输出不会在任何地方说“零假设在alpha = 0.05时被拒绝”或类似的东西。您可以使用保存在测试结果中的$p.value元素来编写自己的函数来做到这一点:

report_test <- function(tt, alpha=0.05) {
    cat("the null hypothesis is ")
    if (tt$p.value > alpha) {
       cat("**NOT** ")
    }
    cat("rejected at alpha=",alpha,"\n")
}
tt <- t.test(1:10, y = c(7:20))
report_test(tt)
## the null hypothesis is rejected at alpha= 0.05 

大多数R包/函数编写者都不想这样做,因为他们认为对于用户来说,这样做应该足够简单。