You can use the approach from the link you gave, or you can use some method for algorithmic design. One approach using the R package planor
(on CRAN) is given in Fractional Factorial design for 3 factorial, here I will exemplify use of the R package AlgDesign
(on CRAN). AlgDesign
also have some functions for evaluating given designs, you can use them with a design made "by hand", to compare with the algorithmically generated designs. You say you have one product factor with three (or more) levels, the other variables are numerical variables with two levels each. I will ask for a half fraction:
library(AlgDesign)
Cand <- gen.factorial( levels=c(3, rep(2, 6)),
factors=1)
ex2Des <- optFederov( ~ (X1 + X2 + X3 + X4 + X5 + X6 + X7)^2,
data=Cand,
nTrials = 3*2^5 , # A half fraction
approximate=TRUE,
criterion="D",
evaluateI=TRUE,
maxIteration=1000)
eval.design(~ (X1 + X2 + X3 + X4 + X5 + X6 + X7)^2,
ex2Des$design,
confounding=TRUE)
$confounding
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
(Intercept) -1.0000 0.4340 0.4359 0.0390 0.0225 -0.0898 -0.1459 0.0208
X12 0.9853 -1.0000 -0.4193 -0.0349 -0.0183 0.0886 0.1392 -0.0070
.
.
.
X6:X7 0.0367 0.0431 -0.0307 -1.0000
$determinant
[1] 0.5076138
$A
[1] 3.380504
$diagonality
[1] 0.821
$gmean.variances
[1] 2.534994
The above gives an unblocked design. With so many observations it could be an advantage to use a blocked design, code given below:
ex2BlockDes <- optBlock( ~ (X1 + X2 + X3 + X4 + X5 + X6 + X7)^2,
withinData=Cand,
blocksizes=rep(12, 8),
nRepeats=100,
criterion="D")
eval.blockdesign( ~ (X1+X2+X3+X4+X5+X6+X7)^2,
ex2BlockDes$design,
blocksizes=rep(12, 8),
confounding=TRUE)
(output not given here). AlgDesign
is a very flexible package, and before using it you will want to read its vignette:
vignette("AlgDesign")
Note that you should try other criteria than "D", especially for the blocked design.