Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Efficient alternative for Example 0.5: An Accept-Reject Distribution #982

Open
Banyc opened this issue Jun 20, 2024 · 0 comments
Open

Efficient alternative for Example 0.5: An Accept-Reject Distribution #982

Banyc opened this issue Jun 20, 2024 · 0 comments

Comments

@Banyc
Copy link

Banyc commented Jun 20, 2024

I am still learning math so there could be factual errors!

Let suppose the range of the output is in $[0, 1]$. We could just multiply it with $a$ if we want to extend its range to $[0, a]$.

The PDF of the distribution implied by the example is

$$f(x) = \begin{cases} 2x & 0 \leq x < 1 \\\ 0 & \text{otherwise} \end{cases}$$

Its CDF is

$$P(X < x) = \begin{cases} x^2 & 0 \leq x < 1 \\\ 0 & \text{otherwise} \end{cases}$$

According to the universality of uniform distribution

Let $F$ be a CDF which is a continuous function and strictly increasing on the support of the distribution.
This ensures that the inverse function $F^{-1}$ exists, as a function from $(0, 1)$ to $\mathbb{R}$.
We then have the following results

  • Let $U \sim \text{Unif}(0, 1)$ and $X = F^{-1}(U)$.
    Then $X$ is an r.v. with CDF $F$.
  • Let $X$ be an r.v. with CDF $F$.
    Then $F(X) \sim \text{Unif}(0, 1)$.

In this case, $F(x) = P(X &lt; x)$, which is indeed a continuous function that strictly increases.

The inverse of $F$ is

$$F^{-1}(x) = \sqrt{x}, \quad 0 \leq x < 1$$

Apply the $U$ to $F^{-1}$ and we have

$$X = F^{-1}(U) = \sqrt{U}$$

The resulting code is

Math.sqrt(random(1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant