:) I might be trying to do something stupid so let me try again: 1) I have a large sample - daily percentage movement for a stock 2) I want to generate a synthetic stock which has daily movements from the same distribution as the original
The solution I was planning to implement (following the old post cited) is: 1) Compute the quantiles over the known data 2) Generate a uniformly distributed U in (0,1) 3) Find the quantile corresponding to U 4) Using U's offset from the left end of the quantile, compute the daily movement for the synthetic stock Below is the function I came up with. Two questions: 1) Is there an existing R function to do that? 2) Is this a sound approach? Thanks in advance! rsample = function(s, n, step=0.01) { qs = quantile(s, probs=seq(0, 1, step)) res = rep(0, n) unif = runif(n) for(i in 1:n) { uu = unif[i] # find uu's quantile qid = ceiling(uu / step) qleft = (qid - 1)*step # compute the result using uu's offset within the quantile res[i] = as.numeric(qs[qid]) + ((uu - qleft)/step)*(as.numeric(qs[qid+1]) - as.numeric(qs[qid])) } return(res) } > From: gunter.ber...@gene.com > To: greg.s...@imail.org; ivan.popiva...@hotmail.com; r-help@r-project.org > Subject: RE: [R]A random number from any distribution?þ > Date: Mon, 14 Dec 2009 13:04:37 -0800 > > Sounds like the poster might be interested in bootstrap sampling ... > As usual, what's the question of interest? > > Bert Gunter > Genentech Nonclinical Biostatistics > > > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Greg Snow > Sent: Monday, December 14, 2009 12:45 PM > To: ivan popivanov; r-help@r-project.org > Subject: Re: [R]A random number from any distribution?â > > Look at the logspline package for an alternative. > > -- > Gregory (Greg) L. Snow Ph.D. > Statistical Data Center > Intermountain Healthcare > greg.s...@imail.org > 801.408.8111 > > > > -----Original Message----- > > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r- > > project.org] On Behalf Of ivan popivanov > > Sent: Saturday, December 12, 2009 7:38 PM > > To: r-help@r-project.org > > Subject: [R] A random number from any distribution?â > > > > > > Hello, > > > > I have some data, and I want to generate random numbers following the > > distribution of this data (in other words, to generate a synthetic data > > set sharing the same stats as a given data set). Reading an old thread > > I found the following text: > > > > >If you can compute the quantile function of the distribution (i.e., > > the > > >inverse of the integral of the pdf), then you can use the probability > > >integral transform: If U is a U(0,1) random variable and Q is the > > quantile > > >function of the distribution F, then Q(U) is a random variable > > distributed > > >as F. > > > > That sounds good, but is there a quick way to do this in R? Let's say > > my data is contained in "ee", I can get the quantiles using: > > > > qq = quantile(ee, probs=(0,1,0.25)) > > 0% 25% 50% 75% 100% > > -0.2573385519 -0.0041451053 0.0004538924 0.0049276991 0.1037823292 > > > > Then I "know" how to use the above method to generate Q(U) (by looking > > up U in the first row, and then mapping it to a number using the second > > row), but is there an R function that does that? Otherwise I need to > > write my own to lookup the table. > > > > Thanks in advance, > > Ivan > > > > _________________________________________________________________ > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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. > > ______________________________________________ > 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. > _________________________________________________________________ Windows Live: Make it easier for your friends to see what youâre up to on Facebook. http://go.microsoft.com/?linkid=9691816 [[alternative HTML version deleted]]
______________________________________________ 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.