R:locpoly 错误地返回 NaN

标签 r ubuntu lapack blas

运行以下代码会得到一个 NaN:

library(KernSmooth) 
x <- c(5.84155992364115, 1.55292112974119, 0.0349665318792623, 3.93053647398094,
       3.42790577684633, 2.9715553006801, 0.837108410045353, 2.872476865277, 
       3.89232548092257, 0.206399650539628) 
y <- c(0.141415317472329, 1.34799648955049, 0.0297566221758204, 
       -0.966736679061812, 0.246306732122746, 0.557982376254723, 
       0.740542828791083, 0.162336127802977, -0.428804158514744, 
       0.691280978689863) 

locpoly(x, y, bandwidth = 0.4821232, gridsize = 12, degree = 1)[['y']]

我明白了

[1]  0.3030137  0.6456624  0.9530586  1.1121106  0.8120947  0.4441603
[7]  0.1425592 -0.3600028 -0.7840411 -1.0517612 -1.2690134        NaN

在另一台计算机上,我得到了相同的结果,除了我得到的是 -0.7270521 而不是 NaN。我猜你们中的大多数人也会明白这一点。所以问题是如何修复损坏的系统?这与我的 LAPACK 或 LIBBLAS 有关系吗?

请注意,上面提到的两台计算机都使用 Ubuntu。给出NaN的使用Ubuntu 13.10,给出数字的是12.04。

编辑:

我的新怀疑是浮点计算问题: 局部多项式回归只是加权线性回归,其中权重随着点远离评估点而减小,在本例中为 5.84。人们应该注意到带宽很小,所以第一个想法是带宽内没有任何点。但是,locpoly 使用高斯核,因此所有点都具有严格的正权重。我的猜测是权重太小,但舍入或浮点计算可能是个问题。我不确定如何解决这个问题。

最佳答案

不是答案,而是想发布图表。我仍然不清楚您希望从 locpoly 获得什么,但它就是了。

Rgames> foo<-locpoly(x, y, bandwidth = 0.4821232, gridsize = 12, degree = 1)
Rgames> foo
$x
 [1] 0.03496653 0.56283866 1.09071078 1.61858291 2.14645504 2.67432716
 [7] 3.20219929 3.73007142 4.25794354 4.78581567 5.31368780 5.84155992

$y
 [1]  0.3030137  0.6456624  0.9530586  1.1121106  0.8120947  0.4441603
 [7]  0.1425592 -0.3600028 -0.7840411 -1.0517612 -1.2690134        NaN

enter image description here 我怀疑最右边的最后一点在使用的拟合参数方面有所不同,在任何操作系统下您都得到一个非 NaN 值真是运气不好。

关于R:locpoly 错误地返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22433502/

相关文章:

r - R 图中条的边缘宽度

r - ggplot2 & facet_wrap - 消除小平面之间的垂直距离

python - pybind11 - ImportError : undefined symbol: _Py_ZeroStruct

c++ - 使用cmake编译CSDP

c++ - 使用 Armadillo 时出错

c - 还有其他方法可以编译使用 R api 的 c 代码吗?

删除零并将它们添加回时间序列

ubuntu - 如何减小 linux 内核的大小?

linux - 在 "standard"Linux 系统上创建 OpenGL ES 2.0 上下文

compilation - 链接 lapack 问题