matlab pdf估计(ksdensity)不起作用

时间:2013-12-12 06:40:42

标签: matlab probability-density

我正在使用matlab估算概率密度函数(pdf)。

代码就像这样

xi = -2:0.1:2;
a1 = normpdf(xi, 1, 0.3);
a2 = normpdf(xi, -1, 0.3);
subplot(211);
plot(xi, a1+a2);
[f, xs] = ksdensity(a1+a2);
subplot(212);
plot(xs, f);

和这样的照片

Plot result

您认为估算根本不起作用。

那么这里有什么问题? BTW还有matlab中的其他pdf估算方法吗?

2 个答案:

答案 0 :(得分:3)

这更接近您的期望吗?

ksdensity函数需要来自分布的样本向量,而您正在为它提供概率密度函数的值。

>> xi = -3:0.1:3;
>> p1 = normpdf(xi, 1, 0.3);
>> p2 = normpdf(xi,-1, 0.3);
>> subplot(211)
>> plot(xi, 0.5*p1+0.5*p2)
>> a1 = 1 + 0.3 * randn(10000,1);  % construct the same distribution
>> a2 = -1 + 0.3 * randn(10000,1); % construct the same distribution
>> [f, xs] = ksdensity([a1;a2]);
>> subplot(212)
>> plot(xs, f)

enter image description here

答案 1 :(得分:1)

ksdensity为您提供输入值的概率分布(默认为100个点)。您的输入值a1 + a2的值介于0和1.5之间,其中大部分接近0,较小部分接近1.5。您看到的第二个图表反映了这种分布。

如果你想看到两个相似的图,可以将一个元素集中在-1和1附近的向量作为ksdensity的输入。