Matlab function for the calculation of G-efficiency and D-efficiency coefficients of D-optimal DoE ?

3 views (last 30 days)
I have designed a fractional factorial DoE but I was not able to make the full test plan (1 experiment over the 16 is missing). But, due to the regulation constraints, I have 11 additional experimental conditions, that I would like to valorise for getting the best of this DoE. I would like to determine the D-optimal coeffcient in order to see if I can get a sufficiently good quality for my DoE. Is there a Matlab function that calculate this coefficient ? What about the G-efficiency coefficient ? Thanks by advance and best regards.

Answers (2)

Tom Lane
Tom Lane on 7 Nov 2012
The D-optimal design maximizes the determinant of X'*X where X is the design matrix. If you have the Statistics Toolbox you could do things like this:
>> x = x2fx(fracfact('a b c d abcd'),'linear');
>> log(det(x'*x))
ans =
16.6355
>> log(det(x(2:end,:)'*x(2:end,:)))
ans =
16.1655
>> 2*sum(log(svd(x)))
ans =
16.6355
Notice the last one operates directly on x and would be okay even if det(x'*x) overflowed. You could append your other 11 rows to x to compute the value for your design. I don't think that would be an issue in your problem, though.
I'm less familiar with G-optimal designs, but my impression is that you'll want to compute things like
diag(x*((x'*x)\x'))

Philippe
Philippe on 20 Nov 2012
Sorry for the late answer,
I think I need some additional scientific background in statistics and mathematics to understand your answer. Thanks.
  3 Comments
Philippe
Philippe on 9 Dec 2020
Actually, to solve my problem, I had to trick.
Basically, I started from the root of DoE analysis: fitting the data with a multi linear regression (MLR) model to determine its coefficients. The "good design" or "complete design" allows covering smartly the experimental domain but also to be able to segregate significant coefficients from non-significant coefficients. In my case, the test plan was "smartly designed". The only problem was that I had an outlier. I was therefore not able to determine the values of all the coefficients in my MLR model. In addition, the usual significance analysis based on diagonal variance/covariance matrix was no more applicable.
In my case, I had a 2^4 factorial design with 16 coefficients (11 direct effects and 2nd level interactions + 5 higher level interactions). So. what I did is: instead of fitting the full MLR, I fitted it on 15 coefficients. To calculate the uncertainties on the coefficients, as my variance/covariance matrix was no more diagonal, I went back to the root of how to determine the significance of a coefficient: I made a succession of ANOVA. Step by step, by removing and reintegrating coefficients, I was able to reconstruct the MLR model with its only significant coefficients. I was then finally able to identify the significant effects and interactions on my responses.
For more explanations and details, I invite you to read my related publication: https://www.sciencedirect.com/science/article/abs/pii/S0360319918335778
By double-checking with the 2^(4-1) fractional subtest plans, I was able to check that my final MRL model was valid in the whole domain. I am however not able to estimate its quality in the vincinity of the missing point and this was one of the purpose of my initial question.
I hope it will help you solving your problem.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!