首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab的not密度不能正常工作

Matlab的not密度不能正常工作
EN

Stack Overflow用户
提问于 2013-07-02 01:22:26
回答 1查看 3.4K关注 0票数 0

我正在使用一个严格的正观测向量(它们是一个距离度量)。

我将ksdensity与这个向量一起使用,以获得密度函数的感觉,令人惊讶的是,它包含负值。这意味着观察到所有负值区间的概率都是正的。

这是不正确的,因为我知道我的观察都是积极的。

为什么ksdensity要这么做?我有一种感觉,它完成了假设连续可微的曲线。这是一个正确的假设吗?

有没有什么办法可以让Matlab不去猜测,只给出经验累积函数的“导数”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-02 01:43:48

ksdensity返回的概率密度估计基于正态核函数的假设。如果你的数据的值接近于零,那么当各个内核相加时,你自然会得到一些重叠到负值:

(Image Source)

直方图不会有这个问题,因为它只显示实际存在的值。为了纠正这个错误,你可以指定一个不同的发行版( Mathworks称之为“内核平滑器”),甚至可以添加一个自定义的发行版。例如:

[f,xi] = ksdensity(x,pts,'kernel','epanechnikov')

将正态分布替换为epanechnikov。

编辑:

...and证明你应该首先阅读文档,我刚刚发现你可以将你的内核密度估计限制为正值:

代码语言:javascript
复制
x = gamrnd(5,7,1000,1);
[f,xi] = ksdensity(x,'support','positive');
figure
plot(xi,f,'linewidth',2)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17410155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档