From Bill.Venables@cmis.csiro.au  Fri Sep 15 03:18:24 2000
From: Bill.Venables@cmis.csiro.au (Bill Venables)
Date: Fri, 15 Sep 2000 12:18:24 +1000
Subject: [Rd] Projects
Message-ID: <3.0.32.20000915121819.012af4d0@pophost.nsw.cmis.csiro.au>

At 18:46 14/09/00 +0200, Martin Maechler wrote:
>
>1) Design of Experiments :
>
> - S (even before "-plus" existed) has had functions like
>
>   fac.design
>   oa.design
>   fractionate   etc  ["White book", chapter 5].
>
>		 [also a set of pre-stored useful fractional designs
>		  for (> 2)-leveled factors.]

The drawback with this project, worthy as it is, is that if you are not
really on top of experimental design the computations can be surprisingly
tricky.

On the quiet I have just released a miniscule library for R, conf.design,
that might make a good first step, though.  It generates confounded
symmetrical designs for the p^n case.  You tell it which contrasts you are
prepared to sacrifice across blocks and it generates the design that will
do it.  It also has things to generate "pseudo-factors", that is if you
have a composite number of levels for your real factor it will generate a
number of factors each with a prime number of levels which together are
equivalent to yours.  In this way you can partially extend the thing to the
non-prime case, but not very far.  There is a really interesting
programming exercise in this waiting to be done here, I have to say, but
the trickiness should not be under-estimated.

I released it because I kept getting requests to do so, but it was done a
long time ago and it is not exactly tidy.  In particular the front end is
obscure and should be formula based rather than matrix based.  This would
make a nice little programming project for a wet weekend or so.

(conf.design also has a function, primes(), that is way overkill for the
sorts of things I need it for in this library, but it generates primes < N
using the classical sieve of eratosthenes in a pretty slick way.)

Another approach to this whole problem is to look for approximate designs
rather than insist on exact balance, orthogonality, or even absolutely
highest efficiency.  In the experimental design context (as opposed to,
say, coding theory) you never need anything but a reasonably good design,
anyway.  

There is some freely available software around for doing that, such as
"Dopt" a fortran program by Alan Miller and Nam Nguyen that was published
in Applied Statistics algorithms some time ago for constructing D-optimal
(or nearly so) experiments for a given simple block structure.  

I had a go at putting a front-end on this some time ago and I think the
result is still floating around StatLib, but the S code is c*o*m*p*l*e*x
and probably far too optimistic in what it sets out to do.  I have never
returned to it but again, this had a fair following for some time (maybe
even still) and would be a very useful thing to have for R.  I also have
some simulated annealing-type software that constructs near optimal block
and row-column designs but I left that problem alone 9 years ago and have
not thought much about it since.  It could be resurrected, though, if
anyone were interested.  This is written in C and has never had an S front
end.

Bill Venables.

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


[Rd] Projects
Bill Venables