1

我有一些来自未知来源的观察。这组观察值是 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)or 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返回[]。我在哪里做错了?

4

1 回答 1

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));
于 2014-11-01T19:37:36.017 回答