如何找到对应于特定p值的F值,例如R中p = 0.05?

时间:2016-11-21 12:08:06

标签: r distribution

我希望在预先指定的两个自由度(下面的1和29)下找到对应于p = 0.05的F值(一个(右)尾分布)。我通过反复试验来做到这一点:

#..F values..............p values...
1-pf(4.75, 1, 29)    # 0.03756451
1-pf(4.15, 1, 29)    # 0.05085273
1-pf(4.18295, 1, 29) # 0.05000037
1-pf(4.18297, 1, 29) # 0.04999985
1-pf(4.18296, 1, 29) # 0.05000011

所以,我希望在没有反复试验的情况下获得F = 4.18296。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

实现这样的结果有两种可能性,我们需要使用分位数函数:

qf(1 - 0.05, 1, 29)qf(0.05, 1, 29, lower.tail = FALSE)

qf(1 - 0.05, 1, 29)
# [1] 4.182964

qf(0.05, 1, 29, lower.tail = FALSE)
# [1] 4.182964

1 - pf(4.182964, 1, 29)
# [1] 0.05000001

第一个选项考虑到lower.tail的默认选项等于TRUE所以我们必须使用1 - 0.05

对于第二个选项,我们指定我们想要P [X> x]使用lower.tail = FALSE