On 03/10/2010 6:38 PM, solafah bh wrote:
Hello
If i want to resampl from the tails of normal distribution , are these commans 
equivelant??
  upper tail:qnorm(runif(n,pnorm(b),1))  if b is an upper tail boundary
  or
  upper tail:qnorm((1-p)+p(runif(n))  if p is the probability of each interval 
(the observatins are divided to intervals)


You don't say how far up in the tail you are going, but if b is very large, you have to watch out for rounding error. For example, with b=10, pnorm(b) will be exactly equal to 1, and both versions will fail. In general for b > 0 you'll get a bit more accuracy by sampling from the lower tail using -b. For really extreme cases you will probably need to switch to a log scale. For example, to get a random sample from a normal, conditional on being larger than 20, you'd want something like

n <- 10
logp1 <- pnorm(-20, log=TRUE)
logprobs <- log(runif(n)) + logp1
-qnorm(logprobs, log=TRUE)

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to