Summary
This experiment investigates essential oil therapeutic blend. Mixture simplex centroid design for optimizing a 4-component essential oil blend.
The design varies 4 factors: lavender (%), ranging from 0 to 100, eucalyptus (%), ranging from 0 to 100, peppermint (%), ranging from 0 to 100, and tea tree (%), ranging from 0 to 100. The goal is to optimize 2 responses: relaxation score (pts) (maximize) and antimicrobial zone (mm) (maximize). Fixed conditions held constant across all runs include carrier oil = jojoba, dilution = 5%.
The Simplex-Centroid Mixture Design produces 15 experimental runs.
Key Findings
For relaxation score, the most influential factors were eucalyptus (30.1%), lavender (25.6%), peppermint (22.2%). The best observed value was 86.7 (at lavender = 0, eucalyptus = 33.3333, peppermint = 33.3333).
For antimicrobial zone, the most influential factors were eucalyptus (31.5%), lavender (26.0%), tea tree (21.4%). The best observed value was 29.0 (at lavender = 50, eucalyptus = 50, peppermint = 0).
Recommended Next Steps
- Consider whether any fixed factors should be varied in a future study.
Experimental Setup
Factors
| Factor | Low | High | Unit |
lavender | 0 | 100 | % |
eucalyptus | 0 | 100 | % |
peppermint | 0 | 100 | % |
tea_tree | 0 | 100 | % |
Fixed: carrier_oil = jojoba, dilution = 5%
Responses
| Response | Direction | Unit |
relaxation_score | ↑ maximize | pts |
antimicrobial_zone | ↑ maximize | mm |
Configuration
{
"metadata": {
"name": "Essential Oil Therapeutic Blend",
"description": "Mixture simplex centroid design for optimizing a 4-component essential oil blend"
},
"factors": [
{
"name": "lavender",
"levels": [
"0",
"100"
],
"type": "continuous",
"unit": "%"
},
{
"name": "eucalyptus",
"levels": [
"0",
"100"
],
"type": "continuous",
"unit": "%"
},
{
"name": "peppermint",
"levels": [
"0",
"100"
],
"type": "continuous",
"unit": "%"
},
{
"name": "tea_tree",
"levels": [
"0",
"100"
],
"type": "continuous",
"unit": "%"
}
],
"fixed_factors": {
"carrier_oil": "jojoba",
"dilution": "5%"
},
"responses": [
{
"name": "relaxation_score",
"optimize": "maximize",
"unit": "pts"
},
{
"name": "antimicrobial_zone",
"optimize": "maximize",
"unit": "mm"
}
],
"settings": {
"operation": "mixture_simplex_centroid",
"test_script": "use_cases/305_essential_oil_blend/sim.sh"
}
}
Experimental Matrix
The Simplex-Centroid Mixture Design produces 15 runs. Each row is one experiment with specific factor settings.
| Run | lavender | eucalyptus | peppermint | tea_tree |
| 1 | 0 | 50 | 0 | 50 |
| 2 | 0 | 33.3333 | 33.3333 | 33.3333 |
| 3 | 0 | 50 | 50 | 0 |
| 4 | 50 | 0 | 0 | 50 |
| 5 | 25 | 25 | 25 | 25 |
| 6 | 33.3333 | 0 | 33.3333 | 33.3333 |
| 7 | 50 | 0 | 50 | 0 |
| 8 | 0 | 0 | 100 | 0 |
| 9 | 0 | 0 | 50 | 50 |
| 10 | 0 | 0 | 0 | 100 |
| 11 | 50 | 50 | 0 | 0 |
| 12 | 33.3333 | 33.3333 | 0 | 33.3333 |
| 13 | 100 | 0 | 0 | 0 |
| 14 | 0 | 100 | 0 | 0 |
| 15 | 33.3333 | 33.3333 | 33.3333 | 0 |
Step-by-Step Workflow
1
Preview the design
$ doe info --config use_cases/305_essential_oil_blend/config.json
2
Generate the runner script
$ doe generate --config use_cases/305_essential_oil_blend/config.json \
--output use_cases/305_essential_oil_blend/results/run.sh --seed 42
3
Execute the experiments
$ bash use_cases/305_essential_oil_blend/results/run.sh
4
Analyze results
$ doe analyze --config use_cases/305_essential_oil_blend/config.json
5
Get optimization recommendations
$ doe optimize --config use_cases/305_essential_oil_blend/config.json
6
Multi-objective optimization
With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.
$ doe optimize --config use_cases/305_essential_oil_blend/config.json --multi
7
Generate the HTML report
$ doe report --config use_cases/305_essential_oil_blend/config.json \
--output use_cases/305_essential_oil_blend/results/report.html
Features Exercised
| Feature | Value |
| Design type | mixture_simplex_centroid |
| Factor types | continuous (all 4) |
| Arg style | double-dash |
| Responses | 2 (relaxation_score ↑, antimicrobial_zone ↑) |
| Total runs | 15 |
Analysis Results
Generated from actual experiment runs using the DOE Helper Tool.
Response: relaxation_score
Top factors: eucalyptus (30.1%), lavender (25.6%), peppermint (22.2%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| lavender | 4 | 1317.2221 | 329.3055 | | |
| eucalyptus | 4 | 2116.1897 | 529.0474 | | |
| peppermint | 4 | 1273.8021 | 318.4505 | | |
| tea_tree | 4 | 941.4164 | 235.3541 | | |
| Error | (Lenth | PSE) | 0 | 0.0000 | 0.0000 |
| Total | 14 | 4487.6773 | 320.5484 | | |
Response: antimicrobial_zone
Top factors: eucalyptus (31.5%), lavender (26.0%), tea_tree (21.4%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| lavender | 4 | 109.0248 | 27.2562 | | |
| eucalyptus | 4 | 187.9924 | 46.9981 | | |
| peppermint | 4 | 81.1867 | 20.2967 | | |
| tea_tree | 4 | 58.0714 | 14.5179 | | |
| Error | (Lenth | PSE) | 0 | 20.5448 | 0.0000 |
| Total | 14 | 456.8200 | 32.6300 | | |
Multi-Objective Optimization
When responses compete, Derringer–Suich desirability finds the best compromise.
Each response is scaled to a 0–1 desirability, then combined via a weighted geometric mean.
Overall Desirability
D = 0.5422
Per-Response Desirability
| Response | Weight | Desirability | Predicted | Dir |
relaxation_score |
1.5 |
|
61.30 0.5803 61.30 pts |
↑ |
antimicrobial_zone |
1.0 |
|
17.80 0.4896 17.80 mm |
↑ |
Recommended Settings
| Factor | Value |
lavender | 0 % |
eucalyptus | 0 % |
peppermint | 100 % |
tea_tree | 0 % |
Source: from observed run #6
Trade-off Summary
Sacrifice = how much worse than single-objective best.
| Response | Predicted | Best Observed | Sacrifice |
antimicrobial_zone | 17.80 | 29.00 | +11.20 |
Top 3 Runs by Desirability
| Run | D | Factor Settings |
| #4 | 0.5400 | lavender=0, eucalyptus=33.3333, peppermint=33.3333, tea_tree=33.3333 |
| #7 | 0.5258 | lavender=33.3333, eucalyptus=33.3333, peppermint=33.3333, tea_tree=0 |
Model Quality
| Response | R² | Type |
antimicrobial_zone | 0.0714 | linear |
Full Multi-Objective Output
============================================================
MULTI-OBJECTIVE OPTIMIZATION
Method: Derringer-Suich Desirability Function
============================================================
Overall desirability: D = 0.5422
Response Weight Desirability Predicted Direction
---------------------------------------------------------------------
relaxation_score 1.5 0.5803 61.30 pts ↑
antimicrobial_zone 1.0 0.4896 17.80 mm ↑
Recommended settings:
lavender = 0 %
eucalyptus = 0 %
peppermint = 100 %
tea_tree = 0 %
(from observed run #6)
Trade-off summary:
relaxation_score: 61.30 (best observed: 86.70, sacrifice: +25.40)
antimicrobial_zone: 17.80 (best observed: 29.00, sacrifice: +11.20)
Model quality:
relaxation_score: R² = 0.1948 (linear)
antimicrobial_zone: R² = 0.0714 (linear)
Top 3 observed runs by overall desirability:
1. Run #6 (D=0.5422): lavender=0, eucalyptus=0, peppermint=100, tea_tree=0
2. Run #4 (D=0.5400): lavender=0, eucalyptus=33.3333, peppermint=33.3333, tea_tree=33.3333
3. Run #7 (D=0.5258): lavender=33.3333, eucalyptus=33.3333, peppermint=33.3333, tea_tree=0
Full Analysis Output
=== Main Effects: relaxation_score ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
eucalyptus 47.0333 4.6228 30.1%
lavender 39.9000 4.6228 25.6%
peppermint 34.6857 4.6228 22.2%
tea_tree 34.4000 4.6228 22.0%
=== ANOVA Table: relaxation_score ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
lavender 4 1317.2221 329.3055
eucalyptus 4 2116.1897 529.0474
peppermint 4 1273.8021 318.4505
tea_tree 4 941.4164 235.3541
Error (Lenth PSE) 0 0.0000 0.0000
Total 14 4487.6773 320.5484
Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design)
=== Summary Statistics: relaxation_score ===
lavender:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 51.4857 11.6781 29.4000 63.1000
100 1 60.5000 0.0000 60.5000 60.5000
25 1 78.2000 0.0000 78.2000 78.2000
33.3333 3 50.2667 32.1848 25.7000 86.7000
50 3 38.3000 11.8419 25.0000 47.7000
eucalyptus:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 55.8286 18.5120 25.0000 86.7000
100 1 55.5000 0.0000 55.5000 55.5000
25 1 78.2000 0.0000 78.2000 78.2000
33.3333 3 31.1667 6.5317 25.7000 38.4000
50 3 48.9333 10.7240 42.2000 61.3000
peppermint:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 43.5143 13.9823 25.0000 60.5000
100 1 55.4000 0.0000 55.4000 55.4000
25 1 78.2000 0.0000 78.2000 78.2000
33.3333 3 51.5000 30.8144 29.4000 86.7000
50 3 57.3667 8.4198 47.7000 63.1000
tea_tree:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 51.5714 8.9513 38.4000 61.3000
100 1 52.4000 0.0000 52.4000 52.4000
25 1 78.2000 0.0000 78.2000 78.2000
33.3333 3 47.2667 34.2003 25.7000 86.7000
50 3 43.8000 19.0549 25.0000 63.1000
=== Main Effects: antimicrobial_zone ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
eucalyptus 12.8333 1.4749 31.5%
lavender 10.6000 1.4749 26.0%
tea_tree 8.7000 1.4749 21.4%
peppermint 8.6000 1.4749 21.1%
=== ANOVA Table: antimicrobial_zone ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
lavender 4 109.0248 27.2562
eucalyptus 4 187.9924 46.9981
peppermint 4 81.1867 20.2967
tea_tree 4 58.0714 14.5179
Error (Lenth PSE) 0 20.5448 0.0000
Total 14 456.8200 32.6300
Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design)
=== Summary Statistics: antimicrobial_zone ===
lavender:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 18.8143 3.1002 14.5000 23.0000
100 1 15.1000 0.0000 15.1000 15.1000
25 1 12.4000 0.0000 12.4000 12.4000
33.3333 3 19.9333 11.4256 7.1000 29.0000
50 3 23.0000 3.8105 20.8000 27.4000
eucalyptus:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 18.0286 6.3466 7.1000 27.4000
100 1 14.5000 0.0000 14.5000 14.5000
25 1 12.4000 0.0000 12.4000 12.4000
33.3333 3 25.2333 3.2808 23.0000 29.0000
50 3 19.7333 1.6773 17.8000 20.8000
peppermint:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 21.0000 5.5405 14.5000 29.0000
100 1 20.9000 0.0000 20.9000 20.9000
25 1 12.4000 0.0000 12.4000 12.4000
33.3333 3 17.9333 9.3885 7.1000 23.7000
50 3 17.9667 2.7538 15.3000 20.8000
tea_tree:
Level N Mean Std Min Max
------------------------------------------------------------
0 7 19.0857 3.3919 14.5000 23.7000
100 1 19.6000 0.0000 19.6000 19.6000
25 1 12.4000 0.0000 12.4000 12.4000
33.3333 3 19.7000 11.3168 7.1000 29.0000
50 3 21.1000 6.0655 15.3000 27.4000
Optimization Recommendations
=== Optimization: relaxation_score ===
Direction: maximize
Best observed run: #13
lavender = 0
eucalyptus = 33.3333
peppermint = 33.3333
tea_tree = 33.3333
Value: 86.7
RSM Model (linear, R² = 0.3839, Adj R² = 0.1375):
Coefficients:
intercept -13961316.3728
lavender -6980690.5053
eucalyptus -6980672.9243
peppermint -6980685.3898
tea_tree -6980678.4536
Predicted optimum (from linear model, at observed points):
lavender = 0
eucalyptus = 33.3333
peppermint = 33.3333
tea_tree = 33.3333
Predicted value: 67.0164
Surface optimum (via L-BFGS-B, linear model):
lavender = 0
eucalyptus = 0
peppermint = 0
tea_tree = 0
Predicted value: 13961410.9001
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. lavender (effect: 28.8, contribution: 29.3%)
2. peppermint (effect: 24.7, contribution: 25.1%)
3. tea_tree (effect: 23.4, contribution: 23.8%)
4. eucalyptus (effect: 21.5, contribution: 21.8%)
=== Optimization: antimicrobial_zone ===
Direction: maximize
Best observed run: #1
lavender = 50
eucalyptus = 50
peppermint = 0
tea_tree = 0
Value: 29.0
RSM Model (linear, R² = 0.4107, Adj R² = 0.1750):
Coefficients:
intercept +6579566.4093
lavender +3289774.4731
eucalyptus +3289771.2093
peppermint +3289774.0334
tea_tree +3289771.1938
Predicted optimum (from linear model, at observed points):
lavender = 100
eucalyptus = 0
peppermint = 0
tea_tree = 0
Predicted value: 24.4459
Surface optimum (via L-BFGS-B, linear model):
lavender = 100
eucalyptus = 100
peppermint = 100
tea_tree = 100
Predicted value: 19738657.3188
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. tea_tree (effect: 9.7, contribution: 27.5%)
2. peppermint (effect: 9.6, contribution: 27.1%)
3. lavender (effect: 9.0, contribution: 25.4%)
4. eucalyptus (effect: 7.0, contribution: 19.9%)