Plackett Burman
plackett_burman
Plackett-Burman classical screening Design of Experiments (DoE) matrices.
This module provides the PlackettBurmanDesign class, which constructs highly efficient fractional
screening designs. Plackett-Burman designs are optimized to identify main effects using the minimum
number of runs when interaction effects can be assumed to be negligible.
| CLASS | DESCRIPTION |
|---|---|
PlackettBurmanDesign |
Generates Plackett-Burman screening design matrices to identify main effects in few runs. |
PlackettBurmanDesign
Bases: DesignMatrix
Generates Plackett-Burman screening design matrices to identify main effects in few runs.
Plackett-Burman designs are classical Resolution III fractionals where the number of runs \(N\) is a multiple of 4 (typically \(N = 12, 16, 20, 24, 28, 36, 40, \dots\)). They allow screening of up to \(k = N - 1\) factors in \(N\) trials.
Mathematical Context and Confounding
Unlike standard \(2^{k-p}\) fractional factorials where main effects are completely aliased with specific two-way interactions, Plackett-Burman designs exhibit a complex confounding structure where each main effect is partially confounded (aliased) with multiple two-way interactions. For example, in an \(N=12\) design, every main effect is aliased with 45 distinct two-way interactions with fractional coefficient weights of \(\pm 1/3\). This properties makes Plackett-Burman designs highly robust screening tools if the Sparsity of Effects principle holds, as interaction effects are diluted and do not fully bias any single main effect estimate.
Coded Generative Algorithm
Plackett-Burman designs are built by taking a specialized "first generator row" of signs (\(+\) and \(-\)),
cyclically shifting it to form the first \(N - 1\) columns, and then appending a final row of all minuses (\(-1\)).
Standard generator sequences for different run sizes (\(N\)) include:
- \(N = 8\): + + + - + - -
- \(N = 12\): + + - + + + - - - + -
- \(N = 16\): + + + + - + - + + - - + - - -
- \(N = 20\): + + - - + + - - + + - - + + - - + + -
Pseudocode for the Algorithm
function generate_plackett_burman(factors, N):
1. Select first generator row of length N - 1 based on run size N.
(e.g., for N=12: [1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1]).
2. Construct (N - 1) x (N - 1) matrix by cyclically shifting the generator row.
3. Append a final row of N - 1 elements, all equal to -1.
Now we have an N x (N - 1) design matrix in coded [-1, +1] format.
4. Truncate the columns to match the actual number of factors requested.
5. Map the coded values back to the actual factor levels.
6. Return DataFrame.
Examples:
Example
| PARAMETER | DESCRIPTION |
|---|---|
factors
|
Mapping of factor labels to their designated levels.
TYPE:
|
| METHOD | DESCRIPTION |
|---|---|
generate |
Generates the Plackett-Burman design matrix. |
Source code in src\xpyrment\design\doe\base.py
generate
Generates the Plackett-Burman design matrix.
Builds the cyclic shifts based on standard generator sequences, truncates to match the factors dictionary, and scales back to the actual levels.
| RETURNS | DESCRIPTION |
|---|---|
DataFrame
|
pd.DataFrame: A pandas DataFrame containing the design matrix. |