Title: | Maximum One-Factor-at-a-Time Designs |
---|---|
Description: | Identifying important factors from a large number of potentially important factors of a highly nonlinear and computationally expensive black box model is a difficult problem. Xiao, Joseph, and Ray (2022) <doi:10.1080/00401706.2022.2141897> proposed Maximum One-Factor-at-a-Time (MOFAT) designs for doing this. A MOFAT design can be viewed as an improvement to the random one-factor-at-a-time (OFAT) design proposed by Morris (1991) <doi:10.1080/00401706.1991.10484804>. The improvement is achieved by exploiting the connection between Morris screening designs and Monte Carlo-based Sobol' designs, and optimizing the design using a space-filling criterion. This work is supported by a U.S. National Science Foundation (NSF) grant CMMI-1921646 <https://www.nsf.gov/awardsearch/showAward?AWD_ID=1921646>. |
Authors: | Qian Xiao [aut], V. Roshan Joseph [aut, cre] |
Maintainer: | V. Roshan Joseph <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.0 |
Built: | 2025-02-15 05:09:42 UTC |
Source: | https://github.com/cran/MOFAT |
This function can be used for computing screening measures.
measure(design, y)
measure(design, y)
design |
design matrix, which should have the Sobol' design structure |
y |
response vector |
The measure
function computes the screening measures such as the total Sobol' indices (Sobol' 1993)
and measure of Campolongo et al. (2007). The design matrix should have the Sobol' design structure.
Please see Xiao et al. (2022) for details.
t |
Total Sobol' index |
mustar |
|
Qian Xiao and V. Roshan Joseph
Sobol’, I. M. (1993), “On sensitivity estimation for nonlinear mathematical models,” Mathematical Modeling and Computational Experiments, 1, 407–414.
Campolongo, F., Cariboni, J., and Saltelli, A. (2007), “An effective screening design for sensitivity analysis of large models,” Environmental modelling and software, 22, 1509–1518.
Xiao, Q., Joseph, V. R., and Ray, D. M. (2022). “Maximum One-Factor-At-A-Time Designs for Screening in Computer Experiments”. Technometrics, to appear.
#Friedman function fun <- function (X) { Y <- 10*sin(pi*X[1]*X[2]) + 20*(X[3] - 0.5)^2 + 10*X[4] + 5*X[5] return(Y) } design = mofat(p=10, l=3) y = apply(design, 1, fun) #Screening measures measure(design, y)
#Friedman function fun <- function (X) { Y <- 10*sin(pi*X[1]*X[2]) + 20*(X[3] - 0.5)^2 + 10*X[4] + 5*X[5] return(Y) } design = mofat(p=10, l=3) y = apply(design, 1, fun) #Screening measures measure(design, y)
This function can be used for generating MOFAT designs.
mofat(p, l, method = "best")
mofat(p, l, method = "best")
p |
number of factors |
l |
number of base runs |
method |
choose among "uniform", "projection", and "best" |
The mofat
function generates the MOFAT design
for a given number of factors () and
number of base runs (
). The total number of runs in the MOFAT design will be
.
A MOFAT design can be viewed as an optimized version of Morris screening design (Morris 1991) by exploiting
its connections with the Monte Carlo-based design of Sobol' (1993).
Please see Xiao et al. (2022) for details.
Three choices for the method
are given: "uniform", "projection", and "best". Option "uniform" gives l
equally-spaced levels
for the entire design, which are also balanced. "projection" option adjusts the levels of the two base matrices A and B such that
there are or
levels in the design depending on
l
is even or odd. Option "best" (default) chooses the best
among the first two options using maximin distance criterion.
design |
MOFAT design |
Qian Xiao and V. Roshan Joseph
Morris, M. D. (1991), “Factorial sampling plans for preliminary computational experiments,” Technometrics, 33, 161–174.
Sobol’, I. M. (1993), “On sensitivity estimation for nonlinear mathematical models,” Mathematical Modeling and Computational Experiments, 1, 407–414.
Xiao, Q., Joseph, V. R., and Ray, D. M. (2022). “Maximum One-Factor-At-A-Time Designs for Screening in Computer Experiments”. Technometrics, to appear.
#MOFAT with three base runs mofat(p=10, l=3, method="uniform") mofat(p=10, l=3, method="projection") #MOFAT with five base runs mofat(p=10,l=5) dim(mofat(p=125,l=5))
#MOFAT with three base runs mofat(p=10, l=3, method="uniform") mofat(p=10, l=3, method="projection") #MOFAT with five base runs mofat(p=10,l=5) dim(mofat(p=125,l=5))