Right-truncating a lognormal distribution

Hello,
I would like to compute the probability that P(z<a) where
z=exp(x*beta+e) and e is distributed iid N(0,sigma^2).
I would like to evaluate the CDF of z, i.e.,
P(e< log(a)-x*beta),
for various values of x*beta. However, I know that z cannot take a value greater than a certain number, b. How can I obtain the truncated distribution to evaluate the above probability?
Many thanks in advance.

5 Comments

However, I know that z cannot take a value greater than a certain number, b.
This needs to be explained. If z is log-normal, how can it be bounded by b?
From an underlying theory, I know that observations where z is greater than a constant, b, cannot exist in my data.
But that contradicts your original claim that z is lognormal. Clearly z is not lognormal if it is bounded by b. You must say what the distribution actually is before we can talk about how to compute the CDF.
Possibly you want a conditional CDF?
prob(z<a | z<b)
I think this is right. How can I code this?

Sign in to comment.

 Accepted Answer

Matt J
Matt J on 18 Aug 2019
Edited: Matt J on 18 Aug 2019
I think this is right. How can I code this?
function out=conditionalCDF(a,b,x,beta,sigma)
pa=normcdf(log(a)-x*beta,0,sigma);
pb=normcdf(log(b)-x*beta,0,sigma);
out=min(1, pa./pb);
end

1 Comment

Thanks so much for your time, Matt! Have a great day.

Sign in to comment.

More Answers (0)

Asked:

on 18 Aug 2019

Edited:

on 18 Aug 2019

Community Treasure Hunt

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

Start Hunting!