--- title: "Introduction to MixFrac: Mixed-Level and Regular Fractional Factorial Designs" author: "Sukanta Dash" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{MixFrac Introduction} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 6, fig.height = 4 ) ``` **Overview** MixFrac provides tools for constructing mixed-level and regular fractional factorial designs, computing alias structures, and generating deterministic trend-free run orders. The package is based on four key methodological sources: Guo, Simpson & Pignatiello (2007) – mixed-level design efficiency (J2 + H^) Pantoja-Pacheco et al. (2021) – NONBPA fractionation when levels differ Ríos-Lira et al. (2021) – alias structures via model matrix correlations Coster (1993) – trend-free run orders This vignette demonstrates the main workflow. Installation To install the development version: # install.packages("devtools") # Install from local source (if you downloaded or created the package) devtools::install("MixFrac") **1. Mixed-Level Fractional Factorial Designs** Consider a 2 × 3 × 4 design requiring 12 runs. Writing library(MixFrac) res <- generate_ff( c(2,3,4), # number of levels per factor n_runs = 12, # required number of runs tf = FALSE, parts = c(1,2), verbose = TRUE ) The output provides: The fractional design Balance summary (per factor) J2 and H^ metrics GBM (general balance metrics) Alias chains Strong confounding summary **2. Automatic Regular Fraction Detection (s^(k-p) Designs)** When all factors have the same number of levels s, the package attempts to find a regular fraction s^(k-p). Example: three 2-level factors and 4 runs → candidate 2^(3-1): Writing res_reg <- generate_ff( c(2,2,2), n_runs = 4, tf = FALSE, parts = c(1,2), verbose = TRUE ) If a valid generator structure exists, MixFrac builds the canonical regular design. **3. Alias Structures** Alias structures are computed using correlation among model matrix columns (main effects + interactions). Writing extract alias chains res$alias_chains Example of printed output: [A] = A [B] = B + 0.956 A:B [C] = C + 0.984 A:C [B:C] = B:C + 0.998 A:B:C You may also extract the strong confounding pairs: Writing res$alias_summary **4. Trend-Free Run Orders (Coster 1993)** When tf = TRUE, the function computes a deterministic run order that is orthogonal to polynomial time trends (degree 1 by default). Writing res_tf <- generate_ff( c(2,3,4), 12, tf = TRUE, parts = 3, verbose = TRUE ) The result contains: res_tf$trend_free_result$order res_tf$trend_free_result$design_reordered res_tf$trend_free_result$objective **5. Silent Execution (Programmatic Use)** To use MixFrac programmatically without printing: Writing silent <- generate_ff( c(2,3,4), 12, tf = TRUE, parts = c(), # <- print nothing verbose = FALSE # silent mode ) The object silent contains all results: Writing names(silent) **Conclusion** MixFrac provides a unified workflow for: Mixed-level fractional factorial construction Automatic generation of regular designs when applicable Confounding and alias analysis Run orders that remove trend contamination Its flexible interface allows both exploratory use and integration into automated DoE pipelines. **References** Guo, Y., Simpson, J. R., & Pignatiello, J. J. (2007). Construction of Efficient Mixed-Level Fractional Factorial Designs. Journal of Quality Technology, 39(3), 241–257. https://doi.org/10.1080/00224065.2007.11917691 Pantoja-Pacheco, Y. V. et al. (2021). One Note for Fractionation and Increase for Mixed-Level Designs When the Levels Are Not Multiple. Mathematics, 9(13), 1455. https://doi.org/10.3390/math9131455 Ríos-Lira, A. J. et al. (2021). Alias Structures and Sequential Experimentation for Mixed-Level Designs. Mathematics, 9(23), 3053. https://doi.org/10.3390/math9233053 Coster, D. C. (1993). Trend-Free Run Orders of Mixed-Level Fractional Factorial Designs. Annals of Statistics, 21(4), 2072–2086. https://doi.org/10.1214/aos/1176349410