我使用密度函数与SJ方法:
rdat <- rnorm(111111)
density(rdat, bw = "sj")
Error in bw.SJ(x, method = "ste") : sample is too sparse to find TD
Run Code Online (Sandbox Code Playgroud)
它似乎在大样本上失败,说明样本太稀疏.这种情况以前也有人问在这里,但自2008年以来有什么改变?对于这个/变通办法有没有任何修复?
编辑:限制似乎是 46341
此错误已在 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
Run Code Online (Sandbox Code Playgroud)
以下是 R 源代码镜像中的相应提交:https://github.com/wch/r-source/commit/5af0f7200128315392cf813127a654153b5e7739
这是R 3.4.0 变更日志的片段:
带宽选择器
bw.ucv(),bw.bcv()现在bw.SJ()可以避免大样本量的整数溢出。
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |