← All Use Cases
🌍
Full Factorial Design

Home Insulation Optimization

Full factorial of attic R-value, wall R-value, window U-factor, and air sealing effort to minimize heating cost and maximize comfort

Summary

This experiment investigates home insulation optimization. Full factorial of attic R-value, wall R-value, window U-factor, and air sealing effort to minimize heating cost and maximize comfort.

The design varies 4 factors: attic r (R-value), ranging from 19 to 49, wall r (R-value), ranging from 11 to 21, window u (U-factor), ranging from 0.25 to 0.65, and air seal ach (ACH50), ranging from 2 to 8. The goal is to optimize 2 responses: annual heat cost (USD) (minimize) and comfort score (pts) (maximize). Fixed conditions held constant across all runs include climate zone = 5A, house sqft = 2000.

A full factorial design was used to explore all 16 possible combinations of the 4 factors at two levels. This guarantees that every main effect and interaction can be estimated independently, at the cost of a larger experiment (16 runs).

Quadratic response surface models were fitted to capture potential curvature and factor interactions. The RSM contour plots below visualize how pairs of factors jointly affect each response.

Key Findings

For annual heat cost, the most influential factors were window u (37.7%), wall r (28.3%), air seal ach (22.7%). The best observed value was 687.0 (at attic r = 49, wall r = 11, window u = 0.65).

For comfort score, the most influential factors were window u (40.4%), wall r (32.8%), attic r (18.8%). The best observed value was 10.1 (at attic r = 49, wall r = 11, window u = 0.65).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
attic_r1949R-value
wall_r1121R-value
window_u0.250.65U-factor
air_seal_ach28ACH50

Fixed: climate_zone = 5A, house_sqft = 2000

Responses

ResponseDirectionUnit
annual_heat_cost↓ minimizeUSD
comfort_score↑ maximizepts

Configuration

use_cases/129_home_insulation/config.json
{ "metadata": { "name": "Home Insulation Optimization", "description": "Full factorial of attic R-value, wall R-value, window U-factor, and air sealing effort to minimize heating cost and maximize comfort" }, "factors": [ { "name": "attic_r", "levels": [ "19", "49" ], "type": "continuous", "unit": "R-value" }, { "name": "wall_r", "levels": [ "11", "21" ], "type": "continuous", "unit": "R-value" }, { "name": "window_u", "levels": [ "0.25", "0.65" ], "type": "continuous", "unit": "U-factor" }, { "name": "air_seal_ach", "levels": [ "2", "8" ], "type": "continuous", "unit": "ACH50" } ], "fixed_factors": { "climate_zone": "5A", "house_sqft": "2000" }, "responses": [ { "name": "annual_heat_cost", "optimize": "minimize", "unit": "USD" }, { "name": "comfort_score", "optimize": "maximize", "unit": "pts" } ], "settings": { "operation": "full_factorial", "test_script": "use_cases/129_home_insulation/sim.sh" } }

Experimental Matrix

The Full Factorial Design produces 16 runs. Each row is one experiment with specific factor settings.

Runattic_rwall_rwindow_uair_seal_ach
119210.658
249110.258
319210.258
419210.652
549210.652
649110.652
749210.252
849110.252
919110.258
1019110.652
1149210.258
1249210.658
1319210.252
1449110.658
1519110.252
1619110.658

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/129_home_insulation/config.json
2

Generate the runner script

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

Execute the experiments

Terminal
$ bash use_cases/129_home_insulation/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/129_home_insulation/config.json
5

Get optimization recommendations

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

Generate the HTML report

Terminal
$ doe report --config use_cases/129_home_insulation/config.json \ --output use_cases/129_home_insulation/results/report.html

Features Exercised

FeatureValue
Design typefull_factorial
Factor typescontinuous (all 4)
Arg styledouble-dash
Responses2 (annual_heat_cost ↓, comfort_score ↑)
Total runs16

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: annual_heat_cost

