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.