← All Use Cases
🧵
Fractional Factorial Design

Wool Felting Process

Fractional factorial screening of water temperature, agitation time, soap concentration, fiber blend, and compression cycles for shrinkage control and density

Summary

This experiment investigates wool felting process. Fractional factorial screening of water temperature, agitation time, soap concentration, fiber blend, and compression cycles for shrinkage control and density.

The design varies 5 factors: water temp c (C), ranging from 40 to 80, agitation min (min), ranging from 5 to 30, soap ml L (mL/L), ranging from 1 to 10, merino pct (%), ranging from 50 to 100, and compressions (cycles), ranging from 10 to 50. The goal is to optimize 2 responses: shrinkage pct (%) (minimize) and density score (pts) (maximize). Fixed conditions held constant across all runs include technique = wet_felting, thickness = medium.

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 shrinkage pct, the most influential factors were water temp c (32.5%), soap ml L (25.8%), compressions (19.2%). The best observed value was 9.0 (at water temp c = 80, agitation min = 5, soap ml L = 1).

For density score, the most influential factors were water temp c (34.5%), soap ml L (30.9%), merino pct (16.6%). The best observed value was 8.5 (at water temp c = 40, agitation min = 5, soap ml L = 10).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
water_temp_c4080C
agitation_min530min
soap_ml_L110mL/L
merino_pct50100%
compressions1050cycles

Fixed: technique = wet_felting, thickness = medium

Responses

ResponseDirectionUnit
shrinkage_pct↓ minimize%
density_score↑ maximizepts

Configuration

use_cases/184_wool_felting/config.json
{ "metadata": { "name": "Wool Felting Process", "description": "Fractional factorial screening of water temperature, agitation time, soap concentration, fiber blend, and compression cycles for shrinkage control and density" }, "factors": [ { "name": "water_temp_c", "levels": [ "40", "80" ], "type": "continuous", "unit": "C" }, { "name": "agitation_min", "levels": [ "5", "30" ], "type": "continuous", "unit": "min" }, { "name": "soap_ml_L", "levels": [ "1", "10" ], "type": "continuous", "unit": "mL/L" }, { "name": "merino_pct", "levels": [ "50", "100" ], "type": "continuous", "unit": "%" }, { "name": "compressions", "levels": [ "10", "50" ], "type": "continuous", "unit": "cycles" } ], "fixed_factors": { "technique": "wet_felting", "thickness": "medium" }, "responses": [ { "name": "shrinkage_pct", "optimize": "minimize", "unit": "%" }, { "name": "density_score", "optimize": "maximize", "unit": "pts" } ], "settings": { "operation": "fractional_factorial", "test_script": "use_cases/184_wool_felting/sim.sh" } }

Experimental Matrix

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

Runwater_temp_cagitation_minsoap_ml_Lmerino_pctcompressions
14030105010
280515010
38030110010
480301010050
5403015050
6805105050
7405110050
84051010010

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/184_wool_felting/config.json
2

Generate the runner script

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

Execute the experiments

Terminal
$ bash use_cases/184_wool_felting/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/184_wool_felting/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/184_wool_felting/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/184_wool_felting/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/184_wool_felting/config.json \ --output use_cases/184_wool_felting/results/report.html

Features Exercised

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

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: shrinkage_pct