Top factors: window_u (37.7%), wall_r (28.3%), air_seal_ach (22.7%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
attic_r127307.562527307.56250.1380.7257
wall_r1170362.5625170362.56250.8600.3963
window_u1303876.5625303876.56251.5340.2705
air_seal_ach1110058.0625110058.06250.5560.4896
attic_r*wall_r11072.56251072.56250.0050.9442
attic_r*window_u116320.062516320.06250.0820.7856
attic_r*air_seal_ach1189.0625189.06250.0010.9766
wall_r*window_u115562.562515562.56250.0790.7905
wall_r*air_seal_ach146764.062546764.06250.2360.6476
window_u*air_seal_ach112712.562512712.56250.0640.8101
Error5990563.3125198112.6625
Total151694788.9375112985.9292

Pareto Chart

Pareto chart for annual_heat_cost

Main Effects Plot

Main effects plot for annual_heat_cost

Normal Probability Plot of Effects

Normal probability plot for annual_heat_cost

Half-Normal Plot of Effects

Half-normal plot for annual_heat_cost

Model Diagnostics

Model diagnostics for annual_heat_cost

Response: comfort_score

Top factors: window_u (40.4%), wall_r (32.8%), attic_r (18.8%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
attic_r12.17562.17560.3980.5556
wall_r16.63066.63061.2140.3207
window_u110.080610.08061.8460.2323
air_seal_ach10.39060.39060.0720.7998
attic_r*wall_r10.07560.07560.0140.9109
attic_r*window_u10.22560.22560.0410.8469
attic_r*air_seal_ach10.18060.18060.0330.8628
wall_r*window_u10.22560.22560.0410.8469
wall_r*air_seal_ach12.17562.17560.3980.5556
window_u*air_seal_ach10.45560.45560.0830.7843
Error527.30315.4606
Total1549.91943.3280

Pareto Chart

Pareto chart for comfort_score

Main Effects Plot

Main effects plot for comfort_score

Normal Probability Plot of Effects

Normal probability plot for comfort_score

Half-Normal Plot of Effects

Half-normal plot for comfort_score

Model Diagnostics

Model diagnostics for comfort_score

Response Surface Plots

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

annual heat cost attic r vs air seal ach

RSM surface: annual heat cost attic r vs air seal ach

annual heat cost attic r vs wall r

RSM surface: annual heat cost attic r vs wall r

annual heat cost attic r vs window u

RSM surface: annual heat cost attic r vs window u

annual heat cost wall r vs air seal ach

RSM surface: annual heat cost wall r vs air seal ach

annual heat cost wall r vs window u

RSM surface: annual heat cost wall r vs window u

annual heat cost window u vs air seal ach

RSM surface: annual heat cost window u vs air seal ach

comfort score attic r vs air seal ach

RSM surface: comfort score attic r vs air seal ach

comfort score attic r vs wall r

RSM surface: comfort score attic r vs wall r

comfort score attic r vs window u

RSM surface: comfort score attic r vs window u

comfort score wall r vs air seal ach

RSM surface: comfort score wall r vs air seal ach

comfort score wall r vs window u

RSM surface: comfort score wall r vs window u

comfort score window u vs air seal ach

RSM surface: comfort score window u vs air seal ach

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

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
annual_heat_cost 1.0
0.9545
687.00 0.9545 687.00 USD
comfort_score 1.5
0.9545
10.10 0.9545 10.10 pts

Recommended Settings

FactorValue
attic_r49 R-value
wall_r11 R-value
window_u0.65 U-factor
air_seal_ach8 ACH50

Source: from observed run #7

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
comfort_score10.1010.10+0.00

Top 3 Runs by Desirability

RunDFactor Settings
#110.7556attic_r=19, wall_r=11, window_u=0.65, air_seal_ach=8
#80.7433attic_r=49, wall_r=21, window_u=0.25, air_seal_ach=8

Model Quality

ResponseType
comfort_score0.2413linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.9545 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- annual_heat_cost 1.0 0.9545 687.00 USD ↓ comfort_score 1.5 0.9545 10.10 pts ↑ Recommended settings: attic_r = 49 R-value wall_r = 11 R-value window_u = 0.65 U-factor air_seal_ach = 8 ACH50 (from observed run #7) Trade-off summary: annual_heat_cost: 687.00 (best observed: 687.00, sacrifice: +0.00) comfort_score: 10.10 (best observed: 10.10, sacrifice: +0.00) Model quality: annual_heat_cost: R² = 0.2709 (linear) comfort_score: R² = 0.2413 (linear) Top 3 observed runs by overall desirability: 1. Run #7 (D=0.9545): attic_r=49, wall_r=11, window_u=0.65, air_seal_ach=8 2. Run #11 (D=0.7556): attic_r=19, wall_r=11, window_u=0.65, air_seal_ach=8 3. Run #8 (D=0.7433): attic_r=49, wall_r=21, window_u=0.25, air_seal_ach=8

Full Analysis Output

doe analyze
=== Main Effects: annual_heat_cost === Factor Effect Std Error % Contribution -------------------------------------------------------------- window_u 275.6250 84.0334 37.7% wall_r -206.3750 84.0334 28.3% air_seal_ach -165.8750 84.0334 22.7% attic_r 82.6250 84.0334 11.3% === ANOVA Table: annual_heat_cost === Source DF SS MS F p-value ----------------------------------------------------------------------------- attic_r 1 27307.5625 27307.5625 0.138 0.7257 wall_r 1 170362.5625 170362.5625 0.860 0.3963 window_u 1 303876.5625 303876.5625 1.534 0.2705 air_seal_ach 1 110058.0625 110058.0625 0.556 0.4896 attic_r*wall_r 1 1072.5625 1072.5625 0.005 0.9442 attic_r*window_u 1 16320.0625 16320.0625 0.082 0.7856 attic_r*air_seal_ach 1 189.0625 189.0625 0.001 0.9766 wall_r*window_u 1 15562.5625 15562.5625 0.079 0.7905 wall_r*air_seal_ach 1 46764.0625 46764.0625 0.236 0.6476 window_u*air_seal_ach 1 12712.5625 12712.5625 0.064 0.8101 Error 5 990563.3125 198112.6625 Total 15 1694788.9375 112985.9292 === Interaction Effects: annual_heat_cost === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ wall_r air_seal_ach 108.1250 34.4% attic_r window_u -63.8750 20.3% wall_r window_u -62.3750 19.9% window_u air_seal_ach -56.3750 18.0% attic_r wall_r -16.3750 5.2% attic_r air_seal_ach -6.8750 2.2% === Summary Statistics: annual_heat_cost === attic_r: Level N Mean Std Min Max ------------------------------------------------------------ 19 8 1212.7500 362.3738 857.0000 1919.0000 49 8 1295.3750 326.9508 687.0000 1736.0000 wall_r: Level N Mean Std Min Max ------------------------------------------------------------ 11 8 1357.2500 362.8682 857.0000 1919.0000 21 8 1150.8750 293.4311 687.0000 1639.0000 window_u: Level N Mean Std Min Max ------------------------------------------------------------ 0.25 8 1116.2500 333.1151 687.0000 1736.0000 0.65 8 1391.8750 296.2028 989.0000 1919.0000 air_seal_ach: Level N Mean Std Min Max ------------------------------------------------------------ 2 8 1337.0000 444.6517 687.0000 1919.0000 8 8 1171.1250 169.3369 932.0000 1476.0000 === Main Effects: comfort_score === Factor Effect Std Error % Contribution -------------------------------------------------------------- window_u -1.5875 0.4561 40.4% wall_r 1.2875 0.4561 32.8% attic_r -0.7375 0.4561 18.8% air_seal_ach 0.3125 0.4561 8.0% === ANOVA Table: comfort_score === Source DF SS MS F p-value ----------------------------------------------------------------------------- attic_r 1 2.1756 2.1756 0.398 0.5556 wall_r 1 6.6306 6.6306 1.214 0.3207 window_u 1 10.0806 10.0806 1.846 0.2323 air_seal_ach 1 0.3906 0.3906 0.072 0.7998 attic_r*wall_r 1 0.0756 0.0756 0.014 0.9109 attic_r*window_u 1 0.2256 0.2256 0.041 0.8469 attic_r*air_seal_ach 1 0.1806 0.1806 0.033 0.8628 wall_r*window_u 1 0.2256 0.2256 0.041 0.8469 wall_r*air_seal_ach 1 2.1756 2.1756 0.398 0.5556 window_u*air_seal_ach 1 0.4556 0.4556 0.083 0.7843 Error 5 27.3031 5.4606 Total 15 49.9194 3.3280 === Interaction Effects: comfort_score === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ wall_r air_seal_ach -0.7375 38.8% window_u air_seal_ach 0.3375 17.8% attic_r window_u 0.2375 12.5% wall_r window_u -0.2375 12.5% attic_r air_seal_ach -0.2125 11.2% attic_r wall_r -0.1375 7.2% === Summary Statistics: comfort_score === attic_r: Level N Mean Std Min Max ------------------------------------------------------------ 19 8 6.7125 1.7884 3.2000 8.5000 49 8 5.9750 1.9032 4.0000 10.1000 wall_r: Level N Mean Std Min Max ------------------------------------------------------------ 11 8 5.7000 1.6423 3.2000 8.1000 21 8 6.9875 1.8673 4.2000 10.1000 window_u: Level N Mean Std Min Max ------------------------------------------------------------ 0.25 8 7.1375 1.8477 4.0000 10.1000 0.65 8 5.5500 1.5090 3.2000 8.1000 air_seal_ach: Level N Mean Std Min Max ------------------------------------------------------------ 2 8 6.1875 2.4186 3.2000 10.1000 8 8 6.5000 1.1071 5.2000 8.5000

Optimization Recommendations

doe optimize
=== Optimization: annual_heat_cost === Direction: minimize Best observed run: #7 attic_r = 49 wall_r = 11 window_u = 0.65 air_seal_ach = 8 Value: 687.0 RSM Model (linear, R² = 0.0349, Adj R² = -0.3160): Coefficients: intercept +1254.0625 attic_r -29.3125 wall_r +47.5625 window_u +22.6875 air_seal_ach -7.9375 RSM Model (quadratic, R² = 0.4240, Adj R² = -7.6405): Coefficients: intercept +250.8125 attic_r -29.3125 wall_r +47.5625 window_u +22.6875 air_seal_ach -7.9375 attic_r*wall_r -28.3125 attic_r*window_u +124.5625 attic_r*air_seal_ach -21.0625 wall_r*window_u +25.1875 wall_r*air_seal_ach +154.3125 window_u*air_seal_ach -1.0625 attic_r^2 +250.8125 wall_r^2 +250.8125 window_u^2 +250.8125 air_seal_ach^2 +250.8125 Curvature analysis: wall_r coef=+250.8125 convex (has a minimum) window_u coef=+250.8125 convex (has a minimum) air_seal_ach coef=+250.8125 convex (has a minimum) attic_r coef=+250.8125 convex (has a minimum) Notable interactions: wall_r*air_seal_ach coef=+154.3125 (synergistic) attic_r*window_u coef=+124.5625 (synergistic) attic_r*wall_r coef=-28.3125 (antagonistic) wall_r*window_u coef=+25.1875 (synergistic) attic_r*air_seal_ach coef=-21.0625 (antagonistic) window_u*air_seal_ach coef=-1.0625 (antagonistic) Predicted optimum (from linear model, at observed points): attic_r = 19 wall_r = 21 window_u = 0.65 air_seal_ach = 2 Predicted value: 1361.5625 Surface optimum (via L-BFGS-B, linear model): attic_r = 49 wall_r = 11 window_u = 0.25 air_seal_ach = 8 Predicted value: 1146.5625 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. wall_r (effect: 95.1, contribution: 44.2%) 2. attic_r (effect: -58.6, contribution: 27.3%) 3. window_u (effect: 45.4, contribution: 21.1%) 4. air_seal_ach (effect: -15.9, contribution: 7.4%) === Optimization: comfort_score === Direction: maximize Best observed run: #7 attic_r = 49 wall_r = 11 window_u = 0.65 air_seal_ach = 8 Value: 10.1 RSM Model (linear, R² = 0.0568, Adj R² = -0.2861): Coefficients: intercept +6.3438 attic_r +0.2687 wall_r -0.2438 window_u +0.1313 air_seal_ach +0.1687 RSM Model (quadratic, R² = 0.4707, Adj R² = -6.9397): Coefficients: intercept +1.2688 attic_r +0.2687 wall_r -0.2437 window_u +0.1312 air_seal_ach +0.1688 attic_r*wall_r +0.1063 attic_r*window_u -0.7438 attic_r*air_seal_ach +0.2438 wall_r*window_u -0.4313 wall_r*air_seal_ach -0.6937 window_u*air_seal_ach +0.0062 attic_r^2 +1.2688 wall_r^2 +1.2688 window_u^2 +1.2688 air_seal_ach^2 +1.2688 Curvature analysis: attic_r coef=+1.2688 convex (has a minimum) window_u coef=+1.2688 convex (has a minimum) air_seal_ach coef=+1.2688 convex (has a minimum) wall_r coef=+1.2688 convex (has a minimum) Notable interactions: attic_r*window_u coef=-0.7438 (antagonistic) wall_r*air_seal_ach coef=-0.6937 (antagonistic) wall_r*window_u coef=-0.4313 (antagonistic) Predicted optimum (from linear model, at observed points): attic_r = 49 wall_r = 11 window_u = 0.65 air_seal_ach = 8 Predicted value: 7.1563 Surface optimum (via L-BFGS-B, linear model): attic_r = 49 wall_r = 11 window_u = 0.65 air_seal_ach = 8 Predicted value: 7.1563 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. attic_r (effect: 0.5, contribution: 33.1%) 2. wall_r (effect: -0.5, contribution: 30.0%) 3. air_seal_ach (effect: 0.3, contribution: 20.8%) 4. window_u (effect: 0.3, contribution: 16.2%)
← Previous: Rainwater Harvesting System All Use Cases →