← All Use Cases
💄
Fractional Factorial Design

Natural Deodorant Efficacy

Fractional factorial screening of baking soda, arrowroot powder, coconut oil, essential oil blend, and beeswax for odor control and skin sensitivity

Summary

This experiment investigates natural deodorant efficacy. Fractional factorial screening of baking soda, arrowroot powder, coconut oil, essential oil blend, and beeswax for odor control and skin sensitivity.

The design varies 5 factors: baking soda pct (%), ranging from 5 to 25, arrowroot pct (%), ranging from 10 to 30, coconut oil pct (%), ranging from 20 to 50, eo drops (drops/oz), ranging from 5 to 20, and beeswax pct (%), ranging from 2 to 10. The goal is to optimize 2 responses: odor control hrs (hrs) (maximize) and sensitivity score (pts) (minimize). Fixed conditions held constant across all runs include container = twist_up, batch size = 4oz.

A fractional factorial design reduces the number of runs from 32 to 8 by deliberately confounding higher-order interactions. This is ideal for screening — identifying which of the 5 factors matter most before investing in a full study.

Key Findings

For odor control hrs, the most influential factors were arrowroot pct (33.3%), eo drops (24.2%), baking soda pct (21.2%). The best observed value was 13.0 (at baking soda pct = 5, arrowroot pct = 30, coconut oil pct = 50).

For sensitivity score, the most influential factors were eo drops (27.4%), arrowroot pct (27.4%), coconut oil pct (20.2%). The best observed value was 0.8 (at baking soda pct = 25, arrowroot pct = 30, coconut oil pct = 50).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
baking_soda_pct525%
arrowroot_pct1030%
coconut_oil_pct2050%
eo_drops520drops/oz
beeswax_pct210%

Fixed: container = twist_up, batch_size = 4oz

Responses

ResponseDirectionUnit
odor_control_hrs↑ maximizehrs
sensitivity_score↓ minimizepts

Configuration

use_cases/226_deodorant_efficacy/config.json
{ "metadata": { "name": "Natural Deodorant Efficacy", "description": "Fractional factorial screening of baking soda, arrowroot powder, coconut oil, essential oil blend, and beeswax for odor control and skin sensitivity" }, "factors": [ { "name": "baking_soda_pct", "levels": [ "5", "25" ], "type": "continuous", "unit": "%" }, { "name": "arrowroot_pct", "levels": [ "10", "30" ], "type": "continuous", "unit": "%" }, { "name": "coconut_oil_pct", "levels": [ "20", "50" ], "type": "continuous", "unit": "%" }, { "name": "eo_drops", "levels": [ "5", "20" ], "type": "continuous", "unit": "drops/oz" }, { "name": "beeswax_pct", "levels": [ "2", "10" ], "type": "continuous", "unit": "%" } ], "fixed_factors": { "container": "twist_up", "batch_size": "4oz" }, "responses": [ { "name": "odor_control_hrs", "optimize": "maximize", "unit": "hrs" }, { "name": "sensitivity_score", "optimize": "minimize", "unit": "pts" } ], "settings": { "operation": "fractional_factorial", "test_script": "use_cases/226_deodorant_efficacy/sim.sh" } }

Experimental Matrix

The Fractional Factorial Design produces 8 runs. Each row is one experiment with specific factor settings.

Runbaking_soda_pctarrowroot_pctcoconut_oil_pcteo_dropsbeeswax_pct
15305052
225102052
3253020202
42530502010
553020510
6251050510
7510202010
851050202

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/226_deodorant_efficacy/config.json
2

Generate the runner script

Terminal
$ doe generate --config use_cases/226_deodorant_efficacy/config.json \ --output use_cases/226_deodorant_efficacy/results/run.sh --seed 42
3

Execute the experiments

Terminal
$ bash use_cases/226_deodorant_efficacy/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/226_deodorant_efficacy/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/226_deodorant_efficacy/config.json
6

Multi-objective optimization

With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.

Terminal
$ doe optimize --config use_cases/226_deodorant_efficacy/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/226_deodorant_efficacy/config.json \ --output use_cases/226_deodorant_efficacy/results/report.html

Features Exercised

FeatureValue
Design typefractional_factorial
Factor typescontinuous (all 5)
Arg styledouble-dash
Responses2 (odor_control_hrs ↑, sensitivity_score ↓)
Total runs8

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: odor_control_hrs

