MatLab是否有任何内置函数来评估自定义直方图中随机变量的密度? (我怀疑有很多方法可以做到这一点,我只是想看看是否已经有任何内置的MatLab功能)。 感谢。
答案 0 :(得分:1)
函数hist
为您提供了您正在评估的概率密度的近似值。
如果你想要连续表示它,this article from the Matlab documentation解释了如何使用曲线拟合工具箱中的spline
命令来获取它。基本上,这篇文章解释了如何对直方图进行三次插值。
结果代码是:
y = randn(1,5001); % Replace y by your own dataset
[heights,centers] = hist(y);
hold on
n = length(centers);
w = centers(2)-centers(1);
t = linspace(centers(1)-w/2,centers(end)+w/2,n+1);
dt = diff(t);
Fvals = cumsum([0,heights.*dt]);
F = spline(t, [0, Fvals, 0]);
DF = fnder(F);
hold on
fnplt(DF, 'r', 2)
hold off
ylims = ylim;
ylim([0,ylims(2)]);
答案 1 :(得分:0)
一种流行的方法是使用核密度估计。在Matlab中执行此操作的最简单方法是使用ksdensity
。