1

我在 MATLAB 中使用这种形式的 ksdensity 函数。

[f,xi] = ksdensity(x)

文档说“f 是在 xi 中的点处评估的密度值的向量......密度是在 100 个等距点处评估的,这些点覆盖了 x 中的数据范围。”

现在,我的 xi 值覆盖的范围比 x 中的数据大得多。为什么是这样?

对于我的数据,

>> min(x)

ans =

   -2.2588

>> min(xi)

ans =

   -6.8010
>> max(x)

ans =

    6.5326

>> max(xi)

ans =

   11.0748

我知道我可以自己指定一个 xi 范围,但为什么默认情况下它在 x 的 min 和 max 之间的间距不相等?

当直方图中的 bin 仅覆盖 x 的范围,而 ksdensity 给出的测试点超出此范围时,很难比较直方图估计量和核估计量。

4

1 回答 1

1

ksdensity使用高斯核对直方图进行平滑处理。作为说明,检查脉冲响应的输出:

[f,xi] = ksdensity(0);
plot(xi,f)

在此处输入图像描述

高斯的宽度为 1,这意味着您将在数据的两侧添加大约 3(这可以使它看起来好像在严格的正直方图中存在负值)。因此,如果您的数据只跨越一个小范围,您需要在ksdensity.

于 2012-05-01T13:40:34.257 回答