Analysis report
Energy Efficiency
- Target
- heating_load_kwh_m2
- Rows
- 768
- Columns
- 9
- Analyzed
- 2026-10-12 11:57 UTC
Summary
With a small but consistent lead over a straight line through the data, the model shows that Heating load kwh m2 in this data moves mainly with Roof area m2, where the model's output falls as Roof area m2 rises. Over the observed range, moving Roof area m2 from 147 to 221 moves the model's output by about -14.0 on average, with everything else as observed. Glazing area, Wall area m2, Relative compactness, and Surface area m2 also contribute to the model. The model tracks the pattern tightly, though the incremental gain came mainly from capturing nonlinear interactions among these inputs.
Accuracy is notably lower for certain slices: the model matches less than three-quarters of the pattern on rows where Relative compactness or Surface area m2 are at either extreme, and falls to about half on the lowest quarter of Relative compactness or the highest quarter of Surface area m2. Accuracy also degrades on higher-magnitude predictions, and three inputs carry nearly the same information. The short formula uses functions that take a specialist to read and was checked on 154 rows, so results are stable for the data overall but local gaps remain. Validate on a fresh sample before relying on the model for decisions.
Fitted formula
heating_load_kwh_m2 = 20.2 + 19 × glazing_area + 5.5 × tanh(3 × (0.1273 × wall_area_m2 − (8.15 + 0.0434 × surface_area_m2 + 8.84 × relative_compactness))) + 7.6 × tanh(8.7 × relative_compactness + 0.01627 × surface_area_m2 − 0.0865 × roof_area_m2)Held-out diagnostics
| Target | Quality | Error | R² | MAE | Generalization | Rows |
|---|---|---|---|---|---|---|
| heating_load_kwh_m2 | 94.99 % | 4.29 % | 0.95712 | 1.53 | generalizing | 154 |
- heating_load_kwh_m2 · Quality 95 % CI 92.77 % – 96.63 %
- heating_load_kwh_m2 · Error 95 % CI 2.88 % – 6.19 %
- heating_load_kwh_m2 · R² 95 % CI 0.93807 – 0.97119
- heating_load_kwh_m2 · MAE 95 % CI 1.334 – 1.763
Concerns
CRITICAL model
3 pairs of inputs carry nearly the same information
3 pairs of the model's inputs move together so closely that the weight the model gives either one of a pair could as well belong to the other; 1 of them is almost identical. The closest are Relative compactness and Surface area m2 (Spearman's rho = -1 (Pearson r = -0.992)), Roof area m2 and Surface area m2 (Pearson r = 0.881 (Spearman's rho = 0.871)) and Relative compactness and Roof area m2 (Spearman's rho = -0.871 (Pearson r = -0.869)). Consider dropping one input of each pair or combining the two.
| Inputs | Association | Reading |
|---|---|---|
| relative_compactness · surface_area_m2 | Spearman's rho = -1 (Pearson r = -0.992) | Almost identical |
| roof_area_m2 · surface_area_m2 | Pearson r = 0.881 (Spearman's rho = 0.871) | Highly correlated |
| relative_compactness · roof_area_m2 | Spearman's rho = -0.871 (Pearson r = -0.869) | Highly correlated |
CRITICAL implications
Weaker quality on 11 slices of the data
On 11 of the 29 slices compared the model is weaker than on all held-out rows (R² 0.957). The largest gaps: Relative compactness in the lowest quarter (0.62 to 0.66) (R² 0.485 against 0.957 on all rows, on 39 rows) and Surface area m2 in the highest quarter (760 to 809) (R² 0.485 against 0.957 on all rows, on 39 rows). Predictions for these rows deserve caution; the Quality by Input Range chapter lists every slice.
| Segment | Rows | R² | Against all rows | Verdict |
|---|---|---|---|---|
| Relative compactness in the lowest quarter (0.62 to 0.66) | 39 | 0.485 | -0.472 | Much weaker |
| Surface area m2 in the highest quarter (760 to 809) | 39 | 0.485 | -0.472 | Much weaker |
| Overall height m in the second quarter (3.50) | 76 | 0.677 | -0.28 | Much weaker |
| Roof area m2 in the highest quarter (221) | 76 | 0.677 | -0.28 | Much weaker |
| Relative compactness in the second quarter (0.69 to 0.74) | 37 | 0.677 | -0.28 | Much weaker |
| Surface area m2 in the third quarter (686 to 735) | 37 | 0.677 | -0.28 | Much weaker |
| Relative compactness in the highest quarter (0.86 to 0.98) | 45 | 0.724 | -0.233 | Weaker |
| Surface area m2 in the lowest quarter (515 to 588) | 45 | 0.724 | -0.233 | Weaker |
| Roof area m2 in the lowest quarter (110 to 123) | 34 | 0.729 | -0.228 | Weaker |
| Wall area m2 in the lowest quarter (245 to 270) | 23 | 0.768 | -0.189 | Weaker |
| Overall height m in the highest quarter (7) | 78 | 0.85 | -0.107 | Weaker |
WARNING data
4 relations point the other way within a column's values
For 4 pairs of an input and a target the correlation over all rows has one direction and the correlation within the values of a categorical column has the opposite one, each with a 95% interval that excludes zero. The strongest: Surface area m2 and Heating load kwh m2 correlate -0.658 over all rows and 0.448 within the values of Overall height m; Surface area m2 and Heating load kwh m2 correlate -0.658 over all rows and 0.392 within the values of Roof area m2; Relative compactness and Heating load kwh m2 correlate 0.622 over all rows and -0.444 within the values of Overall height m. Each overall figure mixes groups that differ in both columns at once, so it describes the table and none of its groups. Read each pair within a value of the column, and let a model read that column alongside the input. A correlation states an association, not a cause.
| Column | Detail |
|---|---|
| surface_area_m2 | with Heating load kwh m2: -0.658 over all rows, 0.448 within the values of Overall height m (3.5 0.478 on 384 rows, 7 0.464 on 384 rows) |
| surface_area_m2 | with Heating load kwh m2: -0.658 over all rows, 0.392 within the values of Roof area m2 (220.5 0.478 on 384 rows, 147 0.633 on 192 rows, 122.5 0.447 on 128 rows) |
| relative_compactness | with Heating load kwh m2: 0.622 over all rows, -0.444 within the values of Overall height m (3.5 -0.475 on 384 rows, 7 -0.439 on 384 rows) |
| relative_compactness | with Heating load kwh m2: 0.622 over all rows, -0.406 within the values of Roof area m2 (220.5 -0.475 on 384 rows, 147 -0.583 on 192 rows, 122.5 -0.447 on 128 rows) |
WARNING model
Residual variance grows with predicted value: model accuracy degrades on higher-magnitude predictions
Across 154 held-out rows split into thirds by predicted value, the residual standard deviation in the top third is 2.33, against 1.38 in the bottom third, 1.69 times as large. The bottom third holds predictions up to 14.6 and the top third predictions from 27.0. The residual spread is 1.69 times as large at the high end: noticeable, not severe. Predictions at the high end deserve caution; a log transform of the target may tighten them.
Analysis
The report opens with the Headline and the Concerns, followed by the Discovered Relations when the analysis has targets and by Questions & Answers when questions were asked. Three sections carry the detail: Model presents one model per target, Implications states where the models hold and what to weigh before relying on them, and Data describes the table as supplied, column by column, for reference.
Generated 2026-10-12 11:57 UTC, analysis d6e35240-c491-11f1-a9e6-0988d77805b7, 1 target, time budget 4 h 0 min, compute budget 10,000 credits, 768 rows. The Provenance & Audit chapter holds the full record.
Validity
Validity: valid. Nothing in the data or the formula speaks against relying on this result.
How to read this
Whether this result is one to rely on. Quality says how closely the formula follows the data; validity says whether that closeness means anything. A formula that only restates its target, or that reads a column which already holds the answer, can reach a very high quality and still tell you nothing new.
What it found
Heating load kwh m2 rises with Relative compactness and Glazing area, falls with Roof area m2, rises with Wall area m2 up to about 359 and then levels off, and is lowest at a middle value of Surface area m2.
- Roof area m2 and Relative compactness carry the model. Roof area m2 accounts for 51% of what the formula explains and Relative compactness for 19%. Wall area m2 adds 16%, Surface area m2 9.3% and Glazing area 4.1%.
- Beyond about 359, Wall area m2 changes little. With the other inputs at typical values, the formula gives 12.6 at Wall area m2 245, 12.6 at 316 and 23.6 at 359. Beyond that it stays near 23.6.
- Heating load kwh m2 falls with Roof area m2. With the other inputs at typical values, the formula gives 27.1 at Roof area m2 110 and 12.6 at 221. The change is not even across the range.
- Overall height m is not in the formula. It has the strongest correlation with Heating load kwh m2 in the table (0.89). Rows with more of it have less Roof area m2 (correlation -0.97), and Roof area m2 is in the formula.
- The formula explains 95.7% of the variation in Heating load kwh m2. That was measured on 154 rows it never saw. A straight line explains 90.5%. The formula typically misses Heating load kwh m2 by 1.53. It is weakest where Relative compactness is between 0.62 and 0.66, where it explains 49%.
Headline
Diafunc modeled Heating load kwh m2 from 8 columns, using 5 in the formula. The model explains 95.7% of Heating load kwh m2 and relies most on Roof area m2, with which the model's output falls.
- One target was modeled; 154 rows were held out for checking.
- A straight line through the data already explained 90.5%; the model added 5.2 points, a small but consistent margin in variance explained.
- 3 pairs of inputs carry nearly the same information.
- Best R²
- 0.95712
- Best quality
- 94.99 %
- Best target
- heating_load_kwh_m2
- Targets
- 1
Concerns
| Severity | Section | Concern | Detail |
|---|---|---|---|
| Critical | Model | 3 pairs of inputs carry nearly the same information | 3 pairs of the model's inputs move together so closely that the weight the model gives either one of a pair could as well belong to the other; 1 of them is almost identical. The closest are Relative compactness and Surface area m2 (Spearman's rho = -1 (Pearson r = -0.992)), Roof area m2 and Surface area m2 (Pearson r = 0.881 (Spearman's rho = 0.871)) and Relative compactness and Roof area m2 (Spearman's rho = -0.871 (Pearson r = -0.869)). Consider dropping one input of each pair or combining the two. |
| Critical | Implications | Weaker quality on 11 slices of the data | On 11 of the 29 slices compared the model is weaker than on all held-out rows (R² 0.957). The largest gaps: Relative compactness in the lowest quarter (0.62 to 0.66) (R² 0.485 against 0.957 on all rows, on 39 rows) and Surface area m2 in the highest quarter (760 to 809) (R² 0.485 against 0.957 on all rows, on 39 rows). Predictions for these rows deserve caution; the Quality by Input Range chapter lists every slice. |
| Warning | Data | 4 relations point the other way within a column's values | For 4 pairs of an input and a target the correlation over all rows has one direction and the correlation within the values of a categorical column has the opposite one, each with a 95% interval that excludes zero. The strongest: Surface area m2 and Heating load kwh m2 correlate -0.658 over all rows and 0.448 within the values of Overall height m; Surface area m2 and Heating load kwh m2 correlate -0.658 over all rows and 0.392 within the values of Roof area m2; Relative compactness and Heating load kwh m2 correlate 0.622 over all rows and -0.444 within the values of Overall height m. Each overall figure mixes groups that differ in both columns at once, so it describes the table and none of its groups. Read each pair within a value of the column, and let a model read that column alongside the input. A correlation states an association, not a cause. |
| Warning | Model | Residual variance grows with predicted value: model accuracy degrades on higher-magnitude predictions | Across 154 held-out rows split into thirds by predicted value, the residual standard deviation in the top third is 2.33, against 1.38 in the bottom third, 1.69 times as large. The bottom third holds predictions up to 14.6 and the top third predictions from 27.0. The residual spread is 1.69 times as large at the high end: noticeable, not severe. Predictions at the high end deserve caution; a log transform of the target may tighten them. |
How to read this
Data-quality, model-quality, and deployment-risk issues detected during the analysis appear below, ordered by severity. Critical concerns are listed first; Warning and Info entries follow.
Discovered Relations
| Target | Formula | Quality | Complexity | Error |
|---|---|---|---|---|
| heating_load_kwh_m2 | heating_load_kwh_m2 = 20.2 + 19 × glazing_area + 5.5 × tanh(3 × (0.1273 × wall_area_m2 − (8.15 + 0.0434 × surface_area_m2 + 8.84 × relative_compactness))) + 7.6 × tanh(8.7 × relative_compactness + 0.01627 × surface_area_m2 − 0.0865 × roof_area_m2) | 94.99 % | 38.8 % | 4.29 % |
How to read this
One model per target, each a formula with its quality, complexity and error. Higher quality at lower complexity describes the data most clearly. The findings below read the models together; the per-target chapters in the Model section carry each formula, its predictions and its diagnostics.
Questions & Answers
3 questions were asked with this analysis:
- Which building properties matter most for the heating load?
- How does the heating load change with the overall height?
- How much does the glazing area matter?
Which building properties matter most for the heating load?
The model relies most on Roof area m2 (51% of importance), then Relative compactness (19%), Wall area m2 (16%), Surface area m2 (9.3%), and Glazing area (4.1%).
From Which inputs matter most (heating_load_kwh_m2).
How does the heating load change with the overall height?
Not answered by this analysis. The analysis did not model Heating load kwh m2 with Overall height m, so how the model's output changes as Overall height m shifts was not measured.
How much does the glazing area matter?
Glazing area matters least among the included predictors, carrying 4.1% of importance, but the model's output rises as Glazing area increases and rises by 5.70 units from the first to third quartile.
From Which inputs matter most (heating_load_kwh_m2).
- N answered
- 2
- N questions
- 3
Model
The model's primary formula for heating load moves with five inputs, and the up to 0.97 share of variation explained measured on held-out rows signals high quality. Residual variance rises as predicted values grow, and near-duplicate input pairs are flagged by the Concerns chapter.
Nothing in the Model section's numbers stood out as unusual.
How to read this
The Model section presents one model per target: its formula, its predictions on held-out rows, the inputs it relies on, the baselines it is measured against, and diagnostics of how it behaves. With more than one target, the Composite Model, Multi-Output and Leaderboard chapters read the models as a set.
Heating load kwh m2
The Model section builds one model for Heating load kwh m2: a formula that expresses it through the other columns. Diafunc searches the space of mathematical expressions for the formula that balances accuracy against simplicity, so the result is not a black box but an expression that can be read, evaluated and questioned. The chapters that follow show the formula, score it on rows it never saw during training, and take it apart term by term.
Heating load kwh m2 Model
The model's output for heating_load_kwh_m2 falls with roof_area_m2, depends on the range of relative_compactness and surface_area_m2, and rises with wall_area_m2 and glazing_area.
heating_load_kwh_m2 = 20.2 + 19 × glazing_area + 5.5 × tanh(3 × (0.1273 × wall_area_m2 − (8.15 + 0.0434 × surface_area_m2 + 8.84 × relative_compactness))) + 7.6 × tanh(8.7 × relative_compactness + 0.01627 × surface_area_m2 − 0.0865 × roof_area_m2)| Value | Role | Input | Unit |
|---|---|---|---|
| 20.2 | Intercept | Unit of the model's output | |
| 19 | Slope | glazing_area | Output units per unit of glazing_area |
| 5.5 | Coefficient | ||
| 3 | Coefficient | ||
| 0.1273 | Coefficient | ||
| 8.15 | Offset | ||
| 0.0434 | Coefficient | ||
| 8.84 | Coefficient | ||
| 7.6 | Coefficient | ||
| 8.7 | Coefficient |
The first 10 rows of 12. The other 2 are in the notebook.
- Share of the output's variation they carry
- 100 %
- Rows the search trained on, measured
- 308
- Rows the search trained on
- 308
- Held out R²
- 0.95712 (95 % CI 0.93807 – 0.97119)
- Constant base
- 20.2
- Constants in the formula
- 12
- Terms that reach 95% of the output's variation
- 3
- Terms that read an input, constants multiplied in
- 3
- N fit
- 614
- Held-out rows
- 154
- N inputs
- 5
- N terms
- 1
- Inputs the formula does not read
- glazing_area_distribution, orientation, overall_height_m
How to read this
The three gauges score the model on the held-out rows: rows that were set aside before the search and that the model never saw. They are the figures to quote for how the model does on new data.
| Metric | Meaning |
|---|---|
| Quality | How well the model predicts on the held-out rows, marked down for the size of its formula: 100% is an exact prediction, 0% is no better than always predicting the average. It is not R², and sits at or just below it |
| Error | How far the predictions lie from the held-out values, as a share of the miss of always predicting the average: 0% is an exact prediction, 100% is no better than the average |
| Complexity | The size of the formula as a share of the complexity the search was allowed: a low figure is a short formula |
The figures under During the search are the same measures on the training rows. They are what the search ranked its candidates by, so they describe the search and tend to flatter the model it chose. The Generalization chapter sets the training rows beside the held-out rows, and the Baselines chapter sets the model beside its baselines. The time and credit gauges account for the computation that produced the model, not for the model itself.
Prediction
The model predicts Heating load kwh m2 for any row that supplies the other columns. This chapter applies it to the held-out rows, the rows set aside before training, so that the predictions can be compared with values the model never saw. The rows themselves and the function that predicts them are kept as reference under Foundation, with the processed data.
Prediction Chart
R² of 0.957: excellent. The model explains over 90% of the variation; predictions are reliable across the range of the data. Mean absolute error is 1.53 on the target's scale.
- Error
- 4.29 % (95 % CI 2.88 % – 6.19 %)
- MAE
- 1.53 (95 % CI 1.334 – 1.763)
- N
- 154
- N fit
- 614
- Quality
- 94.99 % (95 % CI 92.77 % – 96.63 %)
- R²
- 0.95712 (95 % CI 0.93807 – 0.97119)
- Target
- heating_load_kwh_m2
How to read this
Actual Heating load kwh m2 on the horizontal axis against the model's predicted value on the vertical axis, for the held-out rows the model never saw during training. Points on the diagonal are perfect predictions; systematic vertical offsets reveal bias, vertical spread reveals noise, and points far from the diagonal are rows the model handles poorly.
Residual Distribution
- Bias
- 0.02267 (95 % CI -0.28197 – 0.3472)
- N
- 154
- P50
- 0.0249 (95 % CI -0.33379 – 0.60261)
- P90
- 2.376 (95 % CI 2.243 – 2.776)
- P95
- 2.826 (95 % CI 2.454 – 3.083)
- P99
- 3.514 (95 % CI 2.883 – 3.635)
- Std
- 2.023 (95 % CI 1.686 – 2.398)
How to read this
How the held-out residuals (actual Heating load kwh m2 minus predicted) are distributed. Bias is their mean: a value away from zero means the model is systematically high or low rather than merely imprecise. The standard deviation and the percentiles describe the spread, and the tail percentiles say how large the worst misses get. Every figure carries a bootstrap 95% confidence interval; with a small held-out set those intervals are wide, and that width is itself the finding.
Which inputs matter most
The model's output falls with roof_area_m2 on every one of the 308 measured rows (exact derivative). With relative_compactness the model's output rises on 208 and falls on 100 of the 308 measured rows (exact derivative). The model's output rises with wall_area_m2 on every one of the 308 measured rows (exact derivative). Moving roof_area_m2 from 147 to 221, its first and third quartile, with every other input as observed changes the model's output by -14.0 on average (between -15.0 and -11.3). These are measurements on the rows the search trained on, inside the observed ranges; outside them nothing is claimed.
| Input | Share of importance | Permutation importance | Sensitivity | Residual correlation | Occurrences | Model's output as the input rises | Change, first to third quartile |
|---|---|---|---|---|---|---|---|
| roof_area_m2 | 50.99 % | 36.53 | 0.1391 | 0.06152 | 1 | Falls (308 of 308 rows) | -14 (147 to 220.5) |
| relative_compactness | 19.17 % | 13.73 | 28.35 | -0.21425 | 1 | Rises and falls (rises on 208, falls on 100 of 308 rows) | +2.275 (0.66 to 0.82) |
| wall_area_m2 | 16.43 % | 11.77 | 0.20661 | 0.27669 | 1 | Rises (153 of 308 rows) | +4.934 (294 to 343) |
| surface_area_m2 | 9.33 % | 6.685 | 0.09665 | 0.19766 | 1 | Rises and falls (rises on 208, falls on 100 of 308 rows) | -1.223 (612.5 to 759.5) |
| glazing_area | 4.08 % | 2.926 | 19 | 0.15632 | 1 | Rises (308 of 308 rows) | +5.7 (0.1 to 0.4) |
- Rows the search trained on, measured
- 308
- Inputs the formula does not read
- glazing_area_distribution, orientation, overall_height_m
How to read this
The chart ranks the inputs of the Heating load kwh m2 model by permutation importance: how much the model's error rises when that input's values are shuffled across rows so that it carries no information. A longer bar means the model relies on the input more. The order says which columns the model reads most, and those are the columns where measurement quality and data collection matter most. A short bar marks an input the model barely uses, which is a fact about this model and not a verdict on the column. Importance describes the model's reliance and nothing more: an input can rank high because it stands in for something the data does not contain. Where the fit measured it, an input also carries the direction in which the model's output moves as the input rises, counted on the rows the search trained on, and the change of the output when the input alone goes from its first to its third quartile; both describe the formula inside the observed range and say nothing about causes.
Baselines
The model beats the strongest simple yardstick, a straight line through the data, by 5.2 points of variance explained on the held-out rows. Row by row the margin is small: on many individual rows the yardstick does about as well, and whether the complexity is justified depends on the use. Of the 154 held-out rows where the two differ, the model is closer on 51% (95% interval 43% to 58%).
- Best yardstick's score
- 0.90501 (95 % CI 0.87049 – 0.93189)
- Best baseline R²
- 0.90501
- Effect size d
- 0.27591 (95 % CI 0.13463 – 0.4058)
- Effect size d magnitude
- small
- Margin over the best yardstick
- 0.05211 (95 % CI 0.02987 – 0.07601)
- Margin's interval stays above zero
- Yes
- Model MAE
- 1.53 (95 % CI 1.334 – 1.763)
- Model
- 0.95712 (95 % CI 0.93807 – 0.97119)
- Model R²
- 0.95712 (95 % CI 0.93807 – 0.97119)
- Held-out rows
- 154
- Held-out rows without an answer
- 0
- Target
- heating_load_kwh_m2
- Rows where the model is closer
- 50.65 % (95 % CI 42.83 % – 58.43 %)
- Rows compared
- 154
- Rows level
- 0
How to read this
The table scores the model for Heating load kwh m2 against simple yardsticks on the same held-out rows. A yardstick is a predictor simple enough to need no explanation: a constant (the average, the middle value, the most common class or level, the average count), a plain regression on the numeric inputs (a straight line, a logistic regression, a Poisson regression), and for a series over time a forecast from its own past (the last value, the value one season back, the recent trend extended). Which of them appear depends on what kind of column Heating load kwh m2 is. They are yardsticks only: the analysis has one model, and it is the last row. A regression yardstick answers every row the model answers: where one of its numeric inputs is empty, it reads the average of that input over the training rows. Nothing is filled in for the model. A yardstick whose row is empty could not be scored, and the summary then says what the margin is measured against.
Read the columns from top to bottom. Each kind of target is scored by the measure it is judged on: R² and MAE for a continuous value, with MASE added for a series (below 1 means a typical miss is smaller than the series' usual step from one row to the next); accuracy and balanced accuracy for a yes/no value, with the Brier score where a probability is predicted; accuracy and macro F1 for a class; weighted kappa and the distance in levels for an ordered level; Poisson deviance and RMSE for a count. When the model clears every yardstick by a wide margin, its structure earns its place. When it is level with the regression yardstick, a plain regression describes the data as well. When it is level with the constant, the inputs carry no usable signal for Heating load kwh m2.
The margin over the best yardstick comes with an interval. When that interval includes zero, the lead is not settled on this many held-out rows. The share of rows on which the model is closer than the best yardstick is counted only on the rows where the two differ; for a yes/no value or a class these are the rows where the two disagree.
Generalization
The model explains held-out rows about as well as training rows (held-out R² 0.957, gap between training and held-out R² 0.0102): it generalizes. The structure the formula encodes carries from the training rows to the held-out rows.
- Generalization gap
- 0.0102
- N test
- 154
- Target
- heating_load_kwh_m2
- Test error
- 1.53 (95 % CI 1.334 – 1.763)
- Test R²
- 0.95712 (95 % CI 0.93807 – 0.97119)
- Train error
- 0.0301
- Train R²
- 0.96733
- Verdict
- Generalizing
How to read this
The chart sets the R² of the Heating load kwh m2 model on the rows it trained on beside its R² on the held-out rows it never saw, and the gap between the two bars is the finding. The held-out bar carries a bootstrap 95% confidence interval, which says how far that figure could move with a different held-out draw; the training bar has none, because it is measured on the rows that shaped the model.
The verdict reads from the two figures. Generalizing: the held-out R² is strong, or training and held-out agree closely; the structure the formula encodes carries to new rows. Overfit: training is far ahead of held-out and the held-out R² is not strong on its own; the formula has absorbed noise from the training rows, and the training figure overstates what to expect on new data. Underfit or noisy: held-out is far ahead of training; this is not strength, it usually means an outlier or a flat region in the training rows that the held-out rows happen to avoid. Insufficient: fewer than 30 held-out rows and no strong held-out R², too little evidence for a negative verdict. In every case the width of the held-out interval says how much weight the gap can bear.
How each term responds to its inputs
Read as a sum, the formula has 3 terms that read an input, on top of a constant base. All of them are needed to reach 100% of the variation of the model's output on the 308 rows the search trained on: the largest are 7.6 × tanh(8.7 × relative_compactness + 0.01627 × surface_area_m2 − 0.0865 × roof_area_m2) (60%), 5.5 × tanh(3 × (0.1273 × wall_area_m2 − (8.15 + 0.0434 × surface_area_m2 + 8.84 × relative_compactness))) (34%) and 19 × glazing_area (6.3%). A share describes the model's output, not the target. The curve below shows the whole-formula response.
- Additive
- No
- Rows the search trained on, measured
- 308
- N terms
- 1
- Notation
- 20.2 + 19 × glazing_area + 5.5 × tanh(3 × (0.1273 × wall_area_m2 − (8.15 + 0.0434 × surface_area_m2 + 8.84 × relative_compactness))) + 7.6 × tanh(8.7 × relative_compactness + 0.01627 × surface_area_m2 − 0.0865 × roof_area_m2)
- Target
- heating_load_kwh_m2
How to read this
The formula for Heating load kwh m2 is split into its additive terms, and each term is traced as one of its inputs moves across the training range while the other inputs stay at their medians. Each curve is therefore a profile of the term at the typical row, not an average over the data: it shows what the term contributes at every value of that input when everything else is ordinary.
A term that depends on several inputs gets one curve per input; a constant term gets none. Terms the formula subtracts are drawn with their sign, so a curve below zero pulls the prediction down. At any fixed row, the terms add up to the model's prediction. Where the fit measured it, a term also carries its share of the variation of the model's output on the rows the search trained on; that is a share of what the formula returns, not of Heating load kwh m2 itself. The notebook lets the reader trim each range to the central 95% of the input. When the formula has no additive structure, the chapter traces the whole formula as a single term along each of its inputs, and the Sensitivity chapter is the better read for how the inputs combine.
How the formula behaves outside the data
The model diverges beyond the observed range of glazing_area: predictions there are not supported by the formula's shape. Extrapolate with caution.
| Part | Kind | Can take | Took on the rows the search trained on |
|---|---|---|---|
| tanh(3 × (0.1273 × wall_area_m2 − (8.15 + 0.0434 × surface_area_m2 + 8.84 × relative_compactness))) | Saturating | -1 to 1 | -1 to 1 |
| tanh(8.7 × relative_compactness + 0.01627 × surface_area_m2 − 0.0865 × roof_area_m2) | Saturating | -1 to 1 | -0.90034 to 1 |
- Bounded at infinity
- No
- Rows the search trained on, measured
- 308
- N inputs
- 5
- N singularities
- 0
- Risky inputs
- glazing_area
- Target
- heating_load_kwh_m2
| Input | Kind |
|---|---|
| glazing_area | Negative infinity |
| wall_area_m2 | Finite |
| surface_area_m2 | Finite |
| relative_compactness | Finite |
| roof_area_m2 | Finite |
| Input | Kind |
|---|---|
| glazing_area | Positive infinity |
| wall_area_m2 | Finite |
| surface_area_m2 | Finite |
| relative_compactness | Finite |
| roof_area_m2 | Finite |
How to read this
The formula for Heating load kwh m2 is read as a mathematical object, without data, to state how it behaves beyond the range it was trained on. A black box cannot answer that question; a formula can. For each input the chapter reports the limit as the input grows without bound in either direction (whether the formula diverges, settles to a finite value or oscillates, with the sign tracked exactly, so that a term like minus two times the cube of the input is reported as diverging downward on the right and upward on the left), whether the formula stays finite in every direction, and any singularity with its solved location: a division whose denominator reaches zero, a logarithm or square root whose argument leaves its domain, or a periodic pole.
The inputs along which the formula diverges or meets a singularity are listed as the risky ones; along them the formula's shape gives no support for extrapolation. A formula that stays finite everywhere with no singularity carries no structural hazard when extrapolated; the data still ends where it ends, and a prediction outside the training range remains unsupported by evidence. The plain-language summary at the end states the same facts in one paragraph.
Contributions per term
- Additive
- No
- N rows
- 5
The notebook draws this chapter's figure from each held-out row; the row-by-row detail is there.
How to read this
For up to five representative held-out rows, the chapter draws one bar chart showing how each additive term of the formula builds that row's prediction of Heating load kwh m2. The five rows are the worst prediction (largest absolute residual), the best (smallest), the median miss, the row with the smallest prediction and the row with the largest. When two roles fall on the same row, which is common with few held-out rows, the earlier role keeps it and fewer than five charts appear.
In each chart the bars stack the terms' contributions at the row's input values, terms the formula subtracts sit below zero, and the bars sum to the prediction. The dashed line marks the actual value; the distance between it and the top of the stack is the residual. The bars are evaluated at the same precision as the predictions, so they agree with the Prediction Chart. When the formula has no additive structure, each chart holds one bar for the whole formula, and the Sensitivity chapter is the better read for how individual inputs move it.
What each term is worth
Full-formula R² is 0.957. The formula is non-decomposable, so ablation collapses to a single bar; the chapter "How each term responds to its inputs" is the better surface in this case.
- Additive
- No
- Baseline R²
- 0.95712
- Held-out rows
- 154
The notebook draws this chapter's figure from each held-out row; the row-by-row detail is there.
How to read this
For each additive term of the formula for Heating load kwh m2, the chart shows how much the held-out R² drops when that term is replaced by its mean contribution, so that it no longer varies from row to row. The bars are sorted from the largest drop down, and the dashed line marks the R² of the full model.
A large drop means the term carries real predictive work; the complexity it adds is paid for. A small drop means the term adds little beyond its average value: it may refine a stronger term, or its curve in the chapter "How each term responds to its inputs" may be nearly flat. A negative drop means the held-out R² rises without the term, which is a sign that the term tracks noise in the training rows. Each figure describes what a term contributes inside the model as discovered; the chart diagnoses the model, it is not a guide to removing terms. When the formula has no additive structure, the chart shows one bar for the whole formula.
What-If
| Item | Value |
|---|---|
| glazing_area | 0.25 |
| relative_compactness | 0.74 |
| roof_area_m2 | 220.5 |
| surface_area_m2 | 686 |
| wall_area_m2 | 318.5 |
| Prediction | 12.61 |
- Additive
- No
- Held-out rows for the interval
- 154
- N terms
- 1
- Residual P5
- -2.825
- Residual P95
- 2.826
- Residual std
- 2.023
How to read this
The chapter shows the model's prediction for Heating load kwh m2 at one input combination, with the contribution of each term stacked beneath it. The inputs start at their training medians, so the first view is the prediction for a typical row, and each input can move within the range the training rows cover; the notebook lets the reader change the inputs and watch the prediction and the stack update.
In the stack, a long bar marks the term that dominates at this input combination, often the one whose removal costs most in the chapter "What each term is worth". A short bar marks a term that makes a small adjustment here; the chapter "How each term responds to its inputs" shows whether it stays small everywhere or grows toward the edges of the range. A negative bar marks a term that pulls the prediction down at this point, either because the formula subtracts it or because it evaluates below zero.
The inputs stay inside the training range for a reason: the formula computes a value anywhere, but outside that range no training row supports it. When the formula has no additive structure, the stack holds a single bar for the whole formula and the inputs move the prediction directly.
Sensitivity
The prediction responds to 5 inputs. The formula is non-additive: the change in the prediction per unit of each input (∂ŷ/∂xᵢ) is computed with the others held at the training median. Flat curves mean a constant linear response, bent curves a non-linear response that depends on the position in the range, and zero crossings a response that reverses sign between regions.
- Additive
- No
- N terms
- 1
How to read this
For each input, the chart traces the rate at which the predicted Heating load kwh m2 changes as that input moves across its training range, with the other inputs held at their medians. The rate is the local slope of the prediction with respect to the input, measured by a small finite difference at each point. A table summarizes each input with the mean, minimum and maximum of the absolute slope, which ranks the inputs by how strongly the prediction responds to them.
A flat curve means the model is close to linear in that input: the prediction responds at the same rate everywhere in the observed range, which is easy to state and says nothing about values beyond that range. A curve that grows or shrinks marks diminishing or accelerating returns, and whether that is plausible is a question for the domain. A curve that crosses zero means the prediction rises with the input in one part of the range and falls in another, which is either a real optimum or a sign that the formula bends around a few rows. A curve with a large magnitude marks an input to which the prediction is highly responsive; the chapter "What each term is worth" says whether the term behind it also carries predictive work.
In the table, the mean absolute slope ranks the inputs by typical responsiveness. A minimum close to the maximum means the responsiveness is nearly constant; a wide gap means it varies strongly across the range. The chapter reads the whole formula, so it applies whether or not the formula splits into terms.
How two inputs act together
The formula couples relative_compactness and roof_area_m2: on 140 of 140 row pairs the mixed difference was not zero, so in the model's output the two act together (measured, not assumed). The formula couples relative_compactness and surface_area_m2: on 236 of 236 row pairs the mixed difference was not zero, so in the model's output the two act together (measured, not assumed). The formula couples roof_area_m2 and surface_area_m2: on 140 of 140 row pairs the mixed difference was not zero, so in the model's output the two act together (measured, not assumed). Glazing_area enters linearly. This describes the formula; it does not say that the data hold no other interaction. The heatmaps show the full-formula response across each pair's plane.
| Inputs | In the model's output | Row pairs | Pairs with a difference | Mean absolute mixed difference |
|---|---|---|---|---|
| relative_compactness, roof_area_m2 | Act together | 140 | 140 | 3.157 |
| relative_compactness, surface_area_m2 | Act together | 236 | 236 | 4.237 |
| roof_area_m2, surface_area_m2 | Act together | 140 | 140 | 3.945 |
| relative_compactness, wall_area_m2 | Act together | 220 | 149 | 1.456 |
| surface_area_m2, wall_area_m2 | Act together | 220 | 182 | 4.632 |
| relative_compactness \ glazing_area | 0 | 0.07273 | 0.14546 | 0.21818 | 0.29091 | 0.36364 |
|---|---|---|---|---|---|---|
| 0.62 | 7.198 | 8.58 | 9.962 | 11.34 | 12.73 | 14.11 |
| 0.68546 | 7.402 | 8.784 | 10.17 | 11.55 | 12.93 | 14.31 |
| 0.75091 | 8.006 | 9.388 | 10.77 | 12.15 | 13.53 | 14.92 |
| 0.81636 | 9.613 | 10.99 | 12.38 | 13.76 | 15.14 | 16.52 |
| 0.88182 | 12.91 | 14.29 | 15.67 | 17.05 | 18.44 | 19.82 |
| 0.94727 | 17.12 | 18.5 | 19.88 | 21.26 | 22.64 | 24.02 |
| roof_area_m2 \ glazing_area | 0 | 0.07273 | 0.14546 | 0.21818 | 0.29091 | 0.36364 |
|---|---|---|---|---|---|---|
| 110.3 | 22.3 | 23.68 | 25.06 | 26.45 | 27.83 | 29.21 |
| 130.3 | 22.3 | 23.68 | 25.06 | 26.45 | 27.83 | 29.21 |
| 150.3 | 22.3 | 23.68 | 25.06 | 26.44 | 27.83 | 29.21 |
| 170.4 | 22.25 | 23.63 | 25.01 | 26.4 | 27.78 | 29.16 |
| 190.4 | 20.86 | 22.24 | 23.62 | 25 | 26.38 | 27.76 |
| 210.5 | 10.58 | 11.96 | 13.34 | 14.73 | 16.11 | 17.49 |
| surface_area_m2 \ glazing_area | 0 | 0.07273 | 0.14546 | 0.21818 | 0.29091 | 0.36364 |
|---|---|---|---|---|---|---|
| 514.5 | 18.1 | 19.48 | 20.87 | 22.25 | 23.63 | 25.01 |
| 568 | 18.11 | 19.49 | 20.87 | 22.25 | 23.64 | 25.02 |
| 621.4 | 7.21 | 8.592 | 9.974 | 11.36 | 12.74 | 14.12 |
| 674.9 | 7.635 | 9.017 | 10.4 | 11.78 | 13.16 | 14.54 |
| 728.3 | 9.715 | 11.1 | 12.48 | 13.86 | 15.24 | 16.62 |
| 781.8 | 15.34 | 16.72 | 18.1 | 19.48 | 20.87 | 22.25 |
| wall_area_m2 \ glazing_area | 0 | 0.07273 | 0.14546 | 0.21818 | 0.29091 | 0.36364 |
|---|---|---|---|---|---|---|
| 245 | 7.857 | 9.239 | 10.62 | 12 | 13.38 | 14.77 |
| 276.2 | 7.857 | 9.239 | 10.62 | 12 | 13.38 | 14.77 |
| 307.4 | 7.857 | 9.239 | 10.62 | 12 | 13.38 | 14.77 |
| 338.5 | 7.86 | 9.242 | 10.62 | 12.01 | 13.39 | 14.77 |
| 369.7 | 18.86 | 20.24 | 21.62 | 23 | 24.38 | 25.77 |
| 400.9 | 18.86 | 20.24 | 21.62 | 23 | 24.38 | 25.77 |
| roof_area_m2 \ relative_compactness | 0.62 | 0.68546 | 0.75091 | 0.81636 | 0.88182 | 0.94727 |
|---|---|---|---|---|---|---|
| 110.3 | 27.05 | 27.05 | 27.05 | 27.05 | 27.05 | 27.05 |
| 130.3 | 27.05 | 27.05 | 27.05 | 27.05 | 27.05 | 27.05 |
| 150.3 | 27.04 | 27.05 | 27.05 | 27.05 | 27.05 | 27.05 |
| 170.4 | 26.66 | 26.92 | 27.01 | 27.04 | 27.05 | 27.05 |
| 190.4 | 20.08 | 23.81 | 25.84 | 26.64 | 26.92 | 27.01 |
| 210.5 | 12.39 | 13.42 | 15.87 | 19.89 | 23.67 | 25.78 |
| surface_area_m2 \ relative_compactness | 0.62 | 0.68546 | 0.75091 | 0.81636 | 0.88182 | 0.94727 |
|---|---|---|---|---|---|---|
| 514.5 | 22.85 | 22.85 | 22.85 | 22.86 | 22.89 | 22.96 |
| 568 | 22.85 | 22.86 | 22.86 | 22.47 | 16.74 | 12.7 |
| 621.4 | 16.46 | 12.13 | 11.97 | 12.21 | 12.92 | 14.75 |
| 674.9 | 11.92 | 12.06 | 12.49 | 13.69 | 16.42 | 20.57 |
| 728.3 | 12.23 | 12.98 | 14.9 | 18.53 | 22.65 | 25.29 |
| 781.8 | 13.79 | 16.63 | 20.8 | 24.27 | 26.03 | 26.71 |
- Additive
- No
- Inputs in different terms act separately
- Yes
- Rows the search trained on, measured
- 308
- Inputs the formula is linear in
- glazing_area
- N terms
- 1
- Input pairs not tested
- 0
How to read this
When a single term of the formula combines two or more inputs, the prediction's response to one of them depends on the value of the other. This chapter draws one surface for each such pair: the predicted Heating load kwh m2 across the plane of the two inputs, with every other input held at its training median. Pairs that never share a term have no interaction by construction, and the curves in the chapter "How each term responds to its inputs" already say everything about them. Where the fit tested a pair, the summary says on how many pairs of rows the two inputs acted together in the model's output; that is a statement about the formula, not a finding that the data hold no other interaction.
Parallel stripes mean the two inputs act almost independently, so the surface is close to a sum of two one-input curves. Curved contours mean a real interaction, where the slope along one input changes with the other; the location of the peak or trough matters. A saddle, rising along one axis and falling along the other, marks a trade-off between the two. A sharp edge or cliff means the formula encodes a change of regime, and the curve for the same input in the chapter "How each term responds to its inputs" shows whether the bend appears there too.
The grid is deliberately coarse, and the color scale runs from low to high predictions. When the formula has no additive structure, the single whole-formula term holds every input, so every pair appears; the number of surfaces is capped for models with many inputs.
Worst Predictions
The worst held-out row was missed by 9.37 (target's scale). The 10 rows with the largest absolute residuals out of 154 held-out rows are shown. Each card breaks the failure down into per-term contributions and input values, so the failure mode is inspectable. A large residual with one concentrated term contribution means one term got this row wrong; a large residual with balanced contributions means a structural mismatch.
| Actual | Predicted | Residual | Glazing area | Relative compactness | Roof area m2 | Surface area m2 | Wall area m2 |
|---|---|---|---|---|---|---|---|
| 23.93 | 33.3 | -9.37 | 0 | 0.76 | 122.5 | 661.5 | 416.5 |
| 20.71 | 27.52 | -6.812 | 0 | 0.9 | 122.5 | 563.5 | 318.5 |
| 15.98 | 22.3 | -6.32 | 0 | 0.82 | 147 | 612.5 | 318.5 |
| 16.95 | 22.3 | -5.35 | 0 | 0.82 | 147 | 612.5 | 318.5 |
| 17.05 | 22.3 | -5.25 | 0 | 0.82 | 147 | 612.5 | 318.5 |
| 15.41 | 11.77 | 3.635 | 0.1 | 0.64 | 220.5 | 784 | 343 |
| 15.4 | 11.77 | 3.625 | 0.1 | 0.64 | 220.5 | 784 | 343 |
| 15.19 | 11.77 | 3.415 | 0.1 | 0.64 | 220.5 | 784 | 343 |
| 15.16 | 11.77 | 3.385 | 0.1 | 0.64 | 220.5 | 784 | 343 |
| 19.34 | 22.3 | -2.957 | 0 | 0.86 | 147 | 588 | 294 |
- Additive
- No
- N extrapolated
- 0
- Held-out rows
- 154
- Held-out rows for the interval
- 154
- Residual P5
- -2.825
- Residual P95
- 2.826
- Residual std
- 2.023
How to read this
The held-out rows on which the model misses Heating load kwh m2 by the most, sorted by absolute residual with the largest first and capped at ten. Each card shows the row's actual value, the prediction, the residual, the contribution of every additive term at that row and the row's input values. R² and MAE say how good the model is on average; these cards say where it fails and let each failure be read input by input and term by term.
A large residual with one dominant term means that term produced the wrong value at this row; the row's value for that input, read against its curve in the chapter "How each term responds to its inputs", shows whether it fell in a region the formula models poorly. A large residual with balanced contributions means every term was a little off and the sum still missed, which points to a shape the formula cannot represent in that region. Residuals that change sign from card to card mean the misses are not a consistent bias but scattered errors on particular rows. When the formula has no additive structure, each card shows a single whole-formula contribution.
Prediction Interval Coverage
Across 154 held-out rows, the 95% prediction interval actually covers 96.8% of the rows. The normal band is wider than needed for this residual distribution (worst gap 5.71 percentage points), often because a few large residuals inflate σ above what the bulk requires. Real uncertainty for typical rows is tighter than the interval suggests.
| Nominal level | Half-width | Empirical coverage |
|---|---|---|
| 50 % | 1.364 | 54.55 % |
| 80 % | 2.592 | 85.71 % |
| 90 % | 3.327 | 94.16 % |
| 95 % | 3.964 | 96.75 % |
- Largest miss (percentage points)
- 5.714
- Held-out rows
- 154
- Residual P2.5
- -5.267
- Residual P97.5
- 3.001
- Verdict
- Underconfident
How to read this
Each held-out prediction of Heating load kwh m2 carries a prediction interval, and this chapter checks whether that interval covers the actual value as often as it claims. The interval reported with each prediction is built from the held-out residuals themselves: its bounds are the 2.5th and 97.5th percentiles of the residuals added to the prediction, so it is asymmetric when the residuals are skewed and assumes no particular error distribution.
The coverage table checks a second, simpler band: the symmetric interval that a normal error distribution with the residuals' standard deviation would give. At four nominal levels (50%, 80%, 90% and 95%) it lists the half-width of that normal band and the share of held-out rows whose actual value falls inside it. Empirical coverage close to nominal means the residuals are close enough to normal that the two bands agree and the interval can be taken at face value. Empirical coverage below nominal means the normal band is too narrow, the residuals have heavier tails than a normal distribution, and the percentile-based interval is the one to trust. Empirical coverage above nominal means the normal band is wider than the data needs, usually because a few large residuals inflate the standard deviation. Every figure comes from the same held-out residuals the intervals are built from.
Regression Diagnostics
154 held-out residuals, with a spread up to 9.37 in absolute terms. Mean residual is 0.0227, close to zero. The model is approximately unbiased on these held-out rows (a small held-out set makes this less reliable; the Prediction Chart chapter states R² and the mean absolute error with their 95% confidence intervals). The charts below check whether the errors look like noise: a pattern in residuals-vs-fitted or a curving Q-Q means a structural miss. The held-out rows are a random draw, so their order carries no time and the autocorrelation of the residuals is not assessed.
- Abs residual vs predicted r
- 0.15104
- Bias
- 0.02267
- Bias over residual sd
- 0.01121
- Held-out rows
- 154
- Order
- shuffled
- Residual sd
- 2.023
- Share within normal band
- 0.96753
The notebook draws this chapter's figure from each held-out row; the row-by-row detail is there.
How to read this
Four residual diagnostics for Heating load kwh m2, all computed from the held-out residuals. Each asks in its own way whether the model's errors look like noise, which is what remains when a model has captured all the structure the data holds.
Residuals against predicted values: Each held-out row is plotted with the model's prediction on the horizontal axis and its residual on the vertical axis, around a zero line. A symmetric cloud around zero means errors of similar size across the predicted range and no systematic bias. A funnel or fan means the size of the errors depends on the predicted value: the model is more uncertain in some regions than in others, and its prediction interval is not equally trustworthy everywhere. A curved pattern, a smile or a frown, means the model misses a structural component; the chapters "How each term responds to its inputs" and "How two inputs act together" show the shapes the formula does capture.
Normal Q-Q plot: The sorted residuals are plotted against the quantiles of a normal distribution, with the diagonal marking a perfectly normal set of residuals. Points that hug the line mean approximately normal residuals, so the normal band in the Prediction Interval Coverage chapter will hold. An S-shape means heavier or lighter tails than normal; heavier tails (below the line at the left, above it at the right) mean the model occasionally produces large errors. A banana or arc means skewed residuals: the model is systematically high or low in part of the range.
Histogram: The residuals binned into equal-width intervals. A bell centered on zero means symmetric errors with no bias. An off-center bell means the model is biased, with a mean error away from zero. A long tail or two peaks mean outliers or two regimes inside the prediction range.
Autocorrelation: For each lag, the correlation of the residual sequence with itself shifted by that many rows, with the band that pure noise would stay inside at plus or minus 1.96 divided by the square root of the row count. Bars inside the band mean uncorrelated residuals with no order-dependent structure left. A bar at lag 1 outside the band means the residuals of neighbouring dates correlate: structure in time that the model has not captured. A wave across the lags means periodic structure remains, and the Time Series chapter in the Data section is where to look for its period.
Autocorrelation carries meaning only when the row order itself does. When the data has a date column, the held-out rows are the most recent ones in date order, and the autocorrelation is assessed. Without a date column the held-out rows are a random draw: the row after a held-out row is an arbitrary other row, so the autocorrelation is not assessed and the summary above says so.
Search Progress
The search ran for 172 generations, ending at quality 0.956 (gain +0.16 from generation 0). The curve shows a substantial climb; if the last generations are still rising, a longer time limit is likely to produce a better model. The last improvement came after 30% of the search time: the search had settled well before it stopped, so more time alone is unlikely to change the result.
- First generation
- 2
- First quality
- 79.56 %
- Last generation
- 173
- Last improvement ms
- 4,281,105
- Last quality
- 95.57 %
- Max quality
- 95.57 %
- N points
- 172
- N total generations
- 172
- Search time ms
- 14,400,717
- Stop reason
- Maximum runtime reached
How to read this
The line traces the best quality the search for the Heating load kwh m2 model had reached at each generation, from the first generation to the last. Quality is the technology's combined score on the training rows, the figure the Model Metrics chapter defines. A curve that flattens well before the last generation means the search converged: the budget was more than enough, and the model is the one the search settled on. A curve still rising at the last generation means the budget ended before the search settled, and the model is the best the search reached within it. The chart describes the search, not the data: it says whether the search had time to settle, not whether more rows would help.
Model Constraints
Across 154 held-out predictions, the formula is mathematically well-behaved: every output is finite, stays inside the training-target ±2σ band, and no prediction runs away beyond the bounded-prediction limit. It is safe to consume downstream at face value.
| Name | Status | Detail |
|---|---|---|
| Output coherent | Pass | no non-finite predictions across 154 rows |
| Within domain | Pass | no rows outside the training target's ±2σ range across 154 rows |
| Bounded predictions | Pass | no runaway predictions beyond ±10σ across 154 rows |
- Held-out rows
- 154
- N non finite
- 0
- N outside domain
- 0
- N runaway
- 0
- Verdict
- Clean
How to read this
Sanity checks on the Heating load kwh m2 formula, run against the held-out rows. Three checks: every prediction is a finite number (output coherent), predictions stay within the range of the training target widened by two standard deviations on each side (within domain), and no single prediction runs away more than ten standard deviations from the training mean (bounded predictions).
These are pass or fail guards, not quality measures: a formula can clear all three and still predict poorly. A failure is the stronger signal. It means the formula misbehaves numerically somewhere in the data it was shown, and any downstream use of it should wait until that is understood.
Modeling
Measured during the search, on the rows the model was fitted on
- MAE of a straight line through the inputs (same rows)
- 2.204
- RMSE of a straight line through the inputs (same rows)
- 3.005
- Training MAE (rows the search trained on)
- 1.406
- MAE of always predicting the mean (same rows)
- 9.25
- RMSE of always predicting the mean (same rows)
- 10.26
- Training R² (rows the search trained on)
- 0.96441
- Training RMSE (rows the search trained on)
- 1.935
- Rows the search trained on, measured
- 308
- Error
- 3.01 %
- Inputs the straight line used
- 8
- N train
- 614
- Quality
- 95.56 %
How to read this
The function below trains the model for Heating load kwh m2 on the processed data. Its output is the model that every other chapter of this section scores and dissects.
Findings
2 findings from the model diagnostics (1 Critical, 1 Warning) are listed in the Concerns chapter at the top of the analysis.
Data
Correlations measured between columns are strong and in some cases move in opposite directions, reflecting the structure of this study. Cleanliness checks found no duplicates or leakage. Some column-level relations reversed their sign, and the Concerns chapter flags this.
Most notable in the Data section:
Relative compactnessandSurface area m2move oppositely (correlation -0.992)Overall height mandRoof area m2move oppositely (correlation -0.973)Heating load kwh m2andOverall height mmove together (correlation 0.889)
How to read this
The Data section describes the table as supplied, before any modeling: the Column Profiles overview of every column and its role, one chapter per column with its distribution and correlations, a closer look at columns with notable characteristics, Duplicate Rows, Leakage Suspicion, a map for paired coordinate columns, and the General chapter with descriptive statistics, correlations, missing values, outlier ranges, clusters and segments across all columns.
Column Profiles
Profiled 9 columns across 768 rows (9 numeric, 0 non-numeric): every column is at least 75% populated. Distributional statistics on numeric columns can be read at face value.
| Name | Role | Type | N | Missing | Mean | Std | Min | P25 | Median | P75 | Max | Skewness | CV |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| heating_load_kwh_m2 | Target | number | 768 | 0 | 22.31 | 10.09 | 6.01 | 12.99 | 18.95 | 31.67 | 43.1 | 0.36045 | 0.45233 |
| glazing_area | Input | number | 768 | 0 | 0.23438 | 0.13322 | 0 | 0.1 | 0.25 | 0.4 | 0.4 | -0.06025 | 0.56841 |
| glazing_area_distribution | Input | integer | 768 | 0 | 2.813 | 1.551 | 0 | 1.75 | 3 | 4 | 5 | -0.08869 | 0.55145 |
| orientation | Input | integer | 768 | 0 | 3.5 | 1.119 | 2 | 2.75 | 3.5 | 4.25 | 5 | 0 | 0.31965 |
| overall_height_m | Input | number | 768 | 0 | 5.25 | 1.751 | 3.5 | 3.5 | 5.25 | 7 | 7 | 0 | 0.33355 |
| relative_compactness | Input | number | 768 | 0 | 0.76417 | 0.10578 | 0.62 | 0.6825 | 0.75 | 0.83 | 0.98 | 0.49551 | 0.13842 |
| roof_area_m2 | Input | number | 768 | 0 | 176.6 | 45.17 | 110.3 | 140.9 | 183.8 | 220.5 | 220.5 | -0.16276 | 0.25575 |
| surface_area_m2 | Input | number | 768 | 0 | 671.7 | 88.09 | 514.5 | 606.4 | 673.8 | 741.1 | 808.5 | -0.12513 | 0.13114 |
| wall_area_m2 | Input | number | 768 | 0 | 318.5 | 43.63 | 245 | 294 | 318.5 | 343 | 416.5 | 0.53342 | 0.13697 |
- N columns
- 9
- N high missing
- 0
- N rows
- 768
- N strongly skewed
- 0
- Table branch
- main
- Table ID
- 2395c390-f1c9-4bef-ac31-ddd6445876bb
How to read this
One row per column of the analyzed table: its role in the analysis (the target being predicted, an input it is predicted from, or the segment column), its type, value count and missing count, and for numeric columns the mean, standard deviation, minimum, quartiles, maximum and interquartile range. A column with 25% or more missing values is flagged; its mean and quartiles describe only the rows that have a value.
Two further figures describe the shape of a numeric column. The skewness says whether the values lean to one side: close to zero the column is symmetric, from 0.5 it is moderately skewed and from 1 strongly skewed, with the longer tail on the high side when the figure is positive and on the low side when it is negative. In a strongly skewed column the mean is pulled toward the tail, and the median is the better guide to a typical value. The coefficient of variation is the standard deviation divided by the mean: it compares how widely columns spread regardless of their units, and is given only for a column whose mean is positive.
These are the columns as supplied, before any modeling: the reference against which every later chapter reads.
Glazing area
Glazing area: 0 to 0.4, median 0.25, 4 distinct values.
How to read this
A column chapter profiles one column: its distribution in figures and charts, and how it relates to the other columns. It opens with one line on what the column holds. The Description chapter carries its figures, with every other column summarized for each of its values where it has few, and its association with every other column where it is numeric. The Visualization chapter carries its charts. A table with a date column adds an Over Time and a Time Series chapter; a target with classes adds a Class Balance chapter.
Description
| Statistic | Value |
|---|---|
| Type | number |
| Values present | 768 |
| Distinct values | 4 |
| Continuous | yes |
| Decimal places | 2 |
| Minimum | 0 |
| Maximum | 0.4 |
| Mean | 0.23438 |
| Median | 0.25 |
| Mode | 0.1 |
The first 10 rows of 17. The other 7 are in the notebook.
How to read this
The figures below summarize Glazing area in numbers: where its values center (mean, median, mode), how far they spread (range, variance, standard deviation, interquartile range) and how they are distributed across percentiles. They are the reference for every chart in the Visualization chapter and for the correlation measures further down.
The figures for Glazing area are grouped: the column itself first, then where its values center, how far they spread, the shape of their distribution and its percentiles. Each statistic is explained in the Description chapter under General in the Data section.
By Value
Glazing area accounts for 7.8% of the spread in Heating load kwh m2: 0.4 averages 11.1 above 0 (95% interval 8.56 to 13.7). An association, not a cause.
| Target | Value | Rows | Average or share | 95% interval |
|---|---|---|---|---|
| heating_load_kwh_m2 | 0.4 | 240 | 25.41 | 24.08 to 26.74 |
| heating_load_kwh_m2 | 0.25 | 240 | 22.76 | 21.5 to 24.01 |
| heating_load_kwh_m2 | 0.1 | 240 | 20.36 | 19.2 to 21.51 |
| heating_load_kwh_m2 | 0 | 48 | 14.29 | 12.07 to 16.5 |
| glazing_area | Rows | relative_compactness | orientation | heating_load_kwh_m2 | glazing_area_distribution | wall_area_m2 | overall_height_m | surface_area_m2 | roof_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 0.0 | 48 | 0.76417 | 3.5 | 14.29 | 318.5 | 5.25 | 671.7 | 176.6 | |
| 0.1 | 240 | 0.76417 | 3.5 | 20.36 | 3 | 318.5 | 5.25 | 671.7 | 176.6 |
| 0.25 | 240 | 0.76417 | 3.5 | 22.76 | 3 | 318.5 | 5.25 | 671.7 | 176.6 |
| 0.4 | 240 | 0.76417 | 3.5 | 25.41 | 3 | 318.5 | 5.25 | 671.7 | 176.6 |
How to read this
The rows are grouped by the value of Glazing area, and every other column is summarized within each group with the same descriptive statistics. A statistic that shifts from group to group marks a column that moves with Glazing area; one that stays level marks a column that does not. Groups with few rows produce unstable figures, so the row count of each group is the first thing to read. Where the groups differ in a target by more than chance would give, the chapter states by how much; it states that the two go together, not that one brings the other about.
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| heating_load_kwh_m2 | two numbers | 0.32286 | 0.26984 | 0.20297 to 0.33421 | 0.32286 | 0.26323 | < 0.001 | 768 |
| glazing_area_distribution | two numbers | 0.21296 | 0.21296 | 0.14439 to 0.2795 | 0.18759 | 0.1543 | < 0.001 | 768 |
| orientation | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| overall_height_m | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| relative_compactness | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| roof_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| surface_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| wall_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
How to read this
Each row pairs Glazing area with one other column, numeric or categorical, and reports how strongly the two go together on an association from 0 to 1, and whether an association this strong could be chance. For another numeric column the row adds the direction: Pearson's coefficient measures a straight-line relationship, and Spearman's rho and Kendall's tau measure a monotonic relationship on ranks, which makes them resistant to outliers and lets them see a curved but consistently rising or falling pattern. For a categorical column the association is the correlation ratio η, which has no direction. A strong association is not an explanation: two columns can go together when a third one moves both.
The table lists every other numeric or categorical column against Glazing area, with the pair's kind and association, three correlation coefficients and a confidence interval where the other column is numeric, the q-value and the rows the pair was measured on.
| Measure | Meaning |
|---|---|
| Kind | What the other column holds: a number (numeric) or categories (numeric_categorical). A categorical column is one that is not numeric and holds between 2 and 50 distinct values |
| Association | The strength of the pair from 0 to 1. With a numeric column: the stronger of Pearson's coefficient and Spearman's ρ, without its sign. With a categorical column: the correlation ratio η, the square root of the share of Glazing area's spread that lies between the categories |
| Covariance | Numeric partner only. The direction of the relationship (positive or negative) in the units of the two columns. It is not standardized, so its size says little about strength without the columns' own spread |
| Pearson's Correlation Coefficient | Numeric partner only. The strength and direction of a linear relationship, from -1 (a perfect falling line) through 0 (no linear relationship) to 1 (a perfect rising line) |
| Spearman's ρ | Numeric partner only. The strength and direction of a monotonic relationship, computed on ranks rather than values, from -1 to 1. It follows a curved pattern as long as it rises or falls consistently, and outliers move it little |
| Kendall's τ | Numeric partner only. The strength and direction of association from the agreement and disagreement of rank order across pairs of rows, from -1 to 1. It is the steadier of the two rank measures when the rows are few |
| q-value | How likely a pair this strong is among unrelated columns, adjusted for the number of pairs involving Glazing area (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | Numeric partner only. The lower and upper bounds of the 95% confidence interval on the Pearson coefficient, from the Fisher z-transform. An interval that contains 0 leaves the direction of the relationship open |
| Rows | The rows in which both columns hold a value. The q-value and the interval of a pair rest on this count |
Visualization
The rows of Glazing area are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of 0.00 between each value and the next), so the order carries no pattern to show.
How to read this
The charts in this chapter were chosen from the type of Glazing area and of the columns it is compared with: a numeric column gets a histogram, a box plot and, when its row order carries a pattern, a value sequence, a categorical column gets a frequency chart, and its relation to each target of the analysis, and to the segment column when there is one, gets the chart that suits the pair, with the target on the vertical axis where it is a number. A column is not charted against every other column; which columns move together is shown under Strongest Correlations. The charts complement the figures in the Description chapter; the shape of a distribution and the position of its outliers are easier to see than to read.
Glazing area distribution
Glazing area distribution: 0 to 5, median 3, 6 distinct values.
Description
| Statistic | Value |
|---|---|
| Type | integer |
| Values present | 768 |
| Distinct values | 6 |
| Continuous | no |
| Decimal places | 0 |
| Minimum | 0 |
| Maximum | 5 |
| Mean | 2.813 |
| Median | 3 |
| Mode | 1 |
The first 10 rows of 17. The other 7 are in the notebook.
| Variable | Value | Rows | Share |
|---|---|---|---|
| glazing_area_distribution | 0 | 48 | 6.25 % |
| glazing_area_distribution | 1 | 144 | 18.75 % |
| glazing_area_distribution | 2 | 144 | 18.75 % |
| glazing_area_distribution | 3 | 144 | 18.75 % |
| glazing_area_distribution | 4 | 144 | 18.75 % |
| glazing_area_distribution | 5 | 144 | 18.75 % |
By Value
| glazing_area_distribution | Rows | relative_compactness | orientation | glazing_area | heating_load_kwh_m2 | wall_area_m2 | overall_height_m | surface_area_m2 | roof_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 48 | 0.76417 | 3.5 | 0 | 14.29 | 318.5 | 5.25 | 671.7 | 176.6 |
| 1 | 144 | 0.76417 | 3.5 | 0.25 | 23.03 | 318.5 | 5.25 | 671.7 | 176.6 |
| 2 | 144 | 0.76417 | 3.5 | 0.25 | 22.93 | 318.5 | 5.25 | 671.7 | 176.6 |
| 3 | 144 | 0.76417 | 3.5 | 0.25 | 22.68 | 318.5 | 5.25 | 671.7 | 176.6 |
| 4 | 144 | 0.76417 | 3.5 | 0.25 | 22.89 | 318.5 | 5.25 | 671.7 | 176.6 |
| 5 | 144 | 0.76417 | 3.5 | 0.25 | 22.68 | 318.5 | 5.25 | 671.7 | 176.6 |
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| glazing_area | two numbers | 0.21296 | 0.21296 | 0.14439 to 0.2795 | 0.18759 | 0.1543 | < 0.001 | 768 |
| heating_load_kwh_m2 | two numbers | 0.08737 | 0.08737 | 0.01673 to 0.15714 | 0.06834 | 0.04871 | 0.06176 | 768 |
| orientation | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| overall_height_m | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| relative_compactness | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| roof_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| surface_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| wall_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
Visualization
The rows of Glazing area distribution are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.03 between each value and the next), so the order carries no pattern to show.
Heating load kwh m2
Heating load kwh m2: 6.01 to 43.1, median 18.9, skewed to high values; moves with Overall height m most (r 0.889).
Description
| Statistic | Value |
|---|---|
| Type | number |
| Values present | 768 |
| Distinct values | 587 |
| Continuous | yes |
| Decimal places | 3 |
| Minimum | 6.01 |
| Maximum | 43.1 |
| Mean | 22.31 |
| Median | 18.95 |
| Mode | 15.16 |
The first 10 rows of 17. The other 7 are in the notebook.
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| overall_height_m | two numbers | 0.88943 | 0.88943 | 0.87366 to 0.90334 | 0.86128 | 0.70399 | < 0.001 | 768 |
| roof_area_m2 | two numbers | 0.86183 | -0.86183 | -0.87898 to -0.84245 | -0.80403 | -0.61017 | < 0.001 | 768 |
| surface_area_m2 | two numbers | 0.65812 | -0.65812 | -0.69644 to -0.61606 | -0.62214 | -0.3541 | < 0.001 | 768 |
| relative_compactness | two numbers | 0.62227 | 0.62227 | 0.57692 to 0.6638 | 0.62214 | 0.3541 | < 0.001 | 768 |
| wall_area_m2 | two numbers | 0.47146 | 0.45567 | 0.39775 to 0.50998 | 0.47146 | 0.34238 | < 0.001 | 768 |
| glazing_area | two numbers | 0.32286 | 0.26984 | 0.20297 to 0.33421 | 0.32286 | 0.26323 | < 0.001 | 768 |
| glazing_area_distribution | two numbers | 0.08737 | 0.08737 | 0.01673 to 0.15714 | 0.06834 | 0.04871 | 0.01765 | 768 |
| orientation | two numbers | 0.00417 | -0.00259 | -0.07332 to 0.06817 | -0.00417 | -0.00315 | 0.94294 | 768 |
Visualization
The rows of Heating load kwh m2 are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.02 between each value and the next), so the order carries no pattern to show.
Orientation
Orientation: 2 to 5, median 3.50, 4 distinct values.
Description
| Statistic | Value |
|---|---|
| Type | integer |
| Values present | 768 |
| Distinct values | 4 |
| Continuous | no |
| Decimal places | 0 |
| Minimum | 2 |
| Maximum | 5 |
| Mean | 3.5 |
| Median | 3.5 |
| Mode | 2 |
The first 10 rows of 17. The other 7 are in the notebook.
| Variable | Value | Rows | Share |
|---|---|---|---|
| orientation | 2 | 192 | 25 % |
| orientation | 3 | 192 | 25 % |
| orientation | 4 | 192 | 25 % |
| orientation | 5 | 192 | 25 % |
By Value
| orientation | Rows | relative_compactness | glazing_area | heating_load_kwh_m2 | glazing_area_distribution | wall_area_m2 | overall_height_m | surface_area_m2 | roof_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 2 | 192 | 0.76417 | 0.23438 | 22.31 | 2.813 | 318.5 | 5.25 | 671.7 | 176.6 |
| 3 | 192 | 0.76417 | 0.23438 | 22.38 | 2.813 | 318.5 | 5.25 | 671.7 | 176.6 |
| 4 | 192 | 0.76417 | 0.23438 | 22.26 | 2.813 | 318.5 | 5.25 | 671.7 | 176.6 |
| 5 | 192 | 0.76417 | 0.23438 | 22.28 | 2.813 | 318.5 | 5.25 | 671.7 | 176.6 |
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| heating_load_kwh_m2 | two numbers | 0.00417 | -0.00259 | -0.07332 to 0.06817 | -0.00417 | -0.00315 | 1 | 768 |
| glazing_area | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| glazing_area_distribution | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| overall_height_m | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| relative_compactness | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| roof_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| surface_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| wall_area_m2 | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
Visualization
The rows of Orientation are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.09 between each value and the next), so the order carries no pattern to show.
Overall height m
Overall height m: 3.50 to 7, median 5.25, 2 distinct values; moves opposite to Roof area m2 most (r -0.973).
Description
| Statistic | Value |
|---|---|
| Type | number |
| Values present | 768 |
| Distinct values | 2 |
| Continuous | yes |
| Decimal places | 1 |
| Minimum | 3.5 |
| Maximum | 7 |
| Mean | 5.25 |
| Median | 5.25 |
| Mode | 3.5 |
The first 10 rows of 17. The other 7 are in the notebook.
By Value
Overall height m accounts for 79% of the spread in Heating load kwh m2: 7 averages 17.9 above 3.5 (95% interval 17.3 to 18.6). An association, not a cause.
| Target | Value | Rows | Average or share | 95% interval |
|---|---|---|---|---|
| heating_load_kwh_m2 | 7 | 384 | 31.28 | 30.68 to 31.87 |
| heating_load_kwh_m2 | 3.5 | 384 | 13.34 | 13.07 to 13.61 |
| overall_height_m | Rows | relative_compactness | orientation | glazing_area | heating_load_kwh_m2 | glazing_area_distribution | wall_area_m2 | surface_area_m2 | roof_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 3.5 | 384 | 0.67667 | 3.5 | 0.23438 | 13.34 | 2.813 | 306.3 | 747.3 | 220.5 |
| 7.0 | 384 | 0.85167 | 3.5 | 0.23438 | 31.28 | 2.813 | 330.8 | 596.2 | 132.7 |
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| roof_area_m2 | two numbers | 0.97251 | -0.97251 | -0.9761 to -0.96839 | -0.93704 | -0.87519 | < 0.001 | 768 |
| heating_load_kwh_m2 | two numbers | 0.88943 | 0.88943 | 0.87366 to 0.90334 | 0.86128 | 0.70399 | < 0.001 | 768 |
| relative_compactness | two numbers | 0.86905 | 0.82775 | 0.80409 to 0.84879 | 0.86905 | 0.73855 | < 0.001 | 768 |
| surface_area_m2 | two numbers | 0.86905 | -0.85815 | -0.87573 to -0.8383 | -0.86905 | -0.73855 | < 0.001 | 768 |
| wall_area_m2 | two numbers | 0.28098 | 0.28098 | 0.21449 to 0.34487 | 0.22076 | 0.19528 | < 0.001 | 768 |
| glazing_area | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| glazing_area_distribution | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| orientation | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
Visualization
The rows of Overall height m are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.03 between each value and the next), so the order carries no pattern to show.
Relative compactness
Relative compactness: 0.62 to 0.98, median 0.75, 12 distinct values; moves opposite to Surface area m2 most (r -0.992).
Description
| Statistic | Value |
|---|---|
| Type | number |
| Values present | 768 |
| Distinct values | 12 |
| Continuous | yes |
| Decimal places | 2 |
| Minimum | 0.62 |
| Maximum | 0.98 |
| Mean | 0.76417 |
| Median | 0.75 |
| Mode | 0.62 |
The first 10 rows of 17. The other 7 are in the notebook.
By Value
Relative compactness accounts for 90.7% of the spread in Heating load kwh m2: 0.79 averages 26.7 above 0.74 (95% interval 25.7 to 27.7). An association, not a cause.
| Target | Value | Rows | Average or share | 95% interval |
|---|---|---|---|---|
| heating_load_kwh_m2 | 0.79 | 64 | 38.61 | 37.77 to 39.45 |
| heating_load_kwh_m2 | 0.76 | 64 | 35.66 | 34.62 to 36.71 |
| heating_load_kwh_m2 | 0.9 | 64 | 31.63 | 30.64 to 32.62 |
| heating_load_kwh_m2 | 0.86 | 64 | 28.55 | 27.71 to 29.39 |
| heating_load_kwh_m2 | 0.98 | 64 | 27.65 | 26.51 to 28.78 |
| heating_load_kwh_m2 | 0.82 | 64 | 25.56 | 24.75 to 26.36 |
| heating_load_kwh_m2 | 0.64 | 64 | 16.62 | 16.09 to 17.14 |
| heating_load_kwh_m2 | 0.62 | 64 | 14.28 | 13.74 to 14.83 |
| heating_load_kwh_m2 | 0.66 | 64 | 12.82 | 12.29 to 13.34 |
| heating_load_kwh_m2 | 0.69 | 64 | 12.39 | 11.9 to 12.88 |
The first 10 rows of 12. The other 2 are in the notebook.
| relative_compactness | Rows | orientation | glazing_area | heating_load_kwh_m2 | glazing_area_distribution | wall_area_m2 | overall_height_m | surface_area_m2 | roof_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 0.62 | 64 | 3.5 | 0.23438 | 14.28 | 2.813 | 367.5 | 3.5 | 808.5 | 220.5 |
| 0.64 | 64 | 3.5 | 0.23438 | 16.62 | 2.813 | 343 | 3.5 | 784 | 220.5 |
| 0.66 | 64 | 3.5 | 0.23438 | 12.82 | 2.813 | 318.5 | 3.5 | 759.5 | 220.5 |
| 0.69 | 64 | 3.5 | 0.23438 | 12.39 | 2.813 | 294 | 3.5 | 735 | 220.5 |
| 0.71 | 64 | 3.5 | 0.23438 | 12.04 | 2.813 | 269.5 | 3.5 | 710.5 | 220.5 |
| 0.74 | 64 | 3.5 | 0.23438 | 11.89 | 2.813 | 245 | 3.5 | 686 | 220.5 |
| 0.76 | 64 | 3.5 | 0.23438 | 35.66 | 2.813 | 416.5 | 7 | 661.5 | 122.5 |
| 0.79 | 64 | 3.5 | 0.23438 | 38.61 | 2.813 | 343 | 7 | 637 | 147 |
| 0.82 | 64 | 3.5 | 0.23438 | 25.56 | 2.813 | 318.5 | 7 | 612.5 | 147 |
| 0.86 | 64 | 3.5 | 0.23438 | 28.55 | 2.813 | 294 | 7 | 588 | 147 |
The first 10 rows of 12. The other 2 are in the notebook.
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| surface_area_m2 | two numbers | 1 | -0.9919 | -0.99297 to -0.99067 | -1 | -1 | < 0.001 | 768 |
| roof_area_m2 | two numbers | 0.87089 | -0.86882 | -0.88516 to -0.85035 | -0.87089 | -0.73614 | < 0.001 | 768 |
| overall_height_m | two numbers | 0.86905 | 0.82775 | 0.80409 to 0.84879 | 0.86905 | 0.73855 | < 0.001 | 768 |
| heating_load_kwh_m2 | two numbers | 0.62227 | 0.62227 | 0.57692 to 0.6638 | 0.62214 | 0.3541 | < 0.001 | 768 |
| wall_area_m2 | two numbers | 0.25581 | -0.20378 | -0.27063 to -0.13498 | -0.25581 | -0.27243 | < 0.001 | 768 |
| glazing_area | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| glazing_area_distribution | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| orientation | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
Visualization
The rows of Relative compactness are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.08 between each value and the next), so the order carries no pattern to show.
Roof area m2
Roof area m2: 110 to 221, median 184, 4 distinct values; moves opposite to Overall height m most (r -0.973).
Description
| Statistic | Value |
|---|---|
| Type | number |
| Values present | 768 |
| Distinct values | 4 |
| Continuous | yes |
| Decimal places | 2 |
| Minimum | 110.3 |
| Maximum | 220.5 |
| Mean | 176.6 |
| Median | 183.8 |
| Mode | 220.5 |
The first 10 rows of 17. The other 7 are in the notebook.
By Value
Roof area m2 accounts for 81% of the spread in Heating load kwh m2: 122.5 averages 20.3 above 220.5 (95% interval 19.5 to 21.1). An association, not a cause.
| Target | Value | Rows | Average or share | 95% interval |
|---|---|---|---|---|
| heating_load_kwh_m2 | 122.5 | 128 | 33.65 | 32.85 to 34.44 |
| heating_load_kwh_m2 | 147 | 192 | 30.91 | 29.98 to 31.83 |
| heating_load_kwh_m2 | 110.25 | 64 | 27.65 | 26.51 to 28.78 |
| heating_load_kwh_m2 | 220.5 | 384 | 13.34 | 13.07 to 13.61 |
| roof_area_m2 | Rows | relative_compactness | orientation | glazing_area | heating_load_kwh_m2 | glazing_area_distribution | wall_area_m2 | overall_height_m | surface_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 110.25 | 64 | 0.98 | 3.5 | 0.23438 | 27.65 | 2.813 | 294 | 7 | 514.5 |
| 122.5 | 128 | 0.83 | 3.5 | 0.23438 | 33.65 | 2.813 | 367.5 | 7 | 612.5 |
| 147.0 | 192 | 0.82333 | 3.5 | 0.23438 | 30.91 | 2.813 | 318.5 | 7 | 612.5 |
| 220.5 | 384 | 0.67667 | 3.5 | 0.23438 | 13.34 | 2.813 | 306.3 | 3.5 | 747.3 |
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| overall_height_m | two numbers | 0.97251 | -0.97251 | -0.9761 to -0.96839 | -0.93704 | -0.87519 | < 0.001 | 768 |
| surface_area_m2 | two numbers | 0.88072 | 0.88072 | 0.86379 to 0.89566 | 0.87089 | 0.73614 | < 0.001 | 768 |
| relative_compactness | two numbers | 0.87089 | -0.86882 | -0.88516 to -0.85035 | -0.87089 | -0.73614 | < 0.001 | 768 |
| heating_load_kwh_m2 | two numbers | 0.86183 | -0.86183 | -0.87898 to -0.84245 | -0.80403 | -0.61017 | < 0.001 | 768 |
| wall_area_m2 | two numbers | 0.29232 | -0.29232 | -0.35571 to -0.22625 | -0.19346 | -0.15192 | < 0.001 | 768 |
| glazing_area | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| glazing_area_distribution | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| orientation | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
Visualization
The rows of Roof area m2 are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.04 between each value and the next), so the order carries no pattern to show.
Surface area m2
Surface area m2: 515 to 809, median 674, 12 distinct values; moves opposite to Relative compactness most (r -0.992).
Description
| Statistic | Value |
|---|---|
| Type | number |
| Values present | 768 |
| Distinct values | 12 |
| Continuous | yes |
| Decimal places | 1 |
| Minimum | 514.5 |
| Maximum | 808.5 |
| Mean | 671.7 |
| Median | 673.8 |
| Mode | 514.5 |
The first 10 rows of 17. The other 7 are in the notebook.
By Value
Surface area m2 accounts for 90.7% of the spread in Heating load kwh m2: 637 averages 26.7 above 686 (95% interval 25.7 to 27.7). An association, not a cause.
| Target | Value | Rows | Average or share | 95% interval |
|---|---|---|---|---|
| heating_load_kwh_m2 | 637 | 64 | 38.61 | 37.77 to 39.45 |
| heating_load_kwh_m2 | 661.5 | 64 | 35.66 | 34.62 to 36.71 |
| heating_load_kwh_m2 | 563.5 | 64 | 31.63 | 30.64 to 32.62 |
| heating_load_kwh_m2 | 588 | 64 | 28.55 | 27.71 to 29.39 |
| heating_load_kwh_m2 | 514.5 | 64 | 27.65 | 26.51 to 28.78 |
| heating_load_kwh_m2 | 612.5 | 64 | 25.56 | 24.75 to 26.36 |
| heating_load_kwh_m2 | 784 | 64 | 16.62 | 16.09 to 17.14 |
| heating_load_kwh_m2 | 808.5 | 64 | 14.28 | 13.74 to 14.83 |
| heating_load_kwh_m2 | 759.5 | 64 | 12.82 | 12.29 to 13.34 |
| heating_load_kwh_m2 | 735 | 64 | 12.39 | 11.9 to 12.88 |
The first 10 rows of 12. The other 2 are in the notebook.
| surface_area_m2 | Rows | relative_compactness | orientation | glazing_area | heating_load_kwh_m2 | glazing_area_distribution | wall_area_m2 | overall_height_m | roof_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 514.5 | 64 | 0.98 | 3.5 | 0.23438 | 27.65 | 2.813 | 294 | 7 | 110.3 |
| 563.5 | 64 | 0.9 | 3.5 | 0.23438 | 31.63 | 2.813 | 318.5 | 7 | 122.5 |
| 588.0 | 64 | 0.86 | 3.5 | 0.23438 | 28.55 | 2.813 | 294 | 7 | 147 |
| 612.5 | 64 | 0.82 | 3.5 | 0.23438 | 25.56 | 2.813 | 318.5 | 7 | 147 |
| 637.0 | 64 | 0.79 | 3.5 | 0.23438 | 38.61 | 2.813 | 343 | 7 | 147 |
| 661.5 | 64 | 0.76 | 3.5 | 0.23438 | 35.66 | 2.813 | 416.5 | 7 | 122.5 |
| 686.0 | 64 | 0.74 | 3.5 | 0.23438 | 11.89 | 2.813 | 245 | 3.5 | 220.5 |
| 710.5 | 64 | 0.71 | 3.5 | 0.23438 | 12.04 | 2.813 | 269.5 | 3.5 | 220.5 |
| 735.0 | 64 | 0.69 | 3.5 | 0.23438 | 12.39 | 2.813 | 294 | 3.5 | 220.5 |
| 759.5 | 64 | 0.66 | 3.5 | 0.23438 | 12.82 | 2.813 | 318.5 | 3.5 | 220.5 |
The first 10 rows of 12. The other 2 are in the notebook.
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| relative_compactness | two numbers | 1 | -0.9919 | -0.99297 to -0.99067 | -1 | -1 | < 0.001 | 768 |
| roof_area_m2 | two numbers | 0.88072 | 0.88072 | 0.86379 to 0.89566 | 0.87089 | 0.73614 | < 0.001 | 768 |
| overall_height_m | two numbers | 0.86905 | -0.85815 | -0.87573 to -0.8383 | -0.86905 | -0.73855 | < 0.001 | 768 |
| heating_load_kwh_m2 | two numbers | 0.65812 | -0.65812 | -0.69644 to -0.61606 | -0.62214 | -0.3541 | < 0.001 | 768 |
| wall_area_m2 | two numbers | 0.25581 | 0.1955 | 0.12651 to 0.26262 | 0.25581 | 0.27243 | < 0.001 | 768 |
| glazing_area | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| glazing_area_distribution | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| orientation | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
Visualization
The rows of Surface area m2 are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.08 between each value and the next), so the order carries no pattern to show.
Wall area m2
Wall area m2: 245 to 417, median 319, 7 distinct values; moves with Heating load kwh m2 most (r 0.456).
Description
| Statistic | Value |
|---|---|
| Type | number |
| Values present | 768 |
| Distinct values | 7 |
| Continuous | yes |
| Decimal places | 1 |
| Minimum | 245 |
| Maximum | 416.5 |
| Mean | 318.5 |
| Median | 318.5 |
| Mode | 294.0 |
The first 10 rows of 17. The other 7 are in the notebook.
By Value
Wall area m2 accounts for 42% of the spread in Heating load kwh m2: 416.5 averages 23.8 above 245 (95% interval 22.6 to 24.9). An association, not a cause.
| Target | Value | Rows | Average or share | 95% interval |
|---|---|---|---|---|
| heating_load_kwh_m2 | 416.5 | 64 | 35.66 | 34.62 to 36.71 |
| heating_load_kwh_m2 | 343 | 128 | 27.61 | 25.62 to 29.6 |
| heating_load_kwh_m2 | 318.5 | 192 | 23.33 | 22.13 to 24.54 |
| heating_load_kwh_m2 | 294 | 192 | 22.86 | 21.7 to 24.03 |
| heating_load_kwh_m2 | 367.5 | 64 | 14.28 | 13.74 to 14.83 |
| heating_load_kwh_m2 | 269.5 | 64 | 12.04 | 11.53 to 12.55 |
| heating_load_kwh_m2 | 245 | 64 | 11.89 | 11.33 to 12.44 |
| wall_area_m2 | Rows | relative_compactness | orientation | glazing_area | heating_load_kwh_m2 | glazing_area_distribution | overall_height_m | surface_area_m2 | roof_area_m2 |
|---|---|---|---|---|---|---|---|---|---|
| 245.0 | 64 | 0.74 | 3.5 | 0.23438 | 11.89 | 2.813 | 3.5 | 686 | 220.5 |
| 269.5 | 64 | 0.71 | 3.5 | 0.23438 | 12.04 | 2.813 | 3.5 | 710.5 | 220.5 |
| 294.0 | 192 | 0.84333 | 3.5 | 0.23438 | 22.86 | 2.813 | 5.833 | 612.5 | 159.3 |
| 318.5 | 192 | 0.79333 | 3.5 | 0.23438 | 23.33 | 2.813 | 5.833 | 645.2 | 163.3 |
| 343.0 | 128 | 0.715 | 3.5 | 0.23438 | 27.61 | 2.813 | 5.25 | 710.5 | 183.8 |
| 367.5 | 64 | 0.62 | 3.5 | 0.23438 | 14.28 | 2.813 | 3.5 | 808.5 | 220.5 |
| 416.5 | 64 | 0.76 | 3.5 | 0.23438 | 35.66 | 2.813 | 7 | 661.5 | 122.5 |
Correlation
| Column | Pair of | Association | Pearson's r | 95% CI (Pearson) | Spearman's ρ | Kendall's τ | q-value | Rows |
|---|---|---|---|---|---|---|---|---|
| heating_load_kwh_m2 | two numbers | 0.47146 | 0.45567 | 0.39775 to 0.50998 | 0.47146 | 0.34238 | < 0.001 | 768 |
| roof_area_m2 | two numbers | 0.29232 | -0.29232 | -0.35571 to -0.22625 | -0.19346 | -0.15192 | < 0.001 | 768 |
| overall_height_m | two numbers | 0.28098 | 0.28098 | 0.21449 to 0.34487 | 0.22076 | 0.19528 | < 0.001 | 768 |
| relative_compactness | two numbers | 0.25581 | -0.20378 | -0.27063 to -0.13498 | -0.25581 | -0.27243 | < 0.001 | 768 |
| surface_area_m2 | two numbers | 0.25581 | 0.1955 | 0.12651 to 0.26262 | 0.25581 | 0.27243 | < 0.001 | 768 |
| glazing_area | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| glazing_area_distribution | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
| orientation | two numbers | 0 | 0 | -0.07075 to 0.07075 | 0 | 0 | 1 | 768 |
Visualization
The rows of Wall area m2 are not charted in their order: consecutive rows are no more alike than rows picked at random (a correlation of -0.03 between each value and the next), so the order carries no pattern to show.
Duplicate Rows
Across 768 rows the table has no exact duplicates: every row's value vector is unique across all columns, so the row count reflects distinct rows.
- Largest group size
- 0
- N exact duplicates
- 0
- N exact groups
- 0
- N rows
- 768
- N unique
- 768
- Pct exact duplicates
- 0
- Verdict
- Clean
How to read this
This chapter counts rows that repeat another row exactly, value for value: how many rows take part in a duplicate group, how many groups exist, and how large the largest group is.
Duplicate rows inflate the apparent row count and can place identical rows on both sides of the training and held-out split, which flatters every quality figure in this report. Only exact repeats are detected here; rows that differ by a rounding digit or a whitespace variant count as distinct.
Leakage Suspicion
Nothing to check. No column that awaits an answer tracks a target at 0.95 or more, so no column on its own gives a target away.
- Critical threshold
- 0.999
- N confirmed
- 0
- N critical
- 0
- N suspects
- 0
- Threshold
- 0.95
- Verdict
- Clean
How to read this
For every column that is not a target, this chapter reads how closely the column tracks each target, on an association from 0 to 1, and lists any pair at 0.95 or more. For two numeric columns the association is the stronger of Pearson's r and Spearman's rho; when the column or the target is categorical it is the correlation ratio η, or Cramér's V when both are. At 0.999 or more the column reproduces the target: that is what a copy or a rescaled copy of it looks like.
A listed column poses one question: is its value known before the target's value exists? If it is, the column is a strong predictor and the quality stated in this report is real. If it was computed from the target or recorded after it, a formula that reads it looks right on these rows and will not hold on new data. The coefficients read the same in both cases; the answer needs someone who knows where the column came from.
The owner of the analysis can give that answer. A column confirmed as known before the outcome is listed as confirmed and is no longer a suspect. A column that turns out to be a leak is left out of the fit, and the analysis run again.
General
Clustering found no clear groups. The best grouping of the 768 complete rows over 8 numeric columns is into 2 groups, with a silhouette of 0.391 (on a scale where 1 is fully separate groups and 0 is none), below the 0.50 that clear structure shows, so no Clusters chapter is written.
| Groups | Silhouette | Inertia | Kept |
|---|---|---|---|
| 2 | 0.3906 | 3492.7 | yes |
| 3 | 0.2947 | 3079.5 | |
| 4 | 0.22 | 2694 | |
| 5 | 0.2069 | 2470.9 | |
| 6 | 0.1905 | 2301.2 |
- Inertia
- 3492.7
- K
- 2
- N columns used
- 8
- N rows
- 768
- N rows complete
- 768
- Silhouette
- 0.3906
- Verdict
- Weak
How to read this
The General chapter covers what holds across all columns together: descriptive statistics, correlations, missing values and outlier ranges under Description, the Clusters found among the rows, and, when a segment column was chosen, the Segments.
Description
| Variable | Type | Values present | Distinct values | Continuous | Decimal places |
|---|---|---|---|---|---|
| relative_compactness | number | 768 | 12 | yes | 2 |
| orientation | integer | 768 | 4 | no | 0 |
| glazing_area | number | 768 | 4 | yes | 2 |
| heating_load_kwh_m2 | number | 768 | 587 | yes | 3 |
| glazing_area_distribution | integer | 768 | 6 | no | 0 |
| wall_area_m2 | number | 768 | 7 | yes | 1 |
| overall_height_m | number | 768 | 2 | yes | 1 |
| surface_area_m2 | number | 768 | 12 | yes | 1 |
| roof_area_m2 | number | 768 | 4 | yes | 2 |
| Variable | Mean | Median | Mode |
|---|---|---|---|
| relative_compactness | 0.76417 | 0.75 | 0.62 |
| orientation | 3.5 | 3.5 | 2 |
| glazing_area | 0.23438 | 0.25 | 0.1 |
| heating_load_kwh_m2 | 22.31 | 18.95 | 15.16 |
| glazing_area_distribution | 2.813 | 3 | 1 |
| wall_area_m2 | 318.5 | 318.5 | 294.0 |
| overall_height_m | 5.25 | 5.25 | 3.5 |
| surface_area_m2 | 671.7 | 673.8 | 514.5 |
| roof_area_m2 | 176.6 | 183.8 | 220.5 |
| Variable | Minimum | Maximum | Standard deviation | Variance | Interquartile range | Sum |
|---|---|---|---|---|---|---|
| relative_compactness | 0.62 | 0.98 | 0.10578 | 0.01119 | 0.1475 | 586.9 |
| orientation | 2 | 5 | 1.119 | 1.252 | 1.5 | 2688 |
| glazing_area | 0 | 0.4 | 0.13322 | 0.01775 | 0.3 | 180 |
| heating_load_kwh_m2 | 6.01 | 43.1 | 10.09 | 101.8 | 18.68 | 17131.9 |
| glazing_area_distribution | 0 | 5 | 1.551 | 2.405 | 2.25 | 2160 |
| wall_area_m2 | 245 | 416.5 | 43.63 | 1903.3 | 49 | 244,608 |
| overall_height_m | 3.5 | 7 | 1.751 | 3.066 | 3.5 | 4032 |
| surface_area_m2 | 514.5 | 808.5 | 88.09 | 7759.2 | 134.8 | 515,872 |
| roof_area_m2 | 110.3 | 220.5 | 45.17 | 2040 | 79.63 | 135,632 |
| Variable | Skewness | Kurtosis | Total sum of squares |
|---|---|---|---|
| relative_compactness | 0.49551 | -0.70657 | 8.582 |
| orientation | 0 | -1.361 | 960 |
| glazing_area | -0.06025 | -1.328 | 13.61 |
| heating_load_kwh_m2 | 0.36045 | -1.246 | 78090 |
| glazing_area_distribution | -0.08869 | -1.149 | 1845 |
| wall_area_m2 | 0.53342 | 0.11659 | 1,459,808 |
| overall_height_m | 0 | -2.005 | 2352 |
| surface_area_m2 | -0.12513 | -1.059 | 5,951,279 |
| roof_area_m2 | -0.16276 | -1.777 | 1,564,652 |
| Variable | Value | Rows | Share |
|---|---|---|---|
| orientation | 2 | 192 | 25 % |
| orientation | 3 | 192 | 25 % |
| orientation | 4 | 192 | 25 % |
| orientation | 5 | 192 | 25 % |
| glazing_area_distribution | 0 | 48 | 6.25 % |
| glazing_area_distribution | 1 | 144 | 18.75 % |
| glazing_area_distribution | 2 | 144 | 18.75 % |
| glazing_area_distribution | 3 | 144 | 18.75 % |
| glazing_area_distribution | 4 | 144 | 18.75 % |
| glazing_area_distribution | 5 | 144 | 18.75 % |
How to read this
This chapter summarizes every column at once: the descriptive statistics table below, then Correlation, Missing Values and Outliers. For a numeric column the table reports its center (mean, median, mode), its spread (standard deviation, variance, interquartile range, percentiles) and its shape (skewness, kurtosis); for a categorical column it reports the count and share of each category.
Each row of the tables describes one column. The statistics are grouped: the column itself, where its values center, how far they spread, what shape their distribution takes, and its percentiles. They read as follows.
| Statistic | Explanation |
|---|---|
| Variable | Name of the column the statistics in the row describe |
| Type | Type assigned during data processing (bool, integer, number, decimal, text or date) |
| Values present | Number of rows in which the column holds a value |
| Distinct values | Number of different values the column holds |
| Continuous | Whether the column can take any value in a range, as opposed to a discrete column limited to a fixed set of values |
| Decimal places | Length of the fractional part of the values |
| Mean | Arithmetic average: the sum of all values divided by the number of values |
| Median | The middle value: half of the values lie at or below it and half at or above it. It is also the 50 % percentile |
| Mode | The value that appears most often |
| Minimum | Smallest numeric value in the column |
The first 10 rows of 20. The other 10 are in the notebook.
Missing Values
No column has a missing value: all 768 rows are complete.
- N columns with missing
- 0
- N complete rows
- 768
- N rows
- 768
- Pct complete rows
- 100
How to read this
The table lists, for each column, the count of present values (Values) beside the row count of the processed table (Rows), the number of missing values and their share. The larger the share, the less any statistic or model built on the column can be trusted.
- Below 5% missing: safe to use as it is.
- 5% to 25% missing: usable; filling the gaps or excluding those rows is worth considering.
- 25% or more missing: the column is flagged and receives its own chapter in the Data section. Verify why so much is missing before trusting any result that depends on it.
A model is computed only on rows that hold a value in every column it reads, so gaps spread over several columns cost more rows than any one column's share suggests. The last column, Complete rows without, shows for each input with gaps how many rows would be complete if that column were left out; it is blank for a column without gaps, for a target, and for a column no model reads. A column that is the only gap in many rows is the one whose removal keeps the most data.
Outliers
None of the 9 numeric columns has a value beyond the Tukey fences (1.5 times the interquartile range outside the quartiles).
| Column | Values | Lower fence | Upper fence | Below | Above | Share |
|---|---|---|---|---|---|---|
| glazing_area | 768 | -0.35 | 0.85 | 0 | 0 | 0 % |
| glazing_area_distribution | 768 | -1.625 | 7.375 | 0 | 0 | 0 % |
| heating_load_kwh_m2 | 768 | -15.02 | 59.68 | 0 | 0 | 0 % |
| orientation | 768 | 0.5 | 6.5 | 0 | 0 | 0 % |
| overall_height_m | 768 | -1.75 | 12.25 | 0 | 0 | 0 % |
| relative_compactness | 768 | 0.46125 | 1.051 | 0 | 0 | 0 % |
| roof_area_m2 | 768 | 21.44 | 339.9 | 0 | 0 | 0 % |
| surface_area_m2 | 768 | 404.3 | 943.3 | 0 | 0 | 0 % |
| wall_area_m2 | 768 | 220.5 | 416.5 | 0 | 0 | 0 % |
- N columns
- 9
- N columns assessed
- 9
- N columns with outliers
- 0
How to read this
The table counts the outliers of every numeric column by the Tukey rule. Q1 and Q3 are the values below which 25% and 75% of a column's values fall, and the interquartile range is Q3 minus Q1. The lower fence lies 1.5 times the interquartile range below Q1, the upper fence the same distance above Q3; a value beyond a fence is an outlier. For each column the table gives both fences, how many values lie below and above them, their share of the column's values, and the single value that lies furthest beyond its fence. These are the same fences the box plots draw their whiskers to.
A column is not assessed when it has fewer than four values, or when the middle half of its values sits on a single number: the interquartile range is then zero and the rule would call every other value an outlier.
Extreme values can be real (rare but legitimate rows) or errors (measurement mistakes, data-entry slips). Which case applies decides whether to keep, clip or drop them before trusting a model that uses the column. A strongly skewed column has many values beyond one fence without any of them being wrong.
Correlation
36 column pairs analyzed across 768 rows; 18 (50%) clear the q < 0.05 significance bar after the Benjamini-Hochberg correction for testing many pairs. A pair that does not clear it may still show a large association, but one that is not distinguishable from chance on the rows the pair was measured on. An association states that two columns go together, not that one brings the other about.
- N categorical pairs
- 0
- N mixed pairs
- 0
- N numeric pairs
- 36
- N pairs
- 36
- N samples
- 768
- N significant
- 18
| Association | 95 % CI | Dependent | Independent | Kendall | Kind | N | Pearson | Q value | Spearman |
|---|---|---|---|---|---|---|---|---|---|
| 1 | -0.99297, -0.99067 | relative_compactness | surface_area_m2 | -1 | numeric | 768 | -0.9919 | < 0.001 | -1 |
| 0.97251 | -0.9761, -0.96839 | overall_height_m | roof_area_m2 | -0.87519 | numeric | 768 | -0.97251 | < 0.001 | -0.93704 |
| 0.88943 | 0.87366, 0.90334 | heating_load_kwh_m2 | overall_height_m | 0.70399 | numeric | 768 | 0.88943 | < 0.001 | 0.86128 |
| 0.88072 | 0.86379, 0.89566 | roof_area_m2 | surface_area_m2 | 0.73614 | numeric | 768 | 0.88072 | < 0.001 | 0.87089 |
| 0.87089 | -0.88516, -0.85035 | relative_compactness | roof_area_m2 | -0.73614 | numeric | 768 | -0.86882 | < 0.001 | -0.87089 |
| 0.86905 | 0.80409, 0.84879 | overall_height_m | relative_compactness | 0.73855 | numeric | 768 | 0.82775 | < 0.001 | 0.86905 |
| 0.86905 | -0.87573, -0.8383 | overall_height_m | surface_area_m2 | -0.73855 | numeric | 768 | -0.85815 | < 0.001 | -0.86905 |
| 0.86183 | -0.87898, -0.84245 | heating_load_kwh_m2 | roof_area_m2 | -0.61017 | numeric | 768 | -0.86183 | < 0.001 | -0.80403 |
| 0.65812 | -0.69644, -0.61606 | heating_load_kwh_m2 | surface_area_m2 | -0.3541 | numeric | 768 | -0.65812 | < 0.001 | -0.62214 |
| 0.62227 | 0.57692, 0.6638 | heating_load_kwh_m2 | relative_compactness | 0.3541 | numeric | 768 | 0.62227 | < 0.001 | 0.62214 |
The first 10 rows of 24. The other 14 are in the notebook.
How to read this
This chapter measures how pairs of columns go together: the Correlation Measures table below, the Strongest Correlations, the Correlation Heatmap and, when the analysis has targets, the Potential Data Leaks. Numeric columns and categorical columns are both paired, a categorical column being one that is not numeric and holds between 2 and 50 distinct values. Every pair is stated as an association from 0 (unrelated) to 1 (one column gives the other away), so pairs of different kinds can be compared. An association states that two columns go together, not that one brings the other about.
The table lists every pair of columns once, with its kind, its association, the figures of its kind, its q-value and the number of rows the pair was measured on. A pair is measured on the rows where both columns hold a value.
| Measure | Explanation |
|---|---|
| Kind | What the two columns hold: two numbers (numeric), a number and a category (numeric_categorical), or two categories (categorical) |
| Association | Strength of the pair from 0 to 1, whatever its kind. Two numbers: the stronger of Pearson's coefficient and Spearman's ρ, without its sign. A number and a category: the correlation ratio η. Two categories: Cramér's V |
| Covariance | Two numbers only. Direction of the relationship (positive or negative) in the units of the two columns. It is not standardized, so its size says little about strength without further context |
| Pearson's Correlation Coefficient | Two numbers only. Strength and direction of a linear relationship, from -1 (perfect negative) through 0 (no linear relationship) to 1 (perfect positive) |
| Spearman's ρ | Two numbers only. Strength and direction of a monotonic relationship, computed on ranks rather than values. It captures relationships that consistently rise or fall even when they are not linear, and it is less affected by extreme values |
| Kendall's τ | Two numbers only. Strength and direction of a monotonic relationship based on the concordance of ranks between the two columns. More conservative than Spearman's ρ, and steadier on small tables |
| Correlation ratio η | A number and a category. The square root of the share of the number's spread that lies between the categories, from 0 (every category has the same average) to 1 (the category fixes the number). For a category of two values it equals the absolute Pearson coefficient with the category coded 0 and 1. Its square, η², is that share: an η of 0.6 means the categories account for 36% of the spread |
| Cramér's V | Two categories. How far the table of counts of the two columns departs from what unrelated columns would give, from 0 (unrelated) to 1 (each value of one column goes with one value of the other), corrected so that columns with many rare values do not read as related |
| q-value | How likely a pair this strong is among unrelated columns, adjusted for the number of pairs listed (Benjamini-Hochberg false-discovery rate). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries. The right measure for ranking many pairs |
| 95% CI (Pearson) | Two numbers only. Lower and upper bounds of the 95% confidence interval on the Pearson coefficient, via the Fisher z-transform, on the rows the pair was measured on. A narrow interval means the coefficient is well estimated; a wide interval that straddles zero means the relationship is uncertain |
The first 10 rows of 12. The other 2 are in the notebook.
Strongest Correlations
The 20 pairs of columns with the smallest q-values: the associations that remain significant after the Benjamini-Hochberg adjustment for the number of pairs tested. Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries; a pair above 0.05 may be coincidence even when its association looks strong.
A pair with an association above 0.9 often signals a duplicate or derived column. Moderately strong pairs with a low q-value are the relationships most worth investigating.
Each listed pair is drawn below, the picture behind the figure. Two numbers are drawn as a scatter, one point per row, the quickest way to see whether a strong value rests on a trend or on a few rows far from the rest. A number and a category are drawn as the number's box plot per category. Two categories are drawn as a heat map of how many rows hold each combination of values.
Correlation Heatmap
Every pair of columns colored by its association, on one scale for every kind of pair: pale at 0, where two columns are unrelated, to dark at 1, where one gives the other away. The scale is fixed, so a color means the same strength in every analysis. A pair of two numeric columns also has a direction, which the color does not show: a plus sign marks a pair that rises together and a minus sign one where a column rises as the other falls. A pair with a categorical column has no direction and carries no sign. The diagonal is each column with itself and always sits at 1. Off-diagonal blocks of dark cells point to groups of columns that carry the same information.
Potential Data Leaks
The table lists the association between every column and each target, whatever the two hold, with its q-value. An association close to 1 with a target, together with a q-value near zero, is one of two things: a strong predictor, or a data leak, a column derived from the target after the fact, such as a tax amount computed from the price being predicted. A leaked column trains a model that looks perfect and fails on new data, because the leak is not available at prediction time.
The Leakage Suspicion chapter in the Data section lists the pairs at 0.95 or more and marks those at 0.999 or more, where a column reproduces the target. For two numbers the association is whichever of Pearson's r and Spearman's rho is the stronger, because a column derived from the target often follows a curve rather than a line: the log of a price tracks the price perfectly, and Pearson alone reads that as weaker than it is. For a number and a category it is the correlation ratio η, and for two categories Cramér's V. Whether a listed column is a predictor or a leak depends on whether it is known before the target exists, which the owner of the analysis can confirm.
Findings
1 finding from the data profile (1 Warning) is listed in the Concerns chapter at the top of the analysis.
Implications
Sharper drops in accuracy appear on certain ranges of compactness, surface area, and height, which segment the data's quality. The Concerns chapter flags slices with weaker quality.
Most notable in the Implications section:
- The model is far less accurate on rows with
Relative compactnessin the lowest quarter (0.62 to 0.66) (47 points less variance explained than overall) - The model is far less accurate on rows with
Surface area m2in the highest quarter (760 to 809) (47 points less variance explained than overall) - The model is far less accurate on rows with
Overall height min the second quarter (3.50) (28 points less variance explained than overall)
How to read this
The Implications section states how to act on the models: the Stakeholder Summary and the Recommended Next Data, where the models hold and where they weaken (Quality by Input Range, Rows unlike the ones the model learned from, Per-Segment Predictions, Fairness), what to weigh before relying on them (Causal Honesty, Deployment Readiness), and the Provenance & Audit trail a reviewer needs to retrace the analysis.
Stakeholder Summary
With a small but consistent lead over a straight line through the data, the model shows that Heating load kwh m2 in this data moves mainly with Roof area m2, where the model's output falls as Roof area m2 rises. Over the observed range, moving Roof area m2 from 147 to 221 moves the model's output by about -14.0 on average, with everything else as observed. Glazing area, Wall area m2, Relative compactness, and Surface area m2 also contribute to the model. The model tracks the pattern tightly, though the incremental gain came mainly from capturing nonlinear interactions among these inputs.
Accuracy is notably lower for certain slices: the model matches less than three-quarters of the pattern on rows where Relative compactness or Surface area m2 are at either extreme, and falls to about half on the lowest quarter of Relative compactness or the highest quarter of Surface area m2. Accuracy also degrades on higher-magnitude predictions, and three inputs carry nearly the same information. The short formula uses functions that take a specialist to read and was checked on 154 rows, so results are stable for the data overall but local gaps remain. Validate on a fresh sample before relying on the model for decisions.
Recommended Next Data
- Collect more rows where Relative compactness is in the lowest quarter (0.62 to 0.66) or Surface area m2 is in the highest quarter (760 to 809). Reason: the model is far less accurate in both segments, explaining just 49% of the variation on 39 held-out rows for each.
- Collect more rows where Relative compactness is in the second quarter (0.69 to 0.74), Roof area m2 is in the highest quarter (221), or Surface area m2 is in the third quarter (686 to 735). Reason: the model is far less accurate in each of these segments, explaining only 68% of the variation on 76 or 37 held-out rows.
- Collect more rows where Relative compactness is in the highest quarter (0.86 to 0.98) or Surface area m2 is in the lowest quarter (515 to 588). Reason: the model is less accurate in these segments, explaining 72% of the variation on 45 held-out rows for each.
- Add a column that records Overall height m in more varied conditions, especially the second quarter (3.50). Reason: the model is far less accurate on the 76 held-out rows where Overall height m is in this range, explaining just 68% of the variation.
Quality by Input Range
Quality by Input Range splits the held-out rows by every usable input and compares each segment's R² with the overall held-out R². A numeric input is split into quartiles; a categorical input with at most ten values is split by value. A segment with fewer than three held-out rows is left out, because its gap would be noise.
The chart is sorted from the worst gap to the best. Each bar is the segment's R² minus the overall R².
- Negative bars: the model is weaker on these rows than its headline R² implies. A segment 0.25 or more below the overall value reads much weaker; a segment 0.10 to 0.25 below reads weaker. These are the segments to treat with caution.
- Positive bars: the model is stronger on these rows than overall. A strong segment can mask weakness elsewhere, so the negative segments come first.
Heating load kwh m2 by Input Range
Segment relative_compactness in the lowest quarter (0.62 to 0.66) is much weaker than the aggregate (39 held-out rows): segment R² 0.485 against aggregate R² 0.957 (gap -0.472). A drop this large means the model describes this slice of the data poorly; an input interaction or a missing column may be specific to this subset.
| Segment | Rows | R² | Gap to all rows | Verdict |
|---|---|---|---|---|
| relative_compactness = q1 | 39 | 0.48521 | -0.47192 | Much weaker than on all rows |
| surface_area_m2 = q4 | 39 | 0.48521 | -0.47192 | Much weaker than on all rows |
| overall_height_m = q2 | 76 | 0.67697 | -0.28015 | Much weaker than on all rows |
| roof_area_m2 = q4 | 76 | 0.67697 | -0.28015 | Much weaker than on all rows |
| relative_compactness = q2 | 37 | 0.67729 | -0.27984 | Much weaker than on all rows |
| surface_area_m2 = q3 | 37 | 0.67729 | -0.27984 | Much weaker than on all rows |
| relative_compactness = q4 | 45 | 0.72374 | -0.23338 | Weaker than on all rows |
| surface_area_m2 = q1 | 45 | 0.72374 | -0.23338 | Weaker than on all rows |
| roof_area_m2 = q1 | 34 | 0.72948 | -0.22764 | Weaker than on all rows |
| wall_area_m2 = q1 | 23 | 0.76765 | -0.18947 | Weaker than on all rows |
The first 10 rows of 24. The other 14 are in the notebook.
- Aggregate R²
- 0.95712
- Target
- heating_load_kwh_m2
Rows unlike the ones the model learned from
0 of 154 held-out rows (0%) lie further from the fit rows than 99 in 100 rows like them would, measured on the 5 inputs the model reads (glazing_area, relative_compactness, roof_area_m2, surface_area_m2, wall_area_m2). That is a small minority; the held-out figures describe the model on rows like the ones it was fitted on.
| Target | Inputs measured | Line | Held-out rows | Beyond the line | Share |
|---|---|---|---|---|---|
| heating_load_kwh_m2 | glazing_area, relative_compactness, roof_area_m2, surface_area_m2, wall_area_m2 | 3.884 | 154 | 0 | 0 % |
| Count | From | To |
|---|---|---|
| 0 | 0 | 0.155 |
| 0 | 0.155 | 0.311 |
| 0 | 0.311 | 0.466 |
| 0 | 0.466 | 0.621 |
| 0 | 0.621 | 0.777 |
| 0 | 0.777 | 0.932 |
| 4 | 0.932 | 1.088 |
| 3 | 1.088 | 1.243 |
| 0 | 1.243 | 1.398 |
| 8 | 1.398 | 1.554 |
The first 10 rows of 24. The other 14 are in the notebook.
How to read this
Out-of-distribution detection finds held-out rows that lie far from the training rows of a model. It looks only at the numeric inputs the model reads. Each of them is standardized against the mean and standard deviation of the fit rows, and the standardized values are combined into one distance per row. The line a row is read against depends on the number of inputs: it is the distance that 99 in 100 rows like the fit rows stay below. A row beyond the line is flagged as out of distribution, and the held-out figures are unlikely to apply to it. When the held-out rows resemble the fit rows, about one row in a hundred is flagged.
The chart shows one bar per held-out row in row order; the flagged rows are the bars at or above the line. With more than one target, the chart shows the model with the largest flagged share, and the figures name it.
The check treats inputs independently, so it will not notice a rare combination of values that are each ordinary on their own, such as a large height with a small weight. It is a first screen. A decision that depends on catching unusual inputs needs a dedicated check.
Causal Honesty
Diafunc fitted a formula that captures the structure in the training data. That structure is correlative: it states what predicts what in this data. It does not establish that any input causes the target.
A correlative model is the right tool for predicting future outcomes from similar inputs, for exploring which inputs carry information about the target, and for an early-stage diagnostic or screening tool.
A correlative model is not the right tool for claiming that intervening on an input will change the outcome, for attributing outcomes to specific causes for accountability, or for choosing between policies that act on the inputs.
The Quality by Input Range, Fairness and Concerns chapters show the most common confounding patterns in the data.
The model is correlative: it captures which columns predict the target in the training data, not whether changing one would change the other. Predictions are reliable for inputs that look like the training distribution; they are not evidence that intervening on an input will change the target. The 4 upgrade pathways below show what evidence would support a causal claim.
| Name | Summary |
|---|---|
| Controlled experiment | Randomize the input to be acted on, then analyze again. Randomization breaks confounding, so any change in the target is attributable to the input. |
| Natural experiment | Find a setting where the input varied for reasons unrelated to the target, an instrumental variable. Variation of that kind supports causal inference. |
| Causal graph | Write out what plausibly causes what, then check whether the model's terms are consistent with the conditional independences the graph implies. |
| Control for confounders | If a third variable plausibly moves both the input and the target, stratify by it or condition on it before fitting again. Gaps in the Quality by Input Range chapter are a clue. |
Deployment Readiness
The analysis ran with the configuration below. The checks and the verdict of this chapter are read against it.
- Targets: 1 target:
heating_load_kwh_m2 - Rows: 768 rows
- Per-Segment Predictions: not produced, because no segment column was chosen
- Fairness: not assessed, because the data has no categorical column other than the target
- Out-of-Distribution: held-out rows are scored against the training rows; predictions made outside this report are not scored
- Provenance & Audit: recorded in the chapter of that name
Across 5 checks (4 pass, 1 warns, 0 fail, 2 critical concerns), at least one check fails or a critical concern is open: Not ready. The failing checks need addressing first; they typically indicate data leakage, severe miscalibration, or a model that loses to its baseline.
| Name | Status | Detail |
|---|---|---|
| Generalization | Pass | held-out quality holds up against training quality |
| Prediction Interval Coverage | Warn | intervals are wider than their level requires, largest gap 5.71 percentage points |
| Baseline Lift for heating_load_kwh_m2 | Pass | beats the best baseline, R² lift 0.0521 |
| Model Constraints | Pass | every held-out prediction is finite and within the training range |
| Out-of-Distribution | Pass | 0% of held-out rows are out of distribution |
- N critical concerns
- 2
- N fail
- 0
- N pass
- 4
- N warn
- 1
- Overall verdict
- Not ready
Provenance & Audit
This record captures the inputs and configuration that produced the report, so the analysis can be reproduced or the result defended in an audit.
| Item | Value |
|---|---|
| Analysis ID | d6e35240-c491-11f1-a9e6-0988d77805b7 |
| Run time | 2026-10-12 16:02 UTC |
| Processed input table | 2395c390-f1c9-4bef-ac31-ddd6445876bb |
| Total rows | 768 |
| Modeled targets | heating_load_kwh_m2 |
| Segment column | not available |
| Time limit | 4 h 0 min |
| Time taken | 4 h 4 min |
| Credit budget | 10,000 credits |
| Ufinq version | 0.3.38 |
Findings
1 finding from the implications diagnostics (1 Critical) is listed in the Concerns chapter at the top of the analysis.