The sum-to-zero constraint imposes a loss of one degree of freedom.  Of  N 
samples, only (N-1) can be random.   Thus the solution is

> N <- 100
> x <- rnorm(N-1)
> x <- c(x, -sum(x))
> sum(x)
[1] -7.199102e-17




> 








Boris Steipe <boris.steipe@utoronto.ca> 
Sent by: r-help-bounces@r-project.org
04/01/2014 09:29 AM

To
Marc Marí Dell'Olmo <marceivissa@gmail.com>, 
cc
"r-help@r-project.org" <r-help@r-project.org>
Subject
Re: [R] A vector of normal distributed values with a sum-to-zero 
constraint






Make a copy with opposite sign. This is Normal, symmetric, but no longer 
random.

  set.seed(112358)
  x <- rnorm(5000, 0, 0.5)
  x <- c(x, -x)
  sum(x)
  hist(x)

B.

On 2014-04-01, at 8:56 AM, Marc Marí Dell'Olmo wrote:

> Dear all,
> 
> Anyone knows how to generate a vector of Normal distributed values
> (for example N(0,0.5)), but with a sum-to-zero constraint??
> 
> The sum would be exactly zero, without decimals.
> 
> I made some attempts:
> 
>> l <- 1000000
>> aux <- rnorm(l,0,0.5)
>> s <- sum(aux)/l
>> aux2 <- aux-s
>> sum(aux2)
> [1] -0.000000000006131392
>> 
>> aux[1]<- -sum(aux[2:l])
>> sum(aux)
> [1] -0.00000000000003530422
> 
> 
> but the sum is not exactly zero and not all parameters are N(0,0.5)
> distributed...
> 
> Perhaps is obvious but I can't find the way to do it..
> 
> Thank you very much!
> 
> Marc
> 
> ______________________________________________
> 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.


	[[alternative HTML version deleted]]


