フィルターのクリア

Why does this probability density function looks off?

3 ビュー (過去 30 日間)
Mohannad Abboushi
Mohannad Abboushi 2017 年 1 月 24 日
コメント済み: Mohannad Abboushi 2017 年 2 月 1 日
I have a random variable x which has a mean of 10 and a variance of 16. I used the following code to generate the array and the PDF:
x= randn(100,1) * sqrt(16)+10;
mu = 10;
sigma = 4;
pd = makedist('Normal',mu,sigma);
y=pdf(pd,x);
hist(y)
Should i be plotting with something other than hist or is x itself wrong? Thank you.

採用された回答

the cyclist
the cyclist 2017 年 1 月 24 日
編集済み: the cyclist 2017 年 1 月 24 日

The mistake is in using hist. Plot x vs. y instead, because y is the value of the pdf itself.

x= randn(100,1) * sqrt(16)+10;
mu = 10;
sigma = 4;
pd = makedist('Normal',mu,sigma);
y=pdf(pd,x);
figure
plot(x,y,'.')
  5 件のコメント
the cyclist
the cyclist 2017 年 1 月 25 日
編集済み: the cyclist 2017 年 1 月 25 日

You fell into the same trap of not multiplying by dx. I'm not certain, but you may also failed to account for the fact that your values of y are not ordered. So, I think you may have gotten a more-or-less random answer.

There is no need to choose your x at random. It would be much better to choose an evenly spaced array of x from the beginning, and your whole problem becomes simpler.

Like this ...

mu = 10;
sigma = 4;
dx = 0.01;
x = mu - 5*sigma : dx : mu + 5*sigma;
pd = makedist('Normal',mu,sigma);
y=pdf(pd,x);
figure
plot(x,y)
probability_total = sum(dx*y)
Probability_x_greater_than_5 = sum(dx.*y(x>5))

I got 0.8941 for that probability.

Notice that these are probabilities, so they lie between 0 and 1. If you want them represented as percentages, then divide by 0.01.

Mohannad Abboushi
Mohannad Abboushi 2017 年 2 月 1 日
Awesome thank you very much that was a good explanation!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by