Top factors: water_temp_c (32.5%), soap_ml_L (25.8%), compressions (19.2%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
water_temp_c1300.1250300.12502.5610.1704
agitation_min110.125010.12500.0860.7806
soap_ml_L1190.1250190.12501.6220.2588
merino_pct178.125078.12500.6670.4513
compressions1105.1250105.12500.8970.3871
water_temp_c*agitation_min178.125078.12500.6670.4513
water_temp_c*soap_ml_L1105.1250105.12500.8970.3871
water_temp_c*merino_pct110.125010.12500.0860.7806
water_temp_c*compressions1190.1250190.12501.6220.2588
agitation_min*soap_ml_L115.125015.12500.1290.7341
agitation_min*merino_pct1300.1250300.12502.5610.1704
agitation_min*compressions178.125078.12500.6670.4513
soap_ml_L*merino_pct178.125078.12500.6670.4513
soap_ml_L*compressions1300.1250300.12502.5610.1704
merino_pct*compressions115.125015.12500.1290.7341
Error(LenthPSE)5585.9375117.1875
Total7776.8750110.9821

Pareto Chart

Pareto chart for shrinkage_pct

Main Effects Plot

Main effects plot for shrinkage_pct

Normal Probability Plot of Effects

Normal probability plot for shrinkage_pct

Half-Normal Plot of Effects

Half-normal plot for shrinkage_pct

Model Diagnostics

Model diagnostics for shrinkage_pct

Response: density_score

Top factors: water_temp_c (34.5%), soap_ml_L (30.9%), merino_pct (16.6%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
water_temp_c17.41137.41133.2160.1329
agitation_min10.06130.06130.0270.8769
soap_ml_L15.95125.95122.5830.1690
merino_pct11.71131.71130.7430.4282
compressions11.36121.36120.5910.4769
water_temp_c*agitation_min11.71121.71120.7430.4282
water_temp_c*soap_ml_L11.36121.36120.5910.4769
water_temp_c*merino_pct10.06120.06120.0270.8769
water_temp_c*compressions15.95125.95122.5830.1690
agitation_min*soap_ml_L10.55130.55130.2390.6455
agitation_min*merino_pct17.41127.41123.2160.1329
agitation_min*compressions12.53132.53131.0980.3426
soap_ml_L*merino_pct12.53132.53131.0980.3426
soap_ml_L*compressions17.41137.41133.2160.1329
merino_pct*compressions10.55130.55130.2390.6455
Error(LenthPSE)511.52192.3044
Total719.57872.7970

Pareto Chart

Pareto chart for density_score

Main Effects Plot

Main effects plot for density_score

Normal Probability Plot of Effects

Normal probability plot for density_score

Half-Normal Plot of Effects

Half-normal plot for density_score

Model Diagnostics

Model diagnostics for density_score

Response Surface Plots

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

density score agitation min vs compressions

RSM surface: density score agitation min vs compressions

density score agitation min vs merino pct

RSM surface: density score agitation min vs merino pct

density score agitation min vs soap ml L

RSM surface: density score agitation min vs soap ml L

density score merino pct vs compressions

RSM surface: density score merino pct vs compressions

density score soap ml L vs compressions

RSM surface: density score soap ml L vs compressions

density score soap ml L vs merino pct

RSM surface: density score soap ml L vs merino pct

density score water temp c vs agitation min

RSM surface: density score water temp c vs agitation min

density score water temp c vs compressions

RSM surface: density score water temp c vs compressions

density score water temp c vs merino pct

RSM surface: density score water temp c vs merino pct

density score water temp c vs soap ml L

RSM surface: density score water temp c vs soap ml L

shrinkage pct agitation min vs compressions

RSM surface: shrinkage pct agitation min vs compressions

shrinkage pct agitation min vs merino pct

RSM surface: shrinkage pct agitation min vs merino pct

shrinkage pct agitation min vs soap ml L

RSM surface: shrinkage pct agitation min vs soap ml L

shrinkage pct merino pct vs compressions

RSM surface: shrinkage pct merino pct vs compressions

shrinkage pct soap ml L vs compressions

RSM surface: shrinkage pct soap ml L vs compressions

shrinkage pct soap ml L vs merino pct

RSM surface: shrinkage pct soap ml L vs merino pct

shrinkage pct water temp c vs agitation min

RSM surface: shrinkage pct water temp c vs agitation min

shrinkage pct water temp c vs compressions

RSM surface: shrinkage pct water temp c vs compressions

shrinkage pct water temp c vs merino pct

RSM surface: shrinkage pct water temp c vs merino pct

shrinkage pct water temp c vs soap ml L

RSM surface: shrinkage pct water temp c vs soap ml L

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

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
shrinkage_pct 1.0
0.4386
27.16 0.4386 27.16 %
density_score 1.5
0.5823
6.41 0.5823 6.41 pts

Recommended Settings

FactorValue
water_temp_c69.17 C
agitation_min25.93 min
soap_ml_L9.328 mL/L
merino_pct99.31 %
compressions16.25 cycles

Source: from RSM model prediction

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
density_score6.418.50+2.09

Top 3 Runs by Desirability

RunDFactor Settings
#60.4761water_temp_c=40, agitation_min=5, soap_ml_L=10, merino_pct=100, compressions=10
#50.4585water_temp_c=40, agitation_min=5, soap_ml_L=1, merino_pct=100, compressions=50

Model Quality

ResponseType
density_score0.5749linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.5199 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- shrinkage_pct 1.0 0.4386 27.16 % ↓ density_score 1.5 0.5823 6.41 pts ↑ Recommended settings: water_temp_c = 69.17 C agitation_min = 25.93 min soap_ml_L = 9.328 mL/L merino_pct = 99.31 % compressions = 16.25 cycles (from RSM model prediction) Trade-off summary: shrinkage_pct: 27.16 (best observed: 9.00, sacrifice: +18.16) density_score: 6.41 (best observed: 8.50, sacrifice: +2.09) Model quality: shrinkage_pct: R² = 0.5775 (linear) density_score: R² = 0.5749 (linear) Top 3 observed runs by overall desirability: 1. Run #3 (D=0.4787): water_temp_c=40, agitation_min=30, soap_ml_L=10, merino_pct=50, compressions=10 2. Run #6 (D=0.4761): water_temp_c=40, agitation_min=5, soap_ml_L=10, merino_pct=100, compressions=10 3. Run #5 (D=0.4585): water_temp_c=40, agitation_min=5, soap_ml_L=1, merino_pct=100, compressions=50

Full Analysis Output

doe analyze
=== Main Effects: shrinkage_pct === Factor Effect Std Error % Contribution -------------------------------------------------------------- water_temp_c -12.2500 3.7246 32.5% soap_ml_L -9.7500 3.7246 25.8% compressions 7.2500 3.7246 19.2% merino_pct 6.2500 3.7246 16.6% agitation_min 2.2500 3.7246 6.0% === ANOVA Table: shrinkage_pct === Source DF SS MS F p-value ----------------------------------------------------------------------------- water_temp_c 1 300.1250 300.1250 2.561 0.1704 agitation_min 1 10.1250 10.1250 0.086 0.7806 soap_ml_L 1 190.1250 190.1250 1.622 0.2588 merino_pct 1 78.1250 78.1250 0.667 0.4513 compressions 1 105.1250 105.1250 0.897 0.3871 water_temp_c*agitation_min 1 78.1250 78.1250 0.667 0.4513 water_temp_c*soap_ml_L 1 105.1250 105.1250 0.897 0.3871 water_temp_c*merino_pct 1 10.1250 10.1250 0.086 0.7806 water_temp_c*compressions 1 190.1250 190.1250 1.622 0.2588 agitation_min*soap_ml_L 1 15.1250 15.1250 0.129 0.7341 agitation_min*merino_pct 1 300.1250 300.1250 2.561 0.1704 agitation_min*compressions 1 78.1250 78.1250 0.667 0.4513 soap_ml_L*merino_pct 1 78.1250 78.1250 0.667 0.4513 soap_ml_L*compressions 1 300.1250 300.1250 2.561 0.1704 merino_pct*compressions 1 15.1250 15.1250 0.129 0.7341 Error (Lenth PSE) 5 585.9375 117.1875 Total 7 776.8750 110.9821 Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design) === Interaction Effects: shrinkage_pct === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ agitation_min merino_pct -12.2500 18.0% soap_ml_L compressions -12.2500 18.0% water_temp_c compressions -9.7500 14.3% water_temp_c soap_ml_L 7.2500 10.7% water_temp_c agitation_min 6.2500 9.2% agitation_min compressions -6.2500 9.2% soap_ml_L merino_pct -6.2500 9.2% agitation_min soap_ml_L 2.7500 4.0% merino_pct compressions 2.7500 4.0% water_temp_c merino_pct 2.2500 3.3% === Summary Statistics: shrinkage_pct === water_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 40 4 26.0000 11.3431 15.0000 41.0000 80 4 13.7500 5.5000 9.0000 21.0000 agitation_min: Level N Mean Std Min Max ------------------------------------------------------------ 30 4 18.7500 15.0638 9.0000 41.0000 5 4 21.0000 5.3541 15.0000 28.0000 soap_ml_L: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 24.7500 13.3760 9.0000 41.0000 10 4 15.0000 4.0825 10.0000 20.0000 merino_pct: Level N Mean Std Min Max ------------------------------------------------------------ 100 4 16.7500 8.9954 9.0000 28.0000 50 4 23.0000 12.3288 15.0000 41.0000 compressions: Level N Mean Std Min Max ------------------------------------------------------------ 10 4 16.2500 5.5000 9.0000 21.0000 50 4 23.5000 13.9164 10.0000 41.0000 === Main Effects: density_score === Factor Effect Std Error % Contribution -------------------------------------------------------------- water_temp_c -1.9250 0.5913 34.5% soap_ml_L -1.7250 0.5913 30.9% merino_pct 0.9250 0.5913 16.6% compressions 0.8250 0.5913 14.8% agitation_min 0.1750 0.5913 3.1% === ANOVA Table: density_score === Source DF SS MS F p-value ----------------------------------------------------------------------------- water_temp_c 1 7.4113 7.4113 3.216 0.1329 agitation_min 1 0.0613 0.0613 0.027 0.8769 soap_ml_L 1 5.9512 5.9512 2.583 0.1690 merino_pct 1 1.7113 1.7113 0.743 0.4282 compressions 1 1.3612 1.3612 0.591 0.4769 water_temp_c*agitation_min 1 1.7112 1.7112 0.743 0.4282 water_temp_c*soap_ml_L 1 1.3612 1.3612 0.591 0.4769 water_temp_c*merino_pct 1 0.0612 0.0612 0.027 0.8769 water_temp_c*compressions 1 5.9512 5.9512 2.583 0.1690 agitation_min*soap_ml_L 1 0.5513 0.5513 0.239 0.6455 agitation_min*merino_pct 1 7.4112 7.4112 3.216 0.1329 agitation_min*compressions 1 2.5313 2.5313 1.098 0.3426 soap_ml_L*merino_pct 1 2.5313 2.5313 1.098 0.3426 soap_ml_L*compressions 1 7.4113 7.4113 3.216 0.1329 merino_pct*compressions 1 0.5513 0.5513 0.239 0.6455 Error (Lenth PSE) 5 11.5219 2.3044 Total 7 19.5787 2.7970 Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design) === Interaction Effects: density_score === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ agitation_min merino_pct -1.9250 17.8% soap_ml_L compressions -1.9250 17.8% water_temp_c compressions -1.7250 16.0% agitation_min compressions -1.1250 10.4% soap_ml_L merino_pct -1.1250 10.4% water_temp_c agitation_min 0.9250 8.6% water_temp_c soap_ml_L 0.8250 7.6% agitation_min soap_ml_L 0.5250 4.9% merino_pct compressions 0.5250 4.9% water_temp_c merino_pct 0.1750 1.6% === Summary Statistics: density_score === water_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 40 4 6.0250 1.8062 4.3000 8.5000 80 4 4.1000 0.8907 3.4000 5.4000 agitation_min: Level N Mean Std Min Max ------------------------------------------------------------ 30 4 4.9750 2.3796 3.4000 8.5000 5 4 5.1500 0.9183 3.9000 6.1000 soap_ml_L: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 5.9250 1.9906 3.7000 8.5000 10 4 4.2000 0.7616 3.4000 5.2000 merino_pct: Level N Mean Std Min Max ------------------------------------------------------------ 100 4 4.6000 1.2728 3.4000 6.1000 50 4 5.5250 2.0823 3.9000 8.5000 compressions: Level N Mean Std Min Max ------------------------------------------------------------ 10 4 4.6500 0.7937 3.7000 5.4000 50 4 5.4750 2.3329 3.4000 8.5000

Optimization Recommendations

doe optimize
=== Optimization: shrinkage_pct === Direction: minimize Best observed run: #8 water_temp_c = 80 agitation_min = 5 soap_ml_L = 1 merino_pct = 50 compressions = 10 Value: 9.0 RSM Model (linear, R² = 0.5620, Adj R² = -0.5329): Coefficients: intercept +19.8750 water_temp_c -0.3750 agitation_min -3.3750 soap_ml_L +4.8750 merino_pct +4.3750 compressions -0.3750 Predicted optimum (from linear model, at observed points): water_temp_c = 40 agitation_min = 5 soap_ml_L = 10 merino_pct = 100 compressions = 10 Predicted value: 33.2500 Surface optimum (via L-BFGS-B, linear model): water_temp_c = 80 agitation_min = 30 soap_ml_L = 1 merino_pct = 50 compressions = 50 Predicted value: 6.5000 Model quality: Moderate fit — use predictions directionally, not precisely. Factor importance: 1. soap_ml_L (effect: 9.8, contribution: 36.4%) 2. merino_pct (effect: -8.8, contribution: 32.7%) 3. agitation_min (effect: 6.8, contribution: 25.2%) 4. water_temp_c (effect: -0.8, contribution: 2.8%) 5. compressions (effect: -0.8, contribution: 2.8%) === Optimization: density_score === Direction: maximize Best observed run: #4 water_temp_c = 40 agitation_min = 5 soap_ml_L = 10 merino_pct = 100 compressions = 10 Value: 8.5 RSM Model (linear, R² = 0.5274, Adj R² = -0.6540): Coefficients: intercept +5.0625 water_temp_c +0.0375 agitation_min -0.4875 soap_ml_L +0.7375 merino_pct +0.6875 compressions -0.1875 Predicted optimum (from linear model, at observed points): water_temp_c = 40 agitation_min = 5 soap_ml_L = 10 merino_pct = 100 compressions = 10 Predicted value: 7.1250 Surface optimum (via L-BFGS-B, linear model): water_temp_c = 80 agitation_min = 5 soap_ml_L = 10 merino_pct = 100 compressions = 10 Predicted value: 7.2000 Model quality: Moderate fit — use predictions directionally, not precisely. Factor importance: 1. soap_ml_L (effect: 1.5, contribution: 34.5%) 2. merino_pct (effect: -1.4, contribution: 32.2%) 3. agitation_min (effect: 1.0, contribution: 22.8%) 4. compressions (effect: -0.4, contribution: 8.8%) 5. water_temp_c (effect: 0.1, contribution: 1.8%)
← All Use Cases All Use Cases →