4 种不同的 Matlab 函数来估计数据的 PDF 给出 4 种不同的结果

4 different Matlab functions to estimate the PDF of data give 4 different results

我可能会卡在一些细节上,但我卡在看似操作上。我有一组数据 gaussian_noise(用 mean = mu, and std_dev = sigma 表示白噪声),我想绘制此数据的 PDF。 gaussian_noise的取值范围是[-0.0155; 0.0155]。我使用了几种方法,它们都给我不同的情节。所有这些都不对应于 mean = mu and st_dev = sigma 的高斯分布的理论 PDF。你知道我错过了什么吗?正常化?但是 ksdensity 显然 returns 是一个归一化的结果。以下是我正在做的事情和情节的一些例子:

[pdf_empir, sample_data] = ksdensity(gaussian_noise);
figure; plot(sample_data, pdf_empir);

当我更改 ksdensity 的带宽时,我得到了一条平滑、连续的曲线,但又出现了不同的值

通过使用histogramm

figure; histogram(gaussian_noise,'Normalization','pdf');

当然我可以平滑曲线以获得连续的 PDF,但困扰我的一点是函数值(y 轴)都不同。

通过使用 histfit

figure; histfit(gaussian_noise)

具有 mean = 0sigma = 0.0027 的高斯分布的理论 PDF,针对数据范围 x_range = [-0.0155; 0.0155] 和 10000 个实例进行评估(通过 normpdf 获得)

峰值在 146.9,对应于理论值 1/(sigma*sqrt(2*pi))

显然,我应用上述方法做错了什么。我想,我需要做一些标准化。但是当我除以 length(gaussian_noise) 时,由于它是一个常数,我再次使用不同的方法获得不同的值。

你知道我做错了什么吗? 感谢您的想法和评论。

我认为这里的根本问题是需要一致的不是分布的峰值,而是它们下方的区域。此外,如果分布被归一化,则面积应等于 1。

在上面的每个绘图方法中,"bin width" 的大小不同,这会导致每个 bin 中的值发生变化,以保留曲线下的面积。