Calculating PDF from CDF

89 views (last 30 days)
Peter
Peter on 10 Jul 2014
Edited: José-Luis on 11 Jul 2014
I calculated CDF manually, because I want to be able to see the progression. So I calculated multiple CDF's over a range, and have all the CDF's in a vector. I want to calculate PDF from CDF by subtracting the previous CDF from the current CDF, and again have all the calculated PDF's in vector form. How would I go about writing this? Thank you.
mu = 1.5;
sigma = .11*mu
delta = [0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.2 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.3 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.4 1.41 1.42 1.43 1.44 1.45 1.46 1.47 1.48 1.49 1.5 1.51 1.52 1.53 1.54 1.55 1.56 1.57 1.58 1.59 1.6 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 1.69 1.7 1.71 1.72 1.73 1.74 1.75 1.76 1.77 1.78 1.79 1.8 1.81 1.82 1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93 1.94 1.95 1.96 1.97 1.98 1.99 2 ]
cdf = .5*[1+erf((delta-mu)/(sqrt(2*sigma^2)))]
//pdf...?

Accepted Answer

José-Luis
José-Luis on 10 Jul 2014
Edited: José-Luis on 11 Jul 2014
It doesn't matter that you have discrete values, you still need to take the derivative.
mu = 1.5;
sigma = .11*mu
delta = [0.01:0.01:2];
CDF = .5*[1+erf((delta-mu)/(sqrt(2*sigma^2)))]
PDF = diff(CDF) ./ diff(delta);
new_delta = delta(1:end-1) + diff(delta)./2;
plotyy(delta,CDF,new_delta,PDF);
  2 Comments
Peter
Peter on 11 Jul 2014
Why did you calculate a new delta?
José-Luis
José-Luis on 11 Jul 2014
Because if x and y have n values, you can only estimate the derivative at n-1 points. I took the midpoint of the x values.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!