Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么R密度函数在区间[from,to]之外返回非零值?_R_Kernel Density - Fatal编程技术网

为什么R密度函数在区间[from,to]之外返回非零值?

为什么R密度函数在区间[from,to]之外返回非零值?,r,kernel-density,R,Kernel Density,我已经输入了密度函数的R代码,我注意到以下奇怪的行: lo <- from - 4 * bw up <- to + 4 * bw 惊奇:f(-0.01)不是零! 它还意味着[0,1]上的f积分不是1: integrate(f, 0, 1) # 0.8787954 integrate(f, -0.1, 1.1) # 0.997002 那么为什么密度函数是这样写的(这是一个bug吗?),我能做些什么来避免这种行为(在这个例子中是f(-0.01)=0),而不会在f上失去任何质量(在这个

我已经输入了密度函数的R代码,我注意到以下奇怪的行:

lo <- from - 4 * bw
up <- to + 4 * bw
惊奇:
f(-0.01)
不是零! 它还意味着
[0,1]
上的
f
积分不是
1

integrate(f, 0, 1) # 0.8787954
integrate(f, -0.1, 1.1) # 0.997002
那么为什么密度函数是这样写的(这是一个bug吗?),我能做些什么来避免这种行为(在这个例子中是
f(-0.01)=0
),而不会在
f
上失去任何质量(在这个例子中是
积分(f,0,1)
大约等于
1

谢谢



编辑:我对示例中使用的值做了一些更改

“为什么”在
from
to
cut
参数的文档中进行了解释。这不是一个错误。我认为,出于明显的原因,如果不做一些调整,就很难获得略低于0的beta分布的密度估计值。请记住,
密度
只是一个估计值。调整带宽会使估计值更快地降到零,但由于其他原因,这可能不可取。否则,您可以始终将函数包装在硬编码值超出特定范围的内容中。为什么要使用
rule=2
?@确实,这可能比我的漫谈更切题。@joran我相信您的漫谈在这里更相关。polmath,还请注意,文档建议设置
bw=“SJ”
。您编写了“为什么密度函数是这样写的?”,我将其理解为“为什么密度定义为lo和up的这种方式?”原因如文档中所述:“这允许估计密度在极端情况下下降到大约为零。”。您的抱怨似乎是,使用默认值时,估计值下降到0的速度不够快,无法满足您的口味。因此,我的意见是,贝塔分布的端点是一种边缘情况估计。如果你想要一个通用的密度估计器工作,你需要自己手动调整结果。
integrate(f, 0, 1) # 0.8787954
integrate(f, -0.1, 1.1) # 0.997002