【问题标题】:Error in R density bw.SJR 密度 bw.SJ 误差
【发布时间】:2016-07-13 15:53:59
【问题描述】:

我正在使用 SJ 方法的密度函数:

rdat <- rnorm(111111)
density(rdat, bw = "sj")
Error in bw.SJ(x, method = "ste") : sample is too sparse to find TD

在大样本上似乎失败了,说明样本太稀疏。这在here 之前已经被问过,但是自 2008 年以来有什么变化吗?是否有针对此/解决方法的任何修复?

编辑:限制似乎是46341

【问题讨论】:

    标签: r density-plot


    【解决方案1】:

    此错误已在 R 3.4.0(2017 年 4 月)中修复。

    这是来自svnlog的相关片段:

    r71965 | maechler | 2017-01-13 04:30:18 -0600 (Fri, 13 Jan 2017) | 1 line
    Changed paths:
       M /trunk/doc/NEWS.Rd
       M /trunk/src/library/stats/R/bandwidths.R
       M /trunk/src/library/stats/man/bandwidth.Rd
       M /trunk/src/library/stats/man/density.Rd
       M /trunk/src/library/stats/src/bandwidths.c
    
    fix bw.SJ() integer overflow for large n
    

    这里是R源代码镜像中对应的commit:https://github.com/wch/r-source/commit/5af0f7200128315392cf813127a654153b5e7739

    这是来自R 3.4.0 change log的片段:

    带宽选择器 bw.ucv()bw.bcv()bw.SJ() 现在可以避免大样本大小的整数溢出。

    【讨论】:

      猜你喜欢
      • 2018-11-30
      • 2019-04-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 2017-09-06
      • 2020-06-21
      • 2010-12-02
      相关资源
      最近更新 更多