New to JMP? Let the Data Analysis Director guide you through selecting an analysis task, an analysis goal, and a data type. Available now in the JMP Marketplace!
DOE viscosité : mélange ou facteurs continus ? Gestion des contraintes et additifs catégoriels
Mar 3, 2026 10:56 AM(256 views)
Nous nous demandons si notre manière de poser le problème de DOE dans un custom design est appropriée.
Notre objectif est d’étudier l’influence sur la viscosité de trois familles d’additifs épaississants ainsi que leurs interactions.
Les additifs sont regroupés selon leur effet déclaré lorsqu’ils sont utilisés seuls : bas, moyen et haut gradient de cisaillement. Les interactions entre additifs agissant au même gradient ne nous intéressent pas, car nous n’en utiliserions qu’un seul à la fois.
Concernant les taux, nous avons initialement envisagé de traiter le plan comme un plan de mélange, mais nous avons finalement opté pour des facteurs continus. En effet, nous avons estimé que le reste de la formule influence également la viscosité et que la valeur de l’intercept n’est donc pas nulle.
Dans notre première version, comprenant les facteurs suivants, nous avons obtenu un plan de 90 expériences. Toutefois, nous avons constaté que combiner plusieurs additifs à leur taux maximal (0,4) conduirait à des formules trop épaisses pour être mesurées. Au moins 11 points avec les trois niveaux à 0,4 seraient ainsi non mesurables. De plus, il y aurait 11 points correspondant à des catégories différentes mais avec un taux à 0, soit 11 répétitions du produit sans additif.
Nous avons donc envisagé d’ajouter des contraintes.
En termes de faisabilité, nous sommes désormais plus confiants quant à la possibilité de mesurer chaque point. Le produit sans additif est également mieux représenté.
Nous nous posons néanmoins plusieurs questions :
Avons-nous eu raison d’imposer un minimum de 0,1 pour le taux ?
Si oui, y a-t-il un intérêt à ajouter manuellement les 11 points avec un taux à 0, en réalisant 11 mesures supplémentaires du produit sans additif en plus du plan actuel ?
Existe-t-il une meilleure manière de représenter ce problème dans sa globalité ?
Si nous souhaitons introduire un nouvel épaississant dans l’une des catégories, comment procéder ? Nous n’avons pas trouvé de moyen de transformer un facteur catégoriel à trois niveaux en un facteur à quatre niveaux.
if relevant i'm on JMP 19.0.0 and this is the script for the final table:
I'm not sure about the reason you gave to not use a Mixture design ? Mixture designs are used when the factors are components of a mixture and the total quantity should sum up to a specific value. The mixture design tells you about the effects of different ratios of the components. There is no assumption for mixture or factorial designs that the rest of the formulation should have an influence or not. If the rest of the formulation may influence the response, why not including these components as well ? Unless the rest of the formulation is some kind of solvent(s), so it's normal that viscosity may increase or decrease based on the concentration/dilution, and you would be more interested by the quantities of components rather than their ratios ?
In mixture designs, there is no intercept, as it is part of the main effects due to the linear constraint (all factors should sum up to a specific value). It is a different modeling scenario than having an intercept equal to zero.
I can't discuss the constraints, ranges, settings rationales of the design, as there is too little info and I'm not a domain expert of your topic to discuss if it sounds reasonable or not. I think there might be a mistake in your screenshot for the second constraint, as the inequality sign should be reversed for the lower sum limit (or opposite factors signs), but the JSL looks ok.
Why did you choose a minimum rate of 0,1 ? I would have let 0 to have all situations in the same design (absence and presence of components), without the need to add extra runs "manually" (and it ensured experiments are randomized and make the analysis easier). If you expect non-linear effects of the factors, just add quadratic effects in your model terms for the continuous quantities factors, so you'll end up with three levels for the factors, which avoids the trivial absence/presence design levels settings.
Adding levels in a categorical factor (or adding factors in an augmented design) requires a simple trick: add a new row in your table, with missing values everywhere except for the categorical factor you're interested to expand. Write the new level for this factor, and it should be considered when augmenting the design. See Add new levels to a design.
Hope this answer will help you,
Victor GUILLER
"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)
I'm not sure about the reason you gave to not use a Mixture design ? Mixture designs are used when the factors are components of a mixture and the total quantity should sum up to a specific value. The mixture design tells you about the effects of different ratios of the components. There is no assumption for mixture or factorial designs that the rest of the formulation should have an influence or not. If the rest of the formulation may influence the response, why not including these components as well ? Unless the rest of the formulation is some kind of solvent(s), so it's normal that viscosity may increase or decrease based on the concentration/dilution, and you would be more interested by the quantities of components rather than their ratios ?
In mixture designs, there is no intercept, as it is part of the main effects due to the linear constraint (all factors should sum up to a specific value). It is a different modeling scenario than having an intercept equal to zero.
I can't discuss the constraints, ranges, settings rationales of the design, as there is too little info and I'm not a domain expert of your topic to discuss if it sounds reasonable or not. I think there might be a mistake in your screenshot for the second constraint, as the inequality sign should be reversed for the lower sum limit (or opposite factors signs), but the JSL looks ok.
Why did you choose a minimum rate of 0,1 ? I would have let 0 to have all situations in the same design (absence and presence of components), without the need to add extra runs "manually" (and it ensured experiments are randomized and make the analysis easier). If you expect non-linear effects of the factors, just add quadratic effects in your model terms for the continuous quantities factors, so you'll end up with three levels for the factors, which avoids the trivial absence/presence design levels settings.
Adding levels in a categorical factor (or adding factors in an augmented design) requires a simple trick: add a new row in your table, with missing values everywhere except for the categorical factor you're interested to expand. Write the new level for this factor, and it should be considered when augmenting the design. See Add new levels to a design.
Hope this answer will help you,
Victor GUILLER
"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)
Recommended Articles
'
var data = div.getElementsByClassName("video-js");
var script = document.createElement('script');
script.src = "https://players.brightcove.net/" + data_account + "/" + data_palyer + "_default/index.min.js";
for(var i=0;i< data.length;i++){
videodata.push(data[i]);
}
}
}
for(var i=0;i< videodata.length;i++){
document.getElementsByClassName('lia-vid-container')[i].innerHTML = videodata[i].outerHTML;
document.body.appendChild(script);
}
}
catch(e){
}
/* Re compile html */
$compile(rootElement.querySelectorAll('div.lia-message-body-content')[0])($scope);
}
if (code_l.toLowerCase() != newBody.getAttribute("slang").toLowerCase()) {
/* Adding Translation flag */
var tr_obj = $filter('filter')($scope.sourceLangList, function (obj_l) {
return obj_l.code.toLowerCase() === newBody.getAttribute("slang").toLowerCase()
});
if (tr_obj.length > 0) {
tr_text = "This post originally written in lilicon-trans-text has been computer translated for you. When you reply, it will also be translated back to lilicon-trans-text.".replace(/lilicon-trans-text/g, tr_obj[0].title);
try {
if ($scope.wootMessages[$rootScope.profLang] != undefined) {
tr_text = $scope.wootMessages[$rootScope.profLang].replace(/lilicon-trans-text/g, tr_obj[0].title);
}
} catch (e) {
}
} else {
//tr_text = "This message was translated for your convenience!";
tr_text = "This message was translated for your convenience!";
}
try {
if (!document.getElementById("tr-msz-" + value)) {
var tr_para = document.createElement("P");
tr_para.setAttribute("id", "tr-msz-" + value);
tr_para.setAttribute("class", "tr-msz");
tr_para.style.textAlign = 'justify';
var tr_fTag = document.createElement("IMG");
tr_fTag.setAttribute("class", "tFlag");
tr_fTag.setAttribute("src", "/html/assets/lingoTrFlag.PNG");
tr_fTag.style.marginRight = "5px";
tr_fTag.style.height = "14px";
tr_para.appendChild(tr_fTag);
var tr_textNode = document.createTextNode(tr_text);
tr_para.appendChild(tr_textNode);
/* Woot message only for multi source */
if(rootElement.querySelector(".lia-quilt-forum-message")){
rootElement.querySelector(".lia-quilt-forum-message").appendChild(tr_para);
} else if(rootElement.querySelector(".lia-message-view-blog-topic-message")) {
rootElement.querySelector(".lia-message-view-blog-topic-message").appendChild(tr_para);
} else if(rootElement.querySelector(".lia-quilt-blog-reply-message")){
rootElement.querySelector(".lia-quilt-blog-reply-message").appendChild(tr_para);
} else if(rootElement.querySelector(".lia-quilt-tkb-message")){
rootElement.querySelector(".lia-quilt-tkb-message").appendChild(tr_para);
} else if(rootElement.querySelector(".lia-quilt-tkb-reply-message")){
rootElement.querySelector(".lia-quilt-tkb-reply-message").insertBefore(tr_para,rootElement.querySelector(".lia-quilt-row.lia-quilt-row-footer"));
} else if(rootElement.querySelector(".lia-quilt-idea-message")){
rootElement.querySelector(".lia-quilt-idea-message").appendChild(tr_para);
} else if(rootElement.querySelector(".lia-quilt-idea-reply-message")){
rootElement.querySelector(".lia-quilt-idea-reply-message").insertBefore(tr_para,rootElement.querySelector(".lia-quilt-row.lia-quilt-row-footer"));
}else if(rootElement.querySelector(".lia-quilt-column-alley-left")){
rootElement.querySelector(".lia-quilt-column-alley-left").appendChild(tr_para);
}
else {
if (rootElement.querySelectorAll('div.lia-quilt-row-footer').length > 0) {
rootElement.querySelectorAll('div.lia-quilt-row-footer')[0].appendChild(tr_para);
} else {
rootElement.querySelectorAll('div.lia-quilt-column-message-footer')[0].appendChild(tr_para);
}
}
}
} catch (e) {
}
}
} else {
/* Do not display button for same language */
// syncList.remove(value);
var index = $scope.syncList.indexOf(value);
if (index > -1) {
$scope.syncList.splice(index, 1);
}
}
}
}
}
}
angular.forEach(mszList_l, function (value) {
if (document.querySelectorAll('div.lia-js-data-messageUid-' + value).length > 0) {
var rootElements = document.querySelectorAll('div.lia-js-data-messageUid-' + value);
}else if(document.querySelectorAll('.lia-occasion-message-view .lia-component-occasion-message-view').length >0){
var rootElements = document.querySelectorAll('.lia-occasion-message-view .lia-component-occasion-message-view')[0].querySelectorAll('.lia-occasion-description')[0];
}else {
var rootElements = document.querySelectorAll('div.message-uid-' + value);
}
angular.forEach(rootElements, function (rootElement) {
if (value == '933633' && "ForumTopicPage" == "TkbArticlePage") {
rootElement = document.querySelector('.lia-thread-topic');
}
/* V1.1 Remove from UI */
if (document.getElementById("tr-msz-" + value)) {
document.getElementById("tr-msz-" + value).remove();
}
if (document.getElementById("tr-sync-" + value)) {
document.getElementById("tr-sync-" + value).remove();
}
/* XPath expression for subject and Body */
var lingoRBExp = "//lingo-body[@id = " + "'lingo-body-" + value + "'" + "]";
lingoRSExp = "//lingo-sub[@id = " + "'lingo-sub-" + value + "'" + "]";
/* Get translated subject of the message */
lingoRSXML = doc.evaluate(lingoRSExp, doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < lingoRSXML.snapshotLength; i++) {
/* Replace Reply/Comment subject with transalted subject */
var newSub = lingoRSXML.snapshotItem(i);
/*** START : extracting subject from source if selected language and source language is same **/
var sub_L = "";
if(newSub.getAttribute("slang").toLowerCase() == code_l.toLowerCase()) {
if(value == '933633') {
if($scope.sourceContent[value]){
if($scope.sourceContent[value].subject != ''){
sub_L = decodeURIComponent($scope.sourceContent[value].subject);
}
}else{
sub_L = newSub.innerHTML;
}
}
else{
sub_L = decodeURIComponent($scope.sourceContent[value].subject);
}
} else {
sub_L = newSub.innerHTML;
}
/*** End : extracting subject from source if selected language and source language is same **/
/* This code is placed to remove the extra meta tag adding in the UI*/
try{
sub_L = sub_L.replace('<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />','');
}
catch(e){
}
// if($scope.viewTrContentOnly || (newSub.getAttribute("slang").toLowerCase() != code_l.toLowerCase())) {
if ($scope.viewTrContentOnly) {
if ("ForumTopicPage" == "IdeaPage") {
if (value == '933633') {
if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){
document.querySelector('.MessageSubject .lia-message-subject').innerHTML = sub_L;
}
}
}
if ("ForumTopicPage" == "TkbArticlePage") {
if (value == '933633') {
if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){
var subTkbElement = document.querySelector('.lia-thread-subject');
if(subTkbElement){
document.querySelector('.lia-thread-subject').innerHTML = sub_L;
}
}
}
}
else if ("ForumTopicPage" == "BlogArticlePage") {
if (value == '933633') {
try {
if((sub_L != "") && (sub_L!= undefined) && (sub_L != "undefined")){
var subElement = rootElement.querySelector('.lia-blog-article-page-article-subject');
if(subElement) {
subElement.innerText = sub_L;
}
}
} catch (e) {
}
/* var subElement = rootElement.querySelectorAll('.lia-blog-article-page-article-subject');
for (var subI = 0; subI < subElement.length; subI++) {
if((sub_L != "") && (sub_L!= undefined) && (sub_L != "undefined")){
subElement[subI].innerHTML = sub_L;
}
} */
}
else {
try {
// rootElement.querySelectorAll('.lia-blog-article-page-article-subject').innerHTML= sub_L;
/** var subElement = rootElement.querySelectorAll('.lia-blog-article-page-article-subject');
for (var j = 0; j < subElement.length; j++) {
if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){
subElement[j].innerHTML = sub_L;
}
} **/
} catch (e) {
}
}
}
else {
if (value == '933633') {
try{
/* Start: This code is written by iTalent as part of iTrack LILICON - 98 */
if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){
if(document.querySelectorAll('.lia-quilt-forum-topic-page').length > 0){
if(rootElement.querySelector('div.lia-message-subject').querySelector('h5')){
rootElement.querySelector('div.lia-message-subject').querySelector('h5').innerText = decodeURIComponent(sub_L);
} else {
rootElement.querySelector('.MessageSubject .lia-message-subject').innerText = sub_L;
}
} else {
rootElement.querySelector('.MessageSubject .lia-message-subject').innerText = sub_L;
}
}
/* End: This code is written by iTalent as part of iTrack LILICON - 98 */
}
catch(e){
console.log("subject not available for second time. error details: " + e);
}
} else {
try {
/* Start: This code is written by iTalent as part of LILICON - 98 reported by Ian */
if ("ForumTopicPage" == "IdeaPage") {
if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){
document.querySelector('.lia-js-data-messageUid-'+ value).querySelector('.MessageSubject .lia-message-subject').innerText = sub_L;
}
}
else{
if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){
rootElement.querySelector('.MessageSubject .lia-message-subject').innerText = sub_L;
/* End: This code is written as part of LILICON - 98 reported by Ian */
}
}
} catch (e) {
console.log("Reply subject not available. error details: " + e);
}
}
}
// Label translation
var labelEle = document.querySelector("#labelsForMessage");
if (!labelEle) {
labelEle = document.querySelector(".LabelsList");
}
if (labelEle) {
var listContains = labelEle.querySelector('.label');
if (listContains) {
/* Commenting this code as bussiness want to point search with source language label */
// var tagHLink = labelEle.querySelectorAll(".label")[0].querySelector(".label-link").href.split("label-name")[0];
var lingoLabelExp = "//lingo-label/text()";
trLabels = [];
trLabelsHtml = "";
/* Get translated labels of the message */
lingoLXML = doc.evaluate(lingoLabelExp, doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
/* try{
for(var j=0;j,';
}
trLabelsHtml = trLabelsHtml+'