Top factors: arrowroot_pct (33.3%), eo_drops (24.2%), baking_soda_pct (21.2%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
baking_soda_pct124.500024.50003.6300.1151
arrowroot_pct160.500060.50008.9630.0303
coconut_oil_pct14.50004.50000.6670.4513
eo_drops132.000032.00004.7410.0814
beeswax_pct18.00008.00001.1850.3260
baking_soda_pct*arrowroot_pct132.000032.00004.7410.0814
baking_soda_pct*coconut_oil_pct18.00008.00001.1850.3260
baking_soda_pct*eo_drops160.500060.50008.9630.0303
baking_soda_pct*beeswax_pct14.50004.50000.6670.4513
arrowroot_pct*coconut_oil_pct10.00000.00000.0001.0000
arrowroot_pct*eo_drops124.500024.50003.6300.1151
arrowroot_pct*beeswax_pct10.50000.50000.0740.7964
coconut_oil_pct*eo_drops10.50000.50000.0740.7964
coconut_oil_pct*beeswax_pct124.500024.50003.6300.1151
eo_drops*beeswax_pct10.00000.00000.0001.0000
Error(LenthPSE)533.75006.7500
Total7130.000018.5714

Pareto Chart

Pareto chart for odor_control_hrs

Main Effects Plot

Main effects plot for odor_control_hrs

Normal Probability Plot of Effects

Normal probability plot for odor_control_hrs

Half-Normal Plot of Effects

Half-normal plot for odor_control_hrs

Model Diagnostics

Model diagnostics for odor_control_hrs

Response: sensitivity_score

Top factors: eo_drops (27.4%), arrowroot_pct (27.4%), coconut_oil_pct (20.2%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
baking_soda_pct10.50000.50000.0650.8088
arrowroot_pct110.580010.58001.3780.2934
coconut_oil_pct15.78005.78000.7530.4253
eo_drops110.580010.58001.3780.2934
beeswax_pct15.12005.12000.6670.4513
baking_soda_pct*arrowroot_pct110.580010.58001.3780.2934
baking_soda_pct*coconut_oil_pct15.12005.12000.6670.4513
baking_soda_pct*eo_drops110.580010.58001.3780.2934
baking_soda_pct*beeswax_pct15.78005.78000.7530.4253
arrowroot_pct*coconut_oil_pct10.02000.02000.0030.9613
arrowroot_pct*eo_drops10.50000.50000.0650.8088
arrowroot_pct*beeswax_pct13.38003.38000.4400.5364
coconut_oil_pct*eo_drops13.38003.38000.4400.5364
coconut_oil_pct*beeswax_pct10.50000.50000.0650.8088
eo_drops*beeswax_pct10.02000.02000.0030.9613
Error(LenthPSE)538.40007.6800
Total735.96005.1371

Pareto Chart

Pareto chart for sensitivity_score

Main Effects Plot

Main effects plot for sensitivity_score

Normal Probability Plot of Effects

Normal probability plot for sensitivity_score

Half-Normal Plot of Effects

Half-normal plot for sensitivity_score

Model Diagnostics

Model diagnostics for sensitivity_score

Response Surface Plots

3D surfaces fitted with quadratic RSM. Red dots are observed data points.

odor control hrs arrowroot pct vs beeswax pct

RSM surface: odor control hrs arrowroot pct vs beeswax pct

odor control hrs arrowroot pct vs coconut oil pct

RSM surface: odor control hrs arrowroot pct vs coconut oil pct

odor control hrs arrowroot pct vs eo drops

RSM surface: odor control hrs arrowroot pct vs eo drops

odor control hrs baking soda pct vs arrowroot pct

RSM surface: odor control hrs baking soda pct vs arrowroot pct

odor control hrs baking soda pct vs beeswax pct

RSM surface: odor control hrs baking soda pct vs beeswax pct

odor control hrs baking soda pct vs coconut oil pct

RSM surface: odor control hrs baking soda pct vs coconut oil pct

odor control hrs baking soda pct vs eo drops

RSM surface: odor control hrs baking soda pct vs eo drops

odor control hrs coconut oil pct vs beeswax pct

RSM surface: odor control hrs coconut oil pct vs beeswax pct

odor control hrs coconut oil pct vs eo drops

RSM surface: odor control hrs coconut oil pct vs eo drops

odor control hrs eo drops vs beeswax pct

RSM surface: odor control hrs eo drops vs beeswax pct

sensitivity score arrowroot pct vs beeswax pct

RSM surface: sensitivity score arrowroot pct vs beeswax pct

sensitivity score arrowroot pct vs coconut oil pct

RSM surface: sensitivity score arrowroot pct vs coconut oil pct

sensitivity score arrowroot pct vs eo drops

RSM surface: sensitivity score arrowroot pct vs eo drops

sensitivity score baking soda pct vs arrowroot pct

RSM surface: sensitivity score baking soda pct vs arrowroot pct

sensitivity score baking soda pct vs beeswax pct

RSM surface: sensitivity score baking soda pct vs beeswax pct

sensitivity score baking soda pct vs coconut oil pct

RSM surface: sensitivity score baking soda pct vs coconut oil pct

sensitivity score baking soda pct vs eo drops

RSM surface: sensitivity score baking soda pct vs eo drops

sensitivity score coconut oil pct vs beeswax pct

RSM surface: sensitivity score coconut oil pct vs beeswax pct

sensitivity score coconut oil pct vs eo drops

RSM surface: sensitivity score coconut oil pct vs eo drops

sensitivity score eo drops vs beeswax pct

RSM surface: sensitivity score eo drops vs beeswax pct

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.5654

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
odor_control_hrs 1.0
0.4807
7.27 0.4807 7.27 hrs
sensitivity_score 1.5
0.6300
2.94 0.6300 2.94 pts

Recommended Settings

FactorValue
baking_soda_pct9.796 %
arrowroot_pct21.54 %
coconut_oil_pct48.14 %
eo_drops18.9 drops/oz
beeswax_pct2.077 %

Source: from RSM model prediction

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
sensitivity_score2.940.80+2.14

Top 3 Runs by Desirability

RunDFactor Settings
#10.4151baking_soda_pct=5, arrowroot_pct=30, coconut_oil_pct=50, eo_drops=5, beeswax_pct=2
#30.4045baking_soda_pct=5, arrowroot_pct=10, coconut_oil_pct=50, eo_drops=20, beeswax_pct=2

Model Quality

ResponseType
sensitivity_score0.8120linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.5654 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- odor_control_hrs 1.0 0.4807 7.27 hrs ↑ sensitivity_score 1.5 0.6300 2.94 pts ↓ Recommended settings: baking_soda_pct = 9.796 % arrowroot_pct = 21.54 % coconut_oil_pct = 48.14 % eo_drops = 18.9 drops/oz beeswax_pct = 2.077 % (from RSM model prediction) Trade-off summary: odor_control_hrs: 7.27 (best observed: 13.00, sacrifice: +5.73) sensitivity_score: 2.94 (best observed: 0.80, sacrifice: +2.14) Model quality: odor_control_hrs: R² = 0.9808 (linear) sensitivity_score: R² = 0.8120 (linear) Top 3 observed runs by overall desirability: 1. Run #5 (D=0.4275): baking_soda_pct=25, arrowroot_pct=30, coconut_oil_pct=50, eo_drops=20, beeswax_pct=10 2. Run #1 (D=0.4151): baking_soda_pct=5, arrowroot_pct=30, coconut_oil_pct=50, eo_drops=5, beeswax_pct=2 3. Run #3 (D=0.4045): baking_soda_pct=5, arrowroot_pct=10, coconut_oil_pct=50, eo_drops=20, beeswax_pct=2

Full Analysis Output

doe analyze
=== Main Effects: odor_control_hrs === Factor Effect Std Error % Contribution -------------------------------------------------------------- arrowroot_pct 5.5000 1.5236 33.3% eo_drops -4.0000 1.5236 24.2% baking_soda_pct -3.5000 1.5236 21.2% beeswax_pct -2.0000 1.5236 12.1% coconut_oil_pct -1.5000 1.5236 9.1% === ANOVA Table: odor_control_hrs === Source DF SS MS F p-value ----------------------------------------------------------------------------- baking_soda_pct 1 24.5000 24.5000 3.630 0.1151 arrowroot_pct 1 60.5000 60.5000 8.963 0.0303 coconut_oil_pct 1 4.5000 4.5000 0.667 0.4513 eo_drops 1 32.0000 32.0000 4.741 0.0814 beeswax_pct 1 8.0000 8.0000 1.185 0.3260 baking_soda_pct*arrowroot_pct 1 32.0000 32.0000 4.741 0.0814 baking_soda_pct*coconut_oil_pct 1 8.0000 8.0000 1.185 0.3260 baking_soda_pct*eo_drops 1 60.5000 60.5000 8.963 0.0303 baking_soda_pct*beeswax_pct 1 4.5000 4.5000 0.667 0.4513 arrowroot_pct*coconut_oil_pct 1 0.0000 0.0000 0.000 1.0000 arrowroot_pct*eo_drops 1 24.5000 24.5000 3.630 0.1151 arrowroot_pct*beeswax_pct 1 0.5000 0.5000 0.074 0.7964 coconut_oil_pct*eo_drops 1 0.5000 0.5000 0.074 0.7964 coconut_oil_pct*beeswax_pct 1 24.5000 24.5000 3.630 0.1151 eo_drops*beeswax_pct 1 0.0000 0.0000 0.000 1.0000 Error (Lenth PSE) 5 33.7500 6.7500 Total 7 130.0000 18.5714 Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design) === Interaction Effects: odor_control_hrs === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ baking_soda_pct eo_drops 5.5000 26.2% baking_soda_pct arrowroot_pct -4.0000 19.0% arrowroot_pct eo_drops -3.5000 16.7% coconut_oil_pct beeswax_pct -3.5000 16.7% baking_soda_pct coconut_oil_pct -2.0000 9.5% baking_soda_pct beeswax_pct -1.5000 7.1% arrowroot_pct beeswax_pct -0.5000 2.4% coconut_oil_pct eo_drops -0.5000 2.4% arrowroot_pct coconut_oil_pct 0.0000 0.0% eo_drops beeswax_pct 0.0000 0.0% === Summary Statistics: odor_control_hrs === baking_soda_pct: Level N Mean Std Min Max ------------------------------------------------------------ 25 4 7.7500 5.5000 3.0000 13.0000 5 4 4.2500 2.2174 2.0000 7.0000 arrowroot_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 4 3.2500 1.2583 2.0000 5.0000 30 4 8.7500 4.6458 3.0000 13.0000 coconut_oil_pct: Level N Mean Std Min Max ------------------------------------------------------------ 20 4 6.7500 3.8622 3.0000 12.0000 50 4 5.2500 5.1881 2.0000 13.0000 eo_drops: Level N Mean Std Min Max ------------------------------------------------------------ 20 4 8.0000 5.3541 2.0000 13.0000 5 4 4.0000 2.0000 3.0000 7.0000 beeswax_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 4 7.0000 4.3205 3.0000 13.0000 2 4 5.0000 4.6904 2.0000 12.0000 === Main Effects: sensitivity_score === Factor Effect Std Error % Contribution -------------------------------------------------------------- eo_drops -2.3000 0.8013 27.4% arrowroot_pct 2.3000 0.8013 27.4% coconut_oil_pct -1.7000 0.8013 20.2% beeswax_pct -1.6000 0.8013 19.0% baking_soda_pct -0.5000 0.8013 6.0% === ANOVA Table: sensitivity_score === Source DF SS MS F p-value ----------------------------------------------------------------------------- baking_soda_pct 1 0.5000 0.5000 0.065 0.8088 arrowroot_pct 1 10.5800 10.5800 1.378 0.2934 coconut_oil_pct 1 5.7800 5.7800 0.753 0.4253 eo_drops 1 10.5800 10.5800 1.378 0.2934 beeswax_pct 1 5.1200 5.1200 0.667 0.4513 baking_soda_pct*arrowroot_pct 1 10.5800 10.5800 1.378 0.2934 baking_soda_pct*coconut_oil_pct 1 5.1200 5.1200 0.667 0.4513 baking_soda_pct*eo_drops 1 10.5800 10.5800 1.378 0.2934 baking_soda_pct*beeswax_pct 1 5.7800 5.7800 0.753 0.4253 arrowroot_pct*coconut_oil_pct 1 0.0200 0.0200 0.003 0.9613 arrowroot_pct*eo_drops 1 0.5000 0.5000 0.065 0.8088 arrowroot_pct*beeswax_pct 1 3.3800 3.3800 0.440 0.5364 coconut_oil_pct*eo_drops 1 3.3800 3.3800 0.440 0.5364 coconut_oil_pct*beeswax_pct 1 0.5000 0.5000 0.065 0.8088 eo_drops*beeswax_pct 1 0.0200 0.0200 0.003 0.9613 Error (Lenth PSE) 5 38.4000 7.6800 Total 7 35.9600 5.1371 Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design) === Interaction Effects: sensitivity_score === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ baking_soda_pct arrowroot_pct -2.3000 19.7% baking_soda_pct eo_drops 2.3000 19.7% baking_soda_pct beeswax_pct -1.7000 14.5% baking_soda_pct coconut_oil_pct -1.6000 13.7% arrowroot_pct beeswax_pct -1.3000 11.1% coconut_oil_pct eo_drops -1.3000 11.1% arrowroot_pct eo_drops -0.5000 4.3% coconut_oil_pct beeswax_pct -0.5000 4.3% arrowroot_pct coconut_oil_pct 0.1000 0.9% eo_drops beeswax_pct 0.1000 0.9% === Summary Statistics: sensitivity_score === baking_soda_pct: Level N Mean Std Min Max ------------------------------------------------------------ 25 4 3.8500 2.7767 0.8000 6.8000 5 4 3.3500 2.0273 1.1000 5.6000 arrowroot_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 4 2.4500 1.4799 0.8000 4.4000 30 4 4.7500 2.5040 1.1000 6.8000 coconut_oil_pct: Level N Mean Std Min Max ------------------------------------------------------------ 20 4 4.4500 1.5330 2.3000 5.6000 50 4 2.7500 2.7767 0.8000 6.8000 eo_drops: Level N Mean Std Min Max ------------------------------------------------------------ 20 4 4.7500 1.9053 2.3000 6.8000 5 4 2.4500 2.1977 0.8000 5.6000 beeswax_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 4 4.4000 2.5923 0.8000 6.8000 2 4 2.8000 1.8868 1.1000 5.5000

Optimization Recommendations

doe optimize
=== Optimization: odor_control_hrs === Direction: maximize Best observed run: #4 baking_soda_pct = 5 arrowroot_pct = 30 coconut_oil_pct = 50 eo_drops = 5 beeswax_pct = 2 Value: 13.0 RSM Model (linear, R² = 0.9962, Adj R² = 0.9865): Coefficients: intercept +6.0000 baking_soda_pct -1.7500 arrowroot_pct -0.7500 coconut_oil_pct +2.7500 eo_drops -1.0000 beeswax_pct -2.0000 Predicted optimum (from linear model, at observed points): baking_soda_pct = 5 arrowroot_pct = 30 coconut_oil_pct = 50 eo_drops = 5 beeswax_pct = 2 Predicted value: 12.7500 Surface optimum (via L-BFGS-B, linear model): baking_soda_pct = 5 arrowroot_pct = 10 coconut_oil_pct = 50 eo_drops = 5 beeswax_pct = 2 Predicted value: 14.2500 Model quality: Excellent fit — surface predictions are reliable. Factor importance: 1. coconut_oil_pct (effect: 5.5, contribution: 33.3%) 2. beeswax_pct (effect: 4.0, contribution: 24.2%) 3. baking_soda_pct (effect: 3.5, contribution: 21.2%) 4. eo_drops (effect: 2.0, contribution: 12.1%) 5. arrowroot_pct (effect: -1.5, contribution: 9.1%) === Optimization: sensitivity_score === Direction: minimize Best observed run: #5 baking_soda_pct = 25 arrowroot_pct = 30 coconut_oil_pct = 50 eo_drops = 20 beeswax_pct = 10 Value: 0.8 RSM Model (linear, R² = 0.9059, Adj R² = 0.6705): Coefficients: intercept +3.6000 baking_soda_pct -0.3250 arrowroot_pct -0.8500 coconut_oil_pct +1.0750 eo_drops -0.8750 beeswax_pct -1.1500 Predicted optimum (from linear model, at observed points): baking_soda_pct = 5 arrowroot_pct = 30 coconut_oil_pct = 50 eo_drops = 5 beeswax_pct = 2 Predicted value: 6.1750 Surface optimum (via L-BFGS-B, linear model): baking_soda_pct = 25 arrowroot_pct = 30 coconut_oil_pct = 20 eo_drops = 20 beeswax_pct = 10 Predicted value: -0.6750 Model quality: Excellent fit — surface predictions are reliable. Factor importance: 1. beeswax_pct (effect: 2.3, contribution: 26.9%) 2. coconut_oil_pct (effect: 2.1, contribution: 25.1%) 3. eo_drops (effect: 1.7, contribution: 20.5%) 4. arrowroot_pct (effect: -1.7, contribution: 19.9%) 5. baking_soda_pct (effect: 0.6, contribution: 7.6%)
← All Use Cases All Use Cases →