Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: manipulate data to better fit a Gaussian Distribution
Date: Tue, 19 Mar 2013 12:46:06 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 60
Message-ID: <ki9mme$t77$1@newscl01ah.mathworks.com>
References: <ki9dra$56c$1@newscl01ah.mathworks.com> <ki9fdu$91c$1@newscl01ah.mathworks.com> <ki9fsv$abp$1@newscl01ah.mathworks.com> <ki9i7v$gjp$1@newscl01ah.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: www-06-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: newscl01ah.mathworks.com 1363697166 29927 172.30.248.38 (19 Mar 2013 12:46:06 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Tue, 19 Mar 2013 12:46:06 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 3799640
Xref: news.mathworks.com comp.soft-sys.matlab:791487

"Torsten" wrote in message <ki9i7v$gjp$1@newscl01ah.mathworks.com>...
> "Francesco Perrone" <francesco86perrone@yahoo.it> wrote in message <ki9fsv$abp$1@newscl01ah.mathworks.com>...
> > "Torsten" wrote in message <ki9fdu$91c$1@newscl01ah.mathworks.com>...
> > > "Francesco Perrone" <francesco86perrone@yahoo.it> wrote in message <ki9dra$56c$1@newscl01ah.mathworks.com>...
> > > > Hi all,
> > > > 
> > > > I have got a question concerning normal distribution (with mu = 0 and sigma = 1).
> > > > 
> > > > Let say that I firstly call randn or normrnd this way
> > > > 
> > > > x = normrnd(0,1,[4096,1]); % x = randn(4096,1)
> > > > 
> > > > Now, to assess how good x values fit the normal distribution, I call
> > > > 
> > > > [a,b] = normfit(x);
> > > > 
> > > > and to have a graphical support
> > > > 
> > > > histfit(x)
> > > > 
> > > > Now come to the core of the question: if I am not satisfied enough on how x fits the given normal distribution, how can I optimize x in order to better fit the expected normal distribution with 0 mean and 1 standard deviation?? Sometimes because of the few representation values (i.e. 4096 in this case), x fits really poorly the expected Gaussian, so that I wanna manipulate x (linearly or not, it does not really matter at this stage) in order to get a better fitness.
> > > > 
> > > > I'd like remarking that I have access to the statistical toolbox. 
> > > > 
> > > > I thank you all in advance.
> > > 
> > > Increase the number of sampling points (4096 in your example)
> > > or
> > > try another random number generator for a normally distributed random variable.
> > > 
> > > Best wishes
> > > Torsten.
> > 
> > It's quite a simplistic method.
> > 
> > Unfortunately, I cannot magnify the number of representations because of some reasons I will not explain here in detail (theory beyond the code I am writing). Besides, what else random generator may I use?
> > 
> > I do believe that is a way to "force" data better fitting the expected normal distribution.
> > 
> 
> I'm not an expert in this area, but in my opinion, every deterministic attempt to manipulate the data after their generation will weaken their randomness.
> A random number generator always makes a compromise between performance 
> and quality. If speed is not important for your application, there should be random number generators with higher quality than randn. Make a GOOGLE search.
> 
> > Regards,
> > Francesco
> 
> Best wishes
> Torsten.

Of course, if randomness of the numbers chosen does not matter, 
you can proceed as follows:

1. Choose an equidistant grid on [0:1] (e.g. p=[1/4 1/2 3/4]).
2. Calculate X=norminv(p,0,1)
3. Between X(i) and X(i+1), place 4096/(n-1) equidistant points where n is the length of the vector p (in this case n=3).
4. The collection of all these points will approximately follow a standard-normal distribution.

Best wishes
Torsten.