如何在MATLAB中从样本集中查找PDF

时间:2014-11-01 19:23:49

标签: matlab statistics probability sample-data probability-density

我有一些来自未知来源的观察。这组观察结果为x,例如:

x = [97 , 102.3, 95.05 , 89.1 , 117 , ...]; % this is just an example. data set could contain any thing.

如果x足够大,我应该可以说一下概率分布函数,对吗?

那么我怎么能在MATLAB中做到这一点所以我可以得到p(x = 101)p(x = 5)?第一个可能会非常高。

任何类型的假设(正态分布等)都可以,我只想要一个简单的概率答案。也许我不必明确地知道PDF,我只需要一种方法来实现p(x = x_star),其中x_star不一定是x的成员。我怎么能这样做?

感谢您的帮助!

我的尝试

最简单的尝试是length(find(x==x_star))/length(x),但是如果例如观察中没有101,则返回零。但是看一下这个分布应该很有可能。

编辑:

我的功能根据Kamtal的回答:

function p = get_probability_from_sample_set(S, X)
% finds the probability that a sample from S is equal to X
[mu,sigma] = normfit(S);
 z = 1:200;
 xfit = normpdf(z,mu,sigma);
 p = xfit(find(z == X)); 
end

p返回[]。我在哪里做错了?

1 个答案:

答案 0 :(得分:0)

 x = randi(200,[1000 1]);
 [mu,sigma] = normfit(x);
 z = 1:200;
 xfit = normpdf(z,mu,sigma);
 p = xfit(find(z == round(X)));

如果您的值在[0 0.1]

 x = randi(1000,[1000 1])/10000;
 [mu,sigma] = normfit(x);
 z = 0:1e-5:0.1;
 xfit = normpdf(z,mu,sigma);
 nearestToz = z(abs(z - X) == min(abs(z - X)));
 p = xfit(find(z == nearestToz));