Skip to content

Home / DOE / Create Designs / Two Level Factorial Designs / Math Details

Math Details

This page gives the quantities a two level factorial design is built from and how each one is formed: which columns are laid out directly and which are formed as products, how many rows the finished design holds, where the center points sit, and what the fold and the blocking do to the row count.

The aliasing that a fractional design carries is the same subject for every two level design in Quantum XL, so it is defined once on Aliasing and Resolution and included here rather than restated. This page covers the design's own construction and its run count.

Notation

Term Description
\(k\) the number of factors
\(F\) the number of factorial runs, the run count chosen in the dialog before center points, replicates and folding
\(g\) the number of factors that do not get a column of their own, \(g = k - \log_2 F\)
\(x_A\) the coded column of factor \(A\), one entry of \(+1\) or \(-1\) per run
\(\odot\) entrywise multiplication, run by run
\(R\) the number of replicates
\(C\) the number of center points per group, as typed in the dialog
\(q\) the number of categorical factors in the design
\(b\) the number of block generators
\(B\) the number of blocks
\(N\) the number of rows in the finished design

The run count is chosen, not derived

The dialog offers a fixed list of factorial run counts, and \(F\) is whichever one is selected. Every count is a power of two, and which counts are offered depends on the number of factors:

Factors \(k\) Factorial run counts offered
2 4
3 4, 8
4 8, 16
5 8, 16, 32
6 8, 16, 32, 64
7 8, 16, 32, 64, 128
8 to 15 16, 32, 64, 128

The number of factors runs from 2 to 15; outside that range the design is refused rather than approximated.

A full factorial is the case \(F = 2^k\); every smaller \(F\) on the list gives a fraction, and the fraction is reported as

\[ \frac{2^k}{F} \]

so a design of 5 factors in 16 runs is reported as a \(2^5 / 16 = 2\), a half fraction.

Above 7 factors a full factorial is not on the list. The largest run count offered is 128, and \(2^k > 128\) for every \(k \ge 8\), so every design of 8 or more factors is a fraction and carries the aliasing that follows. At 15 factors in 128 runs the fraction is \(2^{15} / 128 = 256\).

Which columns are laid out and which are formed

\(\log_2 F\) of the factors are laid out as a full factorial in their own right: their columns carry every combination of \(+1\) and \(-1\) exactly once, which is what fills all \(F\) rows. The remaining \(g\) factors are each given the entrywise product of two or more of those columns.

A two-level design codes every factor as a column of \(+1\) and \(-1\), one entry per run. A full factorial on \(k\) factors needs \(2^k\) runs, because that is how many distinct combinations of \(+1\) and \(-1\) there are. A fractional design has fewer runs than that, so some factors cannot be given a column of their own.

Quantum XL builds a fractional design in two steps. The factors that do get their own column, \(\log_2 F\) of them for a design of \(F\) runs, are laid out as a full factorial: their columns carry every combination of \(+1\) and \(-1\) exactly once, which fills all \(F\) rows. Each of the remaining

\[ g = k - \log_2 F \]

factors is then given the entrywise product of two or more of those columns. The equation naming that product is the factor's generator. Written the way the source writes it, a generator reads \(D = AB\), which means

\[ x_D = x_A \odot x_B \]

where \(\odot\) is entrywise multiplication: run by run, \(x_D\) is the product of the entries of \(x_A\) and \(x_B\) in that run. Two entries of \(\pm 1\) multiply to \(\pm 1\), so the new column is a legal two-level column.

The consequence is immediate, and it is the source of every alias in the design. The column belonging to factor D and the column belonging to the interaction AB are not merely similar, they are the same list of numbers. Nothing computed from the design can separate them.

The generators are looked up, not calculated. A reader expecting a formula that produces them will not find one. Quantum XL carries a fixed table with one entry per combination of factor count and run count: the code selects first on the number of factors, from 2 to 15, then on the number of runs, from 4 to 128, and each case assigns literal lists of factor positions. There are 49 such combinations, 214 stored design generators among them, and a further 338 stored block generators for the blocked cases. Nothing about a generator is derived while a design is being built. It is read out of that table.

A resolution number is stored beside each entry of that table, and a blocked resolution beside each block count within it. Those stored numbers are what the design description at the top of the design sheet reports: the stored resolution when the design is not blocked, the stored blocked resolution when it is. The Roman numeral in the design selection grid is stored too, but in a second table of its own, written into the dialog code and indexed by the grid's row and column rather than by anything the generators carry. Neither of those is the number in the sheet's aliasing block. That one is computed from the design's own columns after the design exists, and the section below says how.

The order the laid-out combinations appear in is a setting, not a fixed property of the design. The combinations are enumerated as a mixed-radix count, and one of two orders is used:

  • The default order varies the last factor fastest. The first rows of a three factor layout run \((-,-,-)\), \((-,-,+)\), \((-,+,-)\), \((-,+,+)\) and onward.
  • The reversed order varies the first factor fastest, giving \((-,-,-)\), \((+,-,-)\), \((-,+,-)\), \((+,+,-)\) and onward.

The choice is a saved per-user option rather than a control on the design dialog, and it defaults to the first of the two. It changes the order of the rows and nothing else: the same set of \(F\) combinations is present either way, so every alias, every resolution and every fitted coefficient is unchanged. Only the sequence the runs are listed in differs.

A separate saved option randomizes the run order after the design is built. It also defaults to off.

Both settings apply to this design, to the central composite design and to the Box Behnken design. They do not reach the general factorial, which fixes its own order.

Coding

Each enumerated combination is an index per factor, and the index becomes a coded value by mapping the low index to \(-1\):

\[ x = \begin{cases} -1, & \text{index } 0 \\ +1, & \text{index } 1 \end{cases} \]

The mapping is applied to every factor the same way, whether the factor is quantitative or categorical. For how a coded value is turned back into the number or level written on the design sheet, see Design Coding.

Aliased columns

Each of the \(g\) remaining factors takes the product named by its generator:

\[ x_D = x_A \odot x_B \odot \cdots \]

The product of columns of \(\pm 1\) is itself a column of \(\pm 1\), so the new column is a legal two level column, and it is identical to the column of the interaction its generator names. That identity is the whole of the design's aliasing.

Every generator can be rewritten as a statement about the identity column \(I\), the column whose every entry is \(+1\). Multiply both sides of \(D = AB\) by \(x_D\):

\[ x_D \odot x_D = x_A \odot x_B \odot x_D \]

The left side is \(I\), because every entry of \(x_D\) is \(+1\) or \(-1\) and both square to \(+1\). So

\[ I = ABD \]

and the generator has become a word: a product of factor letters whose column is the identity column. Quantum XL forms one such word from each generator by taking the generator's own letters and adding the letter of the factor that generator defines.

The words multiply, and their products are words as well. If \(I = ABD\) and \(I = ACE\) then

\[ I = I \odot I = ABD \odot ACE = AABCDE = BCDE \]

because \(x_A \odot x_A = I\) removes the repeated letter. Multiplication of two words is therefore performed by writing their letters together and then deleting every letter that appears an even number of times, keeping one copy of every letter that appears an odd number of times.

The defining relation is the closure of the generator words under that multiplication. With \(g\) generators, Quantum XL forms the \(g\) words first, then multiplies out every subset of two or more of them, which gives

\[ 2^g - 1 \]

words in all. The relation is then sorted, shortest word first. The identity itself is not one of the listed words. It is the thing they are all equal to.

The design sheet prints the relation under the heading Identity, as a single line that begins with the label const and lists the words separated by equals signs, for example const=ABD=ACE=BCDE. The printed line is not read back from the generator table. It is found by scanning the finished design: every product of factor columns up to the size limit described under the alias table is formed, and any product whose column holds the same value in every run is collected onto that line. A design in which no product is constant prints no Identity line at all.

The length of a word \(W\), written \(\lvert W \rvert\), is the number of letters it holds after the cancelling described above. Because a letter that appears twice is removed outright, a reduced word never repeats a letter, so its length is a count of distinct factors: \(ABD\) has length 3 and \(BCDE\) has length 4. Quantum XL stores a word as a sorted list of factor positions and takes the length from the size of that list, so the length is read after every cancellation has already happened, never before.

Word length is what connects the defining relation to the aliases. Take a word \(W\) with \(\lvert W \rvert = L\) and multiply it by one of its own letters, say \(A\):

\[ A = A \odot I = A \odot W \]

and \(A \odot W\) has \(A\) cancelled out of it, so it is an interaction of the other \(L - 1\) letters of \(W\). A main effect is therefore aliased with an interaction of \(L - 1\) factors for every word of length \(L\) that contains it. The same arithmetic runs from any term, not only from a main effect: multiplying any term by any word gives the term it is aliased with, and that term is written with the letters the two do not have in common, every shared letter having cancelled.

So the shortest word in the defining relation fixes the closest pairing the design contains, and the longer words describe pairings that are further apart.

The resolution reported on the design sheet is

\[ R = 1 + \min \{\, n : \text{a main effect is aliased with an } n \text{-factor interaction} \,\} \]

that is, one more than the number of factors in the smallest interaction that any main effect is aliased with. Quantum XL does not read this off the words. It pairs terms first, by comparing columns in the way the alias table section describes, and records for each pair it finds the two term sizes involved. It then looks for the smallest \(n\) for which the pair (main effect, \(n\)-factor interaction) was recorded, and reports \(n + 1\).

The two routes give the same number. A word of length \(L\) that contains a main effect makes that main effect aliased with an interaction of \(L - 1\) factors, and no shorter pairing can exist, so

\[ R = \min_{W} \lvert W \rvert \]

the length of the shortest word in the defining relation. Reading resolution as a shortest word length and reading it as one more than the closest aliased pair are two descriptions of the same design.

\(R\) is written as a Roman numeral wherever it is displayed. Three cases sit outside the ordinary numbering:

  • No aliasing at all. No product of columns matches any other and none of them is constant, so no pair is ever recorded. A full factorial with no blocking is this case. The sheet still writes the Aliasing information title, and prints All terms are free from aliasing. under it instead of the resolution, identity and alias table headings.
  • Aliasing that does not touch a main effect. If no pair involves a main effect but some pair involves two interactions, no Roman numeral is produced. The line names the smallest such pair directly, as Some m-ways are aliased with n-ways.
  • Resolution II. The arithmetic allows \(n = 1\), one main effect aliased with another, which gives \(R = 2\).

The search has a ceiling, and that ceiling decides the largest resolution that can be reported. Products are formed up to 7 factors when the design has 15 factors or fewer, and up to 3 factors when it has more than 15, which the larger Taguchi arrays reach. A main effect aliased with a 7-factor interaction is the deepest pairing the search can see, so resolution VIII is the largest number the design sheet can report.

A line of the alias table is a list of terms that share one column of the design, printed with equals signs between them, for example A=BD=CE. Every term on the line has the identical list of \(+1\) and \(-1\) values down the runs, so the design carries one column of information for all of them and no fit can tell them apart.

The lines are built by comparison, not by algebra. Quantum XL forms every main effect and every interaction up to the size ceiling given above, turns each one into a column by multiplying its factors' columns entrywise, and then compares columns:

  • Two terms go on the same line when their columns agree entry by entry, within a tolerance of \(10^{-7}\) on each entry.
  • They also go on the same line when the columns agree after one of them is multiplied by \(-1\). The term is then printed with a leading minus sign, as in A=-BD, which says the two columns carry the same information with opposite signs.

Two kinds of term never reach the table. A term whose column is constant down every run belongs to the defining relation and is collected onto the Identity line instead. A term whose column is constant within every block is confounded with a block and is collected onto a blocking line instead. Each term is placed once and once only, so a term on the Identity line or on a blocking line does not appear again among the alias table lines.

A line can hold a single term. That is what the table prints for a term the comparison matched with nothing, and it means that term is aliased with nothing.

Within a line the terms are ordered by length first, shortest leading, and by factor position among terms of equal length. The lines are then sorted against each other by comparing their leading terms the same way. Terms are written with one letter per factor, A for the first factor and onward, and in a design of more than 26 factors as F1, F2 and onward instead.

The regression sheet carries no alias table. It prints the alias inside the term's own name instead: the term reads A=BC, and where the line holds more than two terms the name ends in =....

Folding

A fold appends a second copy of the design below the first, so the run count doubles. The copy holds the same columns with some of them negated:

  • Fold on all factors negates every factor column in the copy.
  • Fold on one factor negates that factor's column in the copy and leaves every other column as it was.

What that does to the aliasing follows from how a word's column is formed. The column of a word of length \(L\) is the product of \(L\) factor columns, so the word's column in the copied half is multiplied by \(-1\) once for every one of its factors that the fold negates.

  • Under a fold on all factors, all \(L\) of them are negated, so the word's column is multiplied by \((-1)^L\) and is negated exactly when \(L\) is odd. An odd-length word is then \(+1\) through the first half and \(-1\) through the second, which is not the identity column any more, so the word is no longer part of the defining relation. Even-length words are unchanged and stay.
  • Under a fold on one factor, a word that contains that factor has exactly one of its factors negated and a word that does not contain it has none, so exactly the words containing the folded factor drop out and the rest stay.

Quantum XL applies that rule to the words of the defining relation before it builds anything, and asks whether any word drops out. If none does, the fold would double the run count and change no alias, so the design is not built and the message is Cannot fold this design.

Two consequences of the doubling are worth stating plainly. The fold is applied before replicates and centre points are added, so a folded and replicated design carries both multipliers. And the list of interactions the model can hold is not derived from the shortened relation: once the columns are doubled, Quantum XL rebuilds the alias table from the folded columns themselves and takes the model terms from that, so a term the fold has freed appears because the new columns no longer match, not because a word was struck off a list.

Blocking

Blocking in the design uses block generators, which are words in exactly the sense above and come from the same fixed table, indexed by factor count, run count and block count. They are not design generators and they do not add factors. They choose which runs go in which block.

With \(b\) block generators the block column is built one run at a time. Each generator word is evaluated on the run, giving \(+1\) or \(-1\); each result becomes a bit, \(1\) for a positive product and \(0\) for a result of zero or less; the \(b\) bits are read as a binary number, and the run's block is that number plus one. That gives \(2^b\) blocks.

Quantum XL does also carry the block generators through the defining relation symbolically. It takes each generator word, and each product of two or more of them, which is

\[ 2^b - 1 \]

words, and multiplies each of them through the relation, giving one line per word. That construction never reaches the design sheet. Its only use is internal: the terms those lines name are struck out of the list of interactions the model is allowed to carry, so that a term the blocks have taken is not offered as a model term as well.

The blocking lines the sheet prints are found by scanning the design's columns, exactly as the Identity line is. A term is confounded with a block when its column takes one value throughout each block level, so that its pattern of signs follows the blocks; every term matching a given block pattern is collected onto that pattern's line. The lines are written as the first lines of the alias table, each beginning with the label block and its number, for example block1=CF=EG. There is one line per block column, which is one fewer than the number of blocks. For a design blocked this way that count is also \(2^b - 1\), so the two routes produce the same number of lines by arriving at it separately.

The blocked resolution is

\[ R_b = 1 + \min \{\, n : \text{an } n \text{-factor term is confounded with a block} \,\} \]

reported as Resolution n. Blocks are aliased with terms., where the terms are named as main factors when the smallest confounded term is a main effect and as n-ways otherwise.

Blocking does not change the resolution. The reason is the order the two searches run in. A term found confounded with a block is set aside at that moment, before any term to term pairing is attempted for it, and the record \(R\) is later read from is written only when two terms are matched against each other. A block finding therefore cannot enter the resolution's search at all. Neither can it break a pairing in half: terms on one line share a column exactly, so if one of them holds a single value throughout every block then all of them do, and an alias group leaves the table whole or stays whole. What is left for the resolution search to read is the same set of pairings the design would give with no blocks, so \(R\) is the same number and the blocks report their own number beside it. A design with no aliasing of its own can still report a blocked resolution.

Blocking on replicates is a different mechanism and uses none of this. No block generators are read, no blocking lines are produced and no blocked resolution is reported.

Center points

A center point is a row, except when the design holds categorical factors, and then it is \(2^q\) rows. The quantitative factors are set to coded \(0\). The categorical factors cannot be set to a midpoint, because they have no midpoint, so instead every combination of them is written out, which takes \(2^q\) rows for \(q\) categorical factors. One center point requested in the dialog therefore contributes

\[ 2^q \]

rows to the design, not one.

No center point is added at all when every factor is categorical. The design needs at least one quantitative factor for a center point to mean anything, and when it has none the requested count is set to zero and the design is built without them.

The rows are appended at the end of each group, not distributed through it. The engine finds the last row belonging to each group and inserts that group's center points immediately after it. The group is the block in the ordinary layout, and the replicate in the table layout, so:

  • A blocked design gets \(C\) center points at the end of every block, and the dialog reports them as center points per block.
  • A design in the table layout gets \(C\) at the end of every replicate, reported as center points per replicate.

An inserted center point row takes the block number and replicate number of the row it follows.

The finished row count

Collecting the four multipliers in the order the engine applies them, the base layout is folded, then replicated, then blocked, and the center points are added last:

\[ N = R \cdot F \cdot \phi + G \cdot C \cdot 2^q \]

where \(\phi = 2\) when the design is folded and \(1\) when it is not, and \(G\) is the number of groups the center points are added per, which is \(B\) in the ordinary layout and \(R\) in the table layout.

Two consequences follow from that order. The fold is applied before the replicates, so a folded and replicated design carries both multipliers on the factorial part. And the center points are added after the replication rather than being replicated themselves, so their count grows with the number of groups and not with \(R \cdot F\).

Shared Math Details used here

This design uses shared formulas defined once in Shared Math Details. See those pages for the exact definitions.

Shared concept Used here for Reference
Aliasing and resolution the generators, the defining relation, the alias table, the resolution, the fold and the blocked resolution Aliasing and Resolution
Design coding turning a coded \(\pm 1\) into the value written on the design sheet Design Coding

See Also

References

  1. Montgomery, D. C. (2013). Design and Analysis of Experiments, 8th edition. Wiley.
  2. Box, G. E. P., Hunter, J. S., and Hunter, W. G. (2005). Statistics for Experimenters: Design, Innovation, and Discovery, 2nd edition. Wiley.