SAS provides a catalog of over 117,000 orthogonal arrays.
Orthogonal arrays are frequently used as plans for conducting
experiments. This site provides:
• a library of
strength-two (main-effects only) orthogonal arrays,
• lists and other
information about orthogonal arrays,
•
a library of difference schemes,
• tools for orthogonal
array and efficient factorial design generation.
Every orthogonal array listed in
Orthogonal Arrays (Hedayat, Sloane, and Stufken, 1999)
(
http://www.research.att.com/~njas/doc/OA.html) can be found
here
along with many arrays that were not known in 1999 and many other larger
arrays as well.
Thanks to Don Anderson, Warwick DeLauney,
Nam-Ky Nguyen, Shanqi Pang, Neil Sloane,
Chung-yi Suen, Randy Tobias, J.C. Wang, and
Yingshan Zhang who have all kindly helped with some of the
arrays and difference schemes in this catalog. Please direct all
questions about this site to
Warren F. Kuhfeld.
Orthogonal array research is an active area today, and new arrays are
being discovered all of the time. Also, there are some larger arrays
that are known to exist, but are not included here. Most of the larger
arrays are based on difference schemes, and there
are a few that are currently not in the software.
The orthogonal array construction
code,
with hundreds of methods implemented, is freely available on the web.
Please contact me if you can help fill in any arrays that are not on
this site or provide more elegant construction methods. This resource
cannot continue to grow without your help.
Click here to send me an email.
Click here to see a library of orthogonal arrays. This flat file
contains all known strength-two orthogonal array parents (except
full-factorial designs) up to 143 runs and a few of the known parents in
144 runs. These arrays can be used to construct a wide variety of other
arrays using the methods described with the orthogonal array
lists.
Note however that the SAS
MktEx macro can automatically
create these and many more orthogonal arrays.
Click here to see lists of known orthogonal arrays. This PDF file
has: a list of all known strength-two orthogonal arrays up through 143
runs, a list of parent orthogonal arrays (including all known parent
orthogonal arrays up through 143 runs and a reasonably comprehensive set
of parent orthogonal arrays for 144 through 513 runs), and a reference
list.
Neil Sloane's orthogonal array site (
http://www.research.att.com/~njas/oadir/) provides many strength-two
orthogonal arrays including some arrays that are alternatives to the
ones shown here. This site also contains arrays of strength greater
than two, assorted Hadamard constructions, many other useful designs not
covered here, and information about the 1999 book Orthogonal
Arrays by Hedayat, Sloane, and Stufken.
Nam-Ky Nguyen's site
(http://designcomputing.net/gendex/noa/)
provides many near-orthogonal arrays made with his NOA tool.
SAS provides a set of free macros for making orthogonal arrays and
D-efficient nonorthogonal designs. They are documented in the free book
Marketing Research Methods in SAS. While the book
features marketing research examples, these macros have been widely
used to make factorial designs for many other application areas.
• Click
here for the general book and macro site.
• Click here for
a direct link to the macro documentation.
• Click here for
a direct link to the macros.
• Click here for
a direct link to the full 857-page book.
The MktEx macro (pronounced "Mark Tex") generates factorial experimental
designs. The "Mkt" or "market" part of the name comes from the fact
that it was originally designed with marketing researchers in mind.
MktEx is just one in a series of Mkt macros. Some would only be used by
marketing researchers and others doing choice modeling. Others, like
MktEx, MktBal (balanced designs), MktOrth (orthogonal array catalog),
and MktRuns (suggest number of runs), MktBlock (block a design), MktEval
(evaluate a design), MktDups (check for duplicate runs), and MktLab
(reassign levels and names), are of interest to a much larger audience.
Marketing researchers have extremely interesting design requirements.
They often need designs that are larger and more complicated than is
typically required in other sciences. However, researchers in many
other areas use MktEx every day to make designs for a variety of
purposes. MktEx was developed for everyone who wants to make efficient
designs, not just marketing researchers. This full-featured macro can
easily handle simple problems like main-effects designs and more
complicated problems including designs with interactions and designs
with restrictions on which levels can appear together. Over 117,000
orthogonal arrays are available in its catalog. Efficient nonorthogonal
designs are quickly and easily found. Here are some of the MktEx and
other design macro capabilities:
| • easy to use |
• Hadamard matrices |
• balanced designs |
• efficient designs |
| • Taguchi designs |
• any number of factors |
• orthogonal arrays |
• main effects |
| • up to 144-level factors |
• nonorthogonal designs |
• interactions |
• any mix of levels |
| • nearly orthogonal designs |
• blocking factors |
• level restrictions |
• full-factorial designs |
| • design diagnostics |
• general restrictions |
• fractional-factorial designs |
• design evaluations |
| • ensure no duplicate profiles |
• tabled designs |
• automatic randomization |
• partial profiles |
MktEx and the other macros are documented
here,
they are free from
here, and the entire book is available from
here.
The MktEx macro is free, however it requires the following SAS products
in order to run: BASE, SAS/STAT, SAS/QC, and SAS/IML.
In this example, MktEx produces an orthogonal array with 1 two-level
factor and 6 three-level factors in 18 runs:
%mktex( 2 3 ** 6, n=18 )
This next example requests a nearly orthogonal design with 15
three-level factors in 36 runs. MktEx uses a combination of an
orthogonal array and a computerized search algorithm to find an
efficient design.
%mktex( 3 ** 15, n=36, seed=17 )
This next example illustrates finding a design with restrictions and
interactions. You can write a SAS macro that prevents certain level
combinations from occuring together or defines any type of restriction
that you want. MktEx can find designs with very complicated sets of
restrictions. Here is an example with a simple set of restrictions.
%macro resmac;
avail = (x1 < 4) + (x2 < 4) + (x5 < 3) + (x6 < 3) + (x8 < 3);
if (avail < 2) | (avail > 4) then bad = abs(avail - 3);
else bad = 0;
%mend;
%mktex( 4 4 2 2 3 3 2 3, n=36, interact=x2*x3 x2*x4 x3*x4 x6*x7,
restrictions=resmac, seed=104)
The user defines a badness function for MktEx to minimize. More details
on this example are available starting on page 286 of
Marketing Research Methods in SAS.
Hadamard matrices are binary matrices, usually consisting of (1, -1) or
(0, 1). Hadamard matrices are useful for making orthogonal arrays with
two-level factors. MktEx can make Hadamard
matrices for all of these sizes up to 1000.
2  4  8  12 
16  20  24  28  32 
36  40  44  48  52 
56  60  64  68  72 
76  80  84  88  92 
96  100  104  108  112  116  120 
124  128  132  136  140  144  148  152 
156  160  164  168  172  176  180  184 
188  192  196  200  204  208  212  216 
220  224  228  232  236  240  244  248 
252  256  260  264  268  272  276  280 
284  288  292  296  300  304  308  312 
316  320  324  328  332  336  340  344 
348  352  356  360  364  368  372  376 
380  384  388  392  396  400  404  408 
412  416  420  424  428  432  436  440 
444  448  456  460  464 
468  472  480  484  488 
492  496  500  504  512 
516  520  524  528  536 
540  544  548  552  556  560  564  568 
572  576  580  584  588  592  596  600 
604  608  612  616  620  624  628  632 
636  640  644  648  656 
660  664  ---  672  676  680  684  688 
692  696  700  704  708  712  ---  720 
724  728  732  736  740  744  748  752 
756  760  ---  768  776 
780  784  788  792  796  800  804  808 
812  816  820  824  828  832 
840  844  848 
856  860  864  868  872 
880  884  888  ---  896 
900  908  912  916  920 
924  928    936 
944  948 
---  960  968  972  976 
984  992 
1000
It
can make a number of larger Hadamard matrices as well. Every size up
to 448 is in the list, with good but not complete coverage beyond that.
The MktEx macro can construct these matrices when
n is a multiple
of 4 and one or more of the following hold:
n ≤ 448 or n = 596, 604, 612,
732, or 756,
n - 1 is prime,
n / 2 - 1 is prime power and mod(n
/ 2, 4) = 2,
n is a power of 2 (2, 4,
8, 16, ...) times the size of a smaller Hadamard matrix that is
available.
This list contains a new Hadamard matrix of order 428 by Kharaghania and
Tayfeh-Rezaiea (2004). Entries of "---" indicate sizes where there is
currently no known construction method. Help in making the remaining
Hadamard matrices would be welcome. The seed vectors for Williamson and
other constructions can be found in MktEx.
Click here to see a library of difference schemes and generalized Hadamard
matrices. Difference schemes provide the building blocks from which
many orthogonal arrays are constructed. Let
D(λs, c, s) denote a difference
scheme with λs rows and c columns with entries 0, 1,
..., s - 1. When c = λs, the difference
scheme is square, and D(λs, λs, s) is
called a generalized Hadamard matrix. MktEx can make the following
difference schemes and generalized Hadamard matrices.
D(3,3,3)
D(6,6,3)
D(9,9,3)
D(12,12,3)
D(15,9,3)
D(18,18,3)
D(21,12,3)
D(24,24,3)
D(27,27,3)
D(30,30,3)
D(33,13,3)
D(36,36,3)
D(39,13,3)
D(42,21,3)
D(45,27,3)
D(48,48,3)
D(51,24,3)
D(54,54,3)
D(57,27,3)
D(60,30,3)
D(63,36,3)
D(66,30,3)
D(69,24,3)
D(72,72,3)
D(75,27,3)
D(78,30,3)
D(81,81,3)
D(84,42,3)
D(87,27,3)
D(90,90,3)
D(93,30,3)
D(96,96,3)
D(99,39,3)
D(102,48,3)
D(105,29,3)
D(108,108,3)
D(111,36,3)
D(114,30,3)
D(117,39,3)
D(120,48,3)
D(123,30,3)
D(126,72,3)
D(129,48,3)
D(132,132,3)
D(135,81,3)
D(138,48,3)
D(141,30,3)
D(144,144,3)
D(147,42,3)
D(150,150,3)
D(153,72,3)
D(156,48,3)
D(159,36,3)
D(162,162,3)
D(165,42,3)
D(168,84,3)
D(171,81,3)
D(4,4,4)
D(8,8,4)
D(12,12,4)
D(16,16,4)
D(20,10,4)
D(24,20,4)
D(28,12,4)
D(32,32,4)
D(36,36,4)
D(40,16,4)
D(44,12,4)
D(48,48,4)
D(52,16,4)
D(56,56,4)
D(60,20,4)
D(64,64,4)
D(68,32,4)
D(72,36,4)
D(76,16,4)
D(80,40,4)
D(84,36,4)
D(88,32,4)
D(92,36,4)
D(96,96,4)
D(100,36,4)
D(104,48,4)
D(108,108,4)
D(112,56,4)
D(116,36,4)
D(120,56,4)
D(124,20,4)
D(128,128,4)
D(5,5,5)
D(10,10,5)
D(15,8,5)
D(20,20,5)
D(25,25,5)
D(30,11,5)
D(35,10,5)
D(40,20,5)
D(45,20,5)
D(50,50,5)
D(55,11,5)
D(60,20,5)
D(65,20,5)
D(70,20,5)
D(75,40,5)
D(80,80,5)
D(85,20,5)
D(90,90,5)
D(95,20,5)
D(100,100,5)
D(6,2,6)
D(12,6,6)
D(18,2,6)
D(24,6,6)
D(30,2,6)
D(36,7,6)
D(42,2,6)
D(48,10,6)
D(54,2,6)
D(60,8,6)
D(66,2,6)
D(72,12,6)
D(78,2,6)
D(84,8,6)
D(7,7,7)
D(14,14,7)
D(21,9,7)
D(28,28,7)
D(35,9,7)
D(42,18,7)
D(49,49,7)
D(56,28,7)
D(63,14,7)
D(70,18,7)
D(8,8,8)
D(16,16,8)
D(24,8,8)
D(32,32,8)
D(40,10,8)
D(48,16,8)
D(56,56,8)
D(64,64,8)
D(9,9,9)
D(18,18,9)
D(27,27,9)
D(36,36,9)
D(45,18,9)
D(54,54,9)
D(10,2,10)
D(20,5,10)
D(30,2,10)
D(40,6,10)
D(50,2,10)
D(11,11,11)
D(22,22,11)
D(33,11,11)
D(44,44,11)
D(12,6,12)
D(24,6,12)
D(36,6,12)
D(13,13,13)
D(26,26,13)
D(14,2,14)
D(28,5,14)
D(15,5,15)
D(30,5,15)
D(16,16,16)
D(32,32,16)
D(17,17,17)
D(18,2,18)
D(19,19,19)
D(20,4,20)
D(21,4,21)
D(22,2,22)
There are a few larger arrays that should be included in
MktEx for completeness, but they rely on obscure difference schemes.
MktEx still needs:
D(60,36,3)
D(102,51,3)
D(60,21,4)
D(112,64,4)
D(30,15,5)
D(35,17,5)
D(40,25,5)
D(55,17,5)
D(60,25,5)
D(65,25,5)
D(85,35,5)
D(60,11,6)
D(84,16,6)
D(35,11,7)
D(63,28,7)
D(40,8,10)
D(30,7,15)
D(21,6,21)
If you can help with any of these or any other difference scheme that
is not in the list above, please contact me.
Click here to send me an email.
Your contribution will be acknowledged on this site and in the next
edition of the Marketing Research book. All orthogonal arrays and
difference schemes contributed to this site may be freely used.
Before contributing, please ensure that your contribution has no
restrictions on such use.