gpt4 book ai didi

R 的 t 分布表示 "full precision may not have been achieved"

转载 作者:行者123 更新时间:2023-12-04 08:25:42 25 4
gpt4 key购买 nike

我正在处理一个问题,该问题通常需要计算 R 中尾部相当远的 t 分布的密度。

例如,使用 R 的 t 分布函数,dt(1.424781, 1486, -5)返回 [1] 2.75818e-10 .我的一些最终输出(使用此密度作为输入)与我的同事在 MATLAB 中执行的类似计算的引用值不匹配,我认为这可能是由于 R 中 t 分布的尾部不精确。

如果我与 MATLAB 的 t 分布函数进行比较,nctpdf(1.424781, 1486, -5)返回 ans = 4.3932e-10 ,这与 R 的输出有很大不同。

编辑:R 打印两条相同的警告消息

In dt(1.424781, 1486, -5) : full precision may not have been achieved
in 'pnt{final}'

这是在 Mac 上,R 版本 3.3.1

最佳答案

问题似乎来自 R 为这种情况下的非中心 t 分布实现的算法。两个因素结合起来产生结果:

  • 提供的非中心参数 -5 是一个“极值”。

  • 从帮助文件的注释部分, ?pt ,

    The code for non-zero ncp is principally intended to be used for moderate values of ncp: it will not be highly accurate, especially in the tails, for large values.


    因此,计算这些值的算法并不打算计算像 -5 这样的极值。我们可以通过将 ncp 值降低到更适中的水平来看到这一点,比如 -1:
    dt(1.424781, 1486, -1)
    [1] 0.0211143
  • 请求的值 is in the upper tail分布:
  • ?pt 的来源部分说

    For the non-central case of pt based on a C translation of

    Lenth, R. V. (1989). Algorithm AS 243 — Cumulative distribution function of the non-central t distribution, Applied Statistics 38, 185–189.

    This computes the lower tail only, so the upper tail suffers from cancellation and a warning will be given when this is likely to be significant.


    比如同样的ncp值,-5与x值的负数返回
    dt(-1.424781, 1486, -5)
    [1] 0.0006719519
    没有警告。

    关于R 的 t 分布表示 "full precision may not have been achieved",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39183938/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com