Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

I have two random variables, $\alpha_i\sim \text{iid }U(0,1),\;\;i=1,2$ where $U(0,1)$ is the uniform 0-1 distribution.

Then, these yield a process, say:

$$P(x)=\alpha_1\sin(x)+\alpha_2\cos(x), \;\;\;x\in (0,2\pi)$$

Now, i was wondering whether there is a closed form expression for $F^{-1}(P(x);0.75)$ the theoretical 75 percent quantile of $P(x)$ for a given $x\in(0,2\pi)$ --i suppose i can do it with with a computer and many realizations of $P(x)$, but i'd prefer closed form--.

share|improve this question
1  
I think you want to assume α$_1$ and α$_2$ are statistically independent. – Michael Chernick Aug 13 '12 at 13:01
@Procrastinator: can you write this as an answer? – user603 Aug 13 '12 at 13:10
4  
(+1) The "process" point of view seems to be a bit of a red herring here. Write $$P(x) = \beta_1 \sin x + \beta_2 \cos x + \frac{1}{2} (\sin x + \cos x) \>,$$ where $\beta_i = \alpha_i - 1/2 \sim \mathcal U(-1/2,1/2)$. Then, for each fixed $x$, the first two terms determine a trapezoidal density function and the last term is just a mean offset. For the determination of the trapezoidal density, we need only consider $x \in [0,\pi/2)$. – cardinal Aug 13 '12 at 14:51
2  
Numerically this can be done simply by using quant = function(n,p,x) return( quantile(runif(n)*sin(x)+runif(n)*cos(x),p) ) and quant(100000,0.75,1). – user10525 Aug 13 '12 at 15:00

1 Answer

up vote 9 down vote accepted

This problem can quickly be reduced to one of finding the quantile of a trapezoidal distribution.

Let us rewrite the process as $$ P(x) = U_1 \cdot \frac12 \sin x + U_2 \cdot \frac12 \cos x + \frac{1}{2} (\sin x + \cos x) \>, $$ where $U_1$ and $U_2$ are iid $\mathcal U(-1,1)$ random variables; and, by symmetry, this has the same marginal distribution as the process $$ \overline P(x) = U_1 \cdot \left|\frac12 \sin x\right| + U_2 \cdot \left|\frac12 \cos x\right| + \frac{1}{2} (\sin x + \cos x) \>. $$ The first two terms determine a symmetric trapezoidal density since this is the sum of two mean-zero uniform random variables (with, in general, different half-widths). The last term just results in a translate of this density and the quantile is equivariant with respect to this translate (i.e., the quantile of the shifted distribution is the shifted quantile of the centered distribution).

Quantiles of a trapezoidal distribution

Let $Y = X_1 + X_2$ where $X_1$ and $X_2$ are independent $\mathcal U(-a,a)$ and $\mathcal U(-b,b)$ distributions. Assume without loss of generality that $a \geq b$. Then, the density of $Y$ is formed by convolving the densities of $X_1$ and $X_2$. This is readily seen to be a trapezoid with vertices $(-a-b,0)$, $(-a+b,1/2a)$, $(a-b,1/2a)$ and $(a+b,0)$.

The quantile of the distribution of $Y$, for any $p < 1/2$ is, thus, $$ q(p) := q(p\,; a,b) = \begin{cases} \sqrt{8abp} - (a+b) \,, & p < b/2a \\ (2p - 1) a \,, & b/2a \leq p \leq 1/2 \>. \end{cases} $$ By symmetry, for $p > 1/2$, we have $q(p) = - q(1-p)$.

Back to the case at hand

The above already provides enough to give a closed-form expression. All we need is to break into two cases $|\sin x| \geq |\cos x|$ and $|\sin x| < |\cos x|$ to determine which plays the role of $2a$ and which plays the role of $2b$ above. (The factor of 2 here is only to compensate for the divisions by two in the definition of $\overline P(x)$.)

For $p < 1/2$, on $|\sin x| \geq |\cos x|$, we set $a = |\sin x|/2$ and $b=|\cos x|/2$ and get $$ q_x(p) = q(p \,; a,b) + \frac{1}{2}(\sin x + \cos x) \>, $$ and on $|\sin x| < |\cos x|$ the roles reverse. Similarly, for $p \geq 1/2$ $$ q_x(p) = -q(1-p \,; a,b) + \frac{1}{2}(\sin x + \cos x) \>, $$

The quantiles

Below are two heatmaps. The first shows the quantiles of the distribution of $P(x)$ for a grid of $x$ running from $0$ to $2\pi$. The $y$-coordinate gives the probability $p$ associated with each quantile. The colors indicate the value of the quantile with dark red indicating very large (positive) values and dark blue indicating large negative values. Thus each vertical strip is a (marginal) quantile plot associated with $P(x)$.

Quantiles as a function of x

The second heatmap below shows the quantiles themselves, colored by the corresponding probability. For example, dark red corresponds to $p = 1/2$ and dark blue corresponds to $p=0$ and $p=1$. Cyan is roughly $p=1/4$ and $p=3/4$. This more clearly shows the support of each distribution and the shape.

Quantile plot

Some sample R code

The function qproc below calculates the quantile function of $P(x)$ for a given $x$. It uses the more general qtrap to generate the quantiles.

# Pointwise quantiles of a random process: 
# P(x) = a_1 sin(x) + a_2 cos(x)

# Trapezoidal distribution quantile
# Assumes X = U + V where U~Uni(-a,a), V~Uni(-b,b) and a >= b
qtrap <- function(p, a, b)
{
    if( a < b) stop("I need a >= b.")
    s <- 2*(p<=1/2) - 1
    p <- ifelse(p<= 1/2, p, 1-p)
    s * ifelse( p < b/2/a, sqrt(8*a*b*p)-a-b, (2*p-1)*a )
}

# Now, here is the process's quantile function.
qproc <- function(p, x)
{
    s <- abs(sin(x))
    c <- abs(cos(x))
    a <- ifelse(s>c, s, c)
    b <- ifelse(s<c, s, c)
    qtrap(p,a/2, b/2) + 0.5*(sin(x)+cos(x))
} 

Below is a test with the corresponding output.

# Test case
set.seed(17)
n <- 1e4
x <- -pi/8
r <- runif(n) * sin(x) + runif(n) * cos(x)

# Sample quantiles, then actual.
> round(quantile(r,(0:10)/10),3)
    0%    10%    20%    30%    40%    50%    60%    70%    80%    90%   100%
-0.380 -0.111 -0.002  0.093  0.186  0.275  0.365  0.453  0.550  0.659  0.917
> round(qproc((0:10)/10, x),3)
 [1] -0.383 -0.117 -0.007  0.086  0.178  0.271  0.363  0.455  0.548
[10]  0.658  0.924
share|improve this answer
1  
I wish i could upvote more. This is the reason i love this website: the power of specialization. i didn't know of the trapezoid distribution. It would have taken me some time to figure this out. Or I would have had to settle for using Gaussians instead of Uniforms. Anyhow, it's awesome. – user603 Aug 14 '12 at 10:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.