Suppose there is a sample $X\sim N(0,1)$


If I want to generate a conditional random variable $Y|X\sim U(0,1)$, how can I get this conditional sample in R?

Actually, I want to run a simulation for the Skorohod representation of quantile regression. $$Y=X^\prime\beta(U),\quad U|X\sim U(0,1)$$ So that the $\tau$th quantile linear regression coefficient is $\beta(\tau)$. I think the comment and answer below is correct.

The simulation I did is as following:

Let $U\sim U(0,1)$, $X\sim |N(0,1)|$, $\beta(u)=0.5(1+u)$.

Generate $y=x\beta(u)$.

So that if we do a quantile regression between $y$ and $x$, then the $\tau$th quantile linear regression coefficient is just $\beta(\tau)$. Note that 0.5497972643 is very close to 0.55

> fit
rq(formula = y ~ x, tau = 0.1)

(Intercept)             x 
-0.0002284288  0.5497972643 
> 1.1*0.5
[1] 0.55

Thanks for all the comments and answers!


closed as unclear what you're asking by Juho Kokkala, mkt, DeltaIV, mdewey, jpmuc Feb 22 at 12:12

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ You need to know how it is conditioned, i.e. pdf of $y|x$. $\endgroup$ – gunes Feb 22 at 5:56
  • 3
    $\begingroup$ Can you clarify the notation $Y\mid X \sim U(0,1)$ - did you really intend $Y$ and $X$ to be independent (As interpreted in the answer)? It might help to explain how the need to generate this sample arises. $\endgroup$ – Juho Kokkala Feb 22 at 7:07

Notice that if $Y|X \sim U(0,1)$, then regardless of the value of $X$, $Y|X$ is always $\text{Uniform}(0,1)$. In other words, the conditional distribution does not depend on $X$ (Compare this with a situation in which $Y|X \sim \text{Uniform}(0,X)$, where now we have to know the value of $X$ to ascertain the distribution of $Y$).

Thus, assuming there are no typos in your question, the following code will do:

x <- rnorm(100)
y <- runif(100)

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