text: help-octave
  [Top][All Lists]
  
  ## Re: random numbers
  
   From: john Subject: Re: random numbers Date: Tue, 16 Feb 1999 21:24:43 +0000 (GMT)
  
  ```Selectively quoted and editted, On Mon, 15 Feb 1999, G. Brger wrote:
  
  > ... is it reasonable that for 2 independant random series,
  > generated with
  >
  >    e=normal_rnd(my_mean, my_var, 100000, 2);
  >
  > then cor(e(:,1),e(:,2)) has the order of 1e-3?
  
  Yes. Because doing
  
  e=normal_rnd(my_mean, my_var, n, 2);
  u = cor(e(:,1), e(:,2))
  
  could be viewed as an unusual way to calculate a random number u with
  mean nearly zero, variance roughly 1/n. So we expect u to lie within
  about 3 standard deveations (3/sqrt(n)) of zero. For the n=100000 in the
  question, we expect numbers in the range 10e-3 to -10e-3.
  
  The underlying reason is that evaluating cor(e1,e2) involves averaging
  the product of pairs of independant random numbers, mean 0 variance 1.
  Each of the products gives a random number with mean 0 variance 1.
  The average then has mean 0, variance 1/n. (Don't quote me - there
  is some detail missing).
  
  Further numerical evidence could come from a bit of octave code like:
  
  mu = 200 ;      ## choose some numbers
  sigma = 142 ;
  
  n = 100 ;       ##  length of each random sequence
  m = 500 ;       ##  number of correlation coefficients to calculate
  
  t = zeros(1,m) ;
  for r=1:m
  e = normal_rnd( mu, sigma, n, 2 ) ;
  e1 = e(:,1) ;
  e2 = e(:,2) ;
  
  t(r) = cor( e1, e2 ) ;
  endfor
  
  printf("mean of correlation coefficients is %f\n", mean(t)) ;
  printf("var  of correlation coefficients is %f\n", var(t)) ;
  printf("reciprical of n is %f\n", 1.0/n ) ;
  
  which for me gives values
  mean of correlation coefficients is 0.000501    <- nearly zero
  var  of correlation coefficients is 0.010560    <- nearly 1/n
  reciprical of n is 0.010000
  
  John.
  
  ```