为什么MATLAB中的内核平滑函数ksdensity会导致值大于1?

时间:2013-09-30 03:38:45

标签: matlab

我有一组样本,S,我想找到它的PDF。问题是,当我使用ksdensity时,我得到的值大于1!

[f,xi] = ksdensity(S)

在数组f中,大多数值都大于1!你能告诉我问题是什么吗?谢谢你的帮助。

例如:

S=normrnd(0.3035, 0.0314,1,1000);
ksdensity(S)

1 个答案:

答案 0 :(得分:5)

正如名称所示,

ksdensity估算连续变量的概率密度函数。概率密度可以大于1,它们实际上可以从零向上具有任意值。对概率的约束是它们在穷尽的可能范围内的总和必须为1.对于概率密度,约束是整个值范围内的积分为1.

可以在Matlab中获得ksdensity估计的pdf积分的粗略近似值,如下所示:

sum(f) * min(diff(xi))

假设xi中的值间隔相等。该表达式的值应约为1.

如果在您的应用程序中您认为此近似值不足以接近1,您可能需要指定估计点网格(第二个参数pts),以使间距更精细或范围更宽一个由ksdensity自动生成的。