Assume a variable $x_0>0$ with log-normally distributed noise, such that the observation $x$ of $x_0$ has the following PDF:

$$ p(x\mid x_0) = \frac{1}{\sqrt{2\pi}\sigma x}e^{-\frac{\left(\ln{(\frac{x}{x_0})} - \sigma^2\right)^2}{2\sigma^2}} $$

(NB: $x_0$ thus corresponds to the mode of the log-normal distribution, following the reparameterization $\mathrm{mode}=e^{\mu-\sigma^2}$)

As it turns out, I cannot measure $x$ directly, but only a transformation $y(x)$:

$$ y(x) = (1-\delta)\tanh(\beta x) + \delta $$

The parameters $\delta$ and $\beta$ are not relevant to my question, but it can be assumed $0\le\delta\le1$ and $\beta>0$.

Now I have a measurement $y_m$ and I want to compute the probability that a latent variable $x_0$ would generate a $y$ within the window $[y_m-\epsilon; y_m+\epsilon]$.

I have two questions related to this:

  1. What is the PDF for $y$ that would allow me to compute this probability? (Note that for reasons not mentioned here, I want to avoid transforming $y_m$ to $x$-space)
  2. More pragmatically, the scientific programming module I am using (scipy.stats.lognorm) has CDF implementations for the log-normal distribution. If instead of the above $\tanh$ transformation I had the identity transformation $y(x)=x$, I could simply use something along the lines of lognorm(x0,σ).cdf(y_m+ε) - lognorm(x0,σ).cdf(y_m-ε). Can I still use this lognorm CDF implementation after some appropriate transformation?
  • $\begingroup$ If $y(x)$ is observed/known, so is $x$ (for a given $(\delta,\beta)$ $\endgroup$
    – Xi'an
    Sep 7, 2020 at 12:56
  • $\begingroup$ Yes, that's correct, but as mentioned in 1., I want to avoid back-transforming $y_m$ to $x$-space (the reason is that I have other y(x) that are not so easily invertible). I'm starting to think though that the PDF of $y$ will require computing $y^{-1}$. $\endgroup$
    – monade
    Sep 7, 2020 at 13:04
  • 1
    $\begingroup$ If the transformation is one-to-one, the calculation of the probability will generally contain within it the inverse transformation you're hoping to avoid (though it may not always be obvious at a quick glance that this is what is happening). Sometimes a simplification arises but typically you just end up doing the equivalent of transforming back. $\endgroup$
    – Glen_b
    Jan 2, 2023 at 0:26

1 Answer 1


The hyperbolic tangent function $\tanh$ is a strictly increasing function, so it is quite simple to get the CDF of the random variable $Y$. I am going to give a more general answer that what you are looking for --- specifically, I will not make any assumption about the distribution $X$, and I will not assume that this is a non-negative random variable. Using the stipulated transformation with $\beta$ and $0 \leqslant \delta < 1$ you have:

$$\begin{align} F_Y(y) &\equiv \mathbb{P}(Y \leqslant y) \\[12pt] &= \mathbb{P}((1-\delta) \tanh (\beta X) + \delta \leqslant y) \\[6pt] &= \mathbb{P} \bigg( \tanh (\beta X) \leqslant \frac{y-\delta}{1-\delta} \bigg) \\[6pt] &= \mathbb{P} \bigg( \frac{e^{2 \beta X}-1}{e^{2 \beta X}+1} \leqslant \frac{y-\delta}{1-\delta} \bigg) \\[6pt] &= \mathbb{P} \bigg( e^{2 \beta X}-1 \leqslant \frac{y-\delta}{1-\delta} \cdot (e^{2 \beta X}+1) \bigg) \\[6pt] &= \mathbb{P} \bigg( e^{2 \beta X} \cdot \frac{1-y}{1-\delta} \leqslant 1 + \frac{y-\delta}{1-\delta} \bigg) \\[6pt] &= \mathbb{P} \bigg( e^{2 \beta X} \cdot \frac{1-y}{1-\delta} \leqslant \frac{1+y-2\delta}{1-\delta} \bigg) \\[6pt] &= \mathbb{P} \bigg( e^{2 \beta X} \cdot (1-y) \leqslant (1+y-2\delta) \bigg). \\[6pt] \end{align}$$

Taking account of the limits of the function you then have:

$$\begin{align} F_Y(y) &= \begin{cases} 0 & & \text{if } y \leqslant 2\delta-1, \\[6pt] F_X \bigg( \frac{1}{2 \beta} \cdot \log \Big( \frac{1+y-2\delta}{1-y} \Big) \bigg) & & \text{if } 2\delta-1 < y < 1, \\[6pt] 1 & & \text{if } y \geqslant 1, \\[6pt] \end{cases} \\[6pt] \end{align}$$

It is easily shown that:

$$\begin{align} \frac{d}{dy} \log \Big( \frac{1+y-2\delta}{1-y} \Big) &= \frac{1}{1+y-2\delta} + \frac{1}{1-y} \\[6pt] &= \frac{(1-y)+(1+y-2\delta)}{(1+y-2\delta)(1-y)} \\[6pt] &= \frac{2(1-\delta)}{(1+y-2\delta)(1-y)}. \\[6pt] \end{align}$$

Therefore, differentiating the CDF with respect to $y$ gives the corresponding density:

$$f_Y(y) = \frac{(1-\delta)}{(1+y-2\delta)(1-y) \beta} \cdot f_X \bigg( \frac{1}{2 \beta} \cdot \log \Big( \frac{1+y-2\delta}{1-y} \Big) \bigg) \quad \quad \text{for } 2\delta-1 < y < 1.$$

Substitution of the density function for $X$ will give you the final form. Note that in your problem you have assumed that $X$ is a non-negative random variable, which leads to the effective bound $y \geqslant \delta$. This bound emerges correctly from substitution into the above equation in the case where $f_X$ has support only over positive argument values.

  • 1
    $\begingroup$ Thanks! To confirm my understanding of your answer: this essentially corresponds to solving $y_m = (1-\delta)\tanh(\beta x_m)+\delta$ for $x_m$ and then computing the CDF of $x_m$ in x-space using the known $p(x\mid x_0)$ (using the terminology of my OP)? $\endgroup$
    – monade
    Sep 7, 2020 at 15:00
  • $\begingroup$ I could not make sense of your $p(x|x_0)$ so I did not do that last step. But yes, that is essentially the method. $\endgroup$
    – Ben
    Sep 7, 2020 at 22:33
  • $\begingroup$ Ok, thanks. $p(x|x_0)$ is the log-normal distribution following the reparameterization $\mu = \ln{(x_0)}+\sigma^2$, where $x_0$ is the mode of the log-normal. $\endgroup$
    – monade
    Sep 8, 2020 at 9:36
  • $\begingroup$ Elegant answer (+1) $\endgroup$
    – BruceET
    Sep 9, 2020 at 7:43
  • 1
    $\begingroup$ My answer is more general than that --- it does not assume that $X$ is non-negative. However, if you substitute any $y < \delta$ into the final equation you get $\log (\tfrac{1+y-2\delta}{1-y}) < 0$ so the argument for the density $f_X$ is negative. Thus, if $X$ is non-negative then you get zero density for $Y$ for all $y<\delta$. I have updated my answer to specify my assumptions more clearly. $\endgroup$
    – Ben
    Sep 15, 2020 at 0:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.