# Heart Disease (Cleveland)

Analysis report, automatically produced by Diafunc.

- **Target:** num
- **Analyzed:** 2026-09-12 21:32 UTC
- **Data:** [UCI Machine Learning Repository](https://archive.ics.uci.edu/dataset/45/heart+disease), published under https://creativecommons.org/licenses/by/4.0/

## Summary

The model predicts num and explains 39% of the variation in num on rows it never saw, mainly relying on the feature oldpeak. By comparison, always guessing the average num would have explained -0.3% on the same held-out rows, so the model added 39 points. The typical prediction error is 0.481 in the natural units of num, and model complexity is modest.

The model captures only part of the pattern in num and should not be relied on for individual predictions. The assessment is based on 61 held-out rows, and 30% were outside the range the model saw in training. Prediction parity gaps appear when results are grouped by exang, fbs, and sex. Validate on a fresh sample before relying on the model for decisions.

## Fitted formula

```
num = 1 − tanh(8 − (cp + cp + oldpeak))
```

2 terms · additively decomposable

## Held-out diagnostics

| Target | Poisson deviance | RMSE | Dispersion | Generalization | Rows |
| --- | --- | --- | --- | --- | --- |
| num | 1.216 | 0.98326 | 0.8238 | generalizing | 61 |

- num · Poisson deviance 95 % CI 0.78287 – 1.713
- num · RMSE 95 % CI 0.77483 – 1.15
- num · Dispersion 95 % CI 0.61952 – 1.045

## Concerns

**WARNING** (implications) — A notable minority of held-out rows are outside the training distribution

30% of held-out rows are out of distribution (18 of 61). The headline R² may not extend to these rows; the Out-of-Distribution chapter shows which they are.

## 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: Data describes the table as supplied, Model presents one model per target, and Implications states where the models hold and what to weigh before relying on them.

Generated 2026-09-12 21:32 UTC, analysis `58d67220-48b7-11f1-8087-d378640fe787`, 1 target, computation time 1 h 0 min, compute budget 500 credits, 303 rows. The Provenance &amp; Audit chapter holds the full record.

## Headline

Every model explains less than half of its target. Diafunc modeled num and explains 39% of num on held-out rows, leaves 61% unexplained, and relies most on oldpeak.

- One target was modeled; 61 rows were held out for checking.
- Always guessing the average explained -0.3%; the model added 39 points, a small but consistent margin.
- 30% of held-out rows are outside the training distribution.

- **Best R²:** 0.38694
- **Best quality:** 56.38 %
- **Best target:** num
- **Targets:** 1

## Concerns

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.

- **Warning** | Implications: **A notable minority of held-out rows are outside the training distribution**. 30% of held-out rows are out of distribution (18 of 61). The headline R² may not extend to these rows; the Out-of-Distribution chapter shows which they are.

| Severity | Section | Concern | Detail |
| --- | --- | --- | --- |
| Warning | Implications | A notable minority of held-out rows are outside the training distribution | 30% of held-out rows are out of distribution (18 of 61). The headline R² may not extend to these rows; the Out-of-Distribution chapter shows which they are. |

## Discovered Relations

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.

- The model for num explains 39% of held-out rows and relies most on oldpeak and cp.
- Using the mean as the baseline explained -0.3% of held-out rows, and the model added 39 points of variance explained.

## Data

The Data section describes the table as supplied, before any modeling: one chapter per column with its distribution and correlations, the Column Profiles overview, 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.

Oldpeak and slope move together with a correlation of 0.578, showing a strong link between these features. Num and oldpeak also move together, while num and thalach move oppositely. No data quality issues were flagged and the table is clean with no duplicates or column leakage identified.

Most notable in the Data section:

- `oldpeak` and `slope` move together (correlation 0.578)
- `num` and `oldpeak` move together (correlation 0.504)
- `num` and `thalach` move oppositely (correlation -0.415)

### Age

This chapter profiles `age`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `age` in date order and a Time Series chapter separates its trend, season and residual. When `age` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `age` 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 row for `age` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `age`, 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 `age`; 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.

##### Correlation

Each row pairs `age` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `age`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving age (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `age` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Ca

This chapter profiles `ca`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `ca` in date order and a Time Series chapter separates its trend, season and residual. When `ca` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `ca` 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 row for `ca` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `ca`, 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 `ca`; 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.

##### Correlation

Each row pairs `ca` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `ca`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving ca (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `ca` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

##### Frequency

The share of rows in each category of `ca`. A few large slices and many slivers mean the rare categories carry little evidence each. A single dominant slice means most rows look alike on this column.

##### Count Age By Ca

The number of rows in each combination of a category of `ca` and a category of `age`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Cp By Ca

The number of rows in each combination of a category of `ca` and a category of `cp`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Trestbps By Ca

The number of rows in each combination of a category of `ca` and a category of `trestbps`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Chol By Ca

The number of rows in each combination of a category of `ca` and a category of `chol`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Restecg By Ca

The number of rows in each combination of a category of `ca` and a category of `restecg`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Thalach By Ca

The number of rows in each combination of a category of `ca` and a category of `thalach`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Slope By Ca

The number of rows in each combination of a category of `ca` and a category of `slope`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Thal By Ca

The number of rows in each combination of a category of `ca` and a category of `thal`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Num By Ca

The number of rows in each combination of a category of `ca` and a category of `num`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

### Chol

This chapter profiles `chol`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `chol` in date order and a Time Series chapter separates its trend, season and residual. When `chol` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `chol` 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 row for `chol` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `chol`, 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 `chol`; 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.

##### Correlation

Each row pairs `chol` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `chol`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving chol (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `chol` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

##### Average Chol By Trestbps

The mean of `chol` in each category of `trestbps`. Bars at clearly different heights mark a category that moves with `chol`; near-equal bars mean the category adds little. The mean follows outliers, so a single bar that stands out is worth checking against the median chart.

### Cp

This chapter profiles `cp`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `cp` in date order and a Time Series chapter separates its trend, season and residual. When `cp` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `cp` 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 row for `cp` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `cp`, 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 `cp`; 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.

##### Correlation

Each row pairs `cp` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `cp`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving cp (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `cp` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Exang

This chapter profiles `exang`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `exang` in date order and a Time Series chapter separates its trend, season and residual. When `exang` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `exang` 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 row for `exang` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `exang`, 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 `exang`; 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.

#### Visualization

The charts in this chapter were chosen from the type of `exang` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Fbs

This chapter profiles `fbs`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `fbs` in date order and a Time Series chapter separates its trend, season and residual. When `fbs` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `fbs` 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 row for `fbs` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `fbs`, 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 `fbs`; 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.

#### Visualization

The charts in this chapter were chosen from the type of `fbs` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Num

This chapter profiles `num`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `num` in date order and a Time Series chapter separates its trend, season and residual. When `num` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `num` 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 row for `num` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `num`, 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 `num`; 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.

##### Correlation

Each row pairs `num` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `num`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving num (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `num` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Oldpeak

This chapter profiles `oldpeak`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `oldpeak` in date order and a Time Series chapter separates its trend, season and residual. When `oldpeak` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `oldpeak` 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 row for `oldpeak` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `oldpeak`, 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 `oldpeak`; 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.

##### Correlation

Each row pairs `oldpeak` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `oldpeak`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving oldpeak (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `oldpeak` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

##### Maximum Oldpeak By Ca

The largest `oldpeak` in each category of `ca`. A category whose maximum stands far above the others holds the high extremes. A maximum that is identical across categories marks a ceiling in how the values were measured or recorded.

### Restecg

This chapter profiles `restecg`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `restecg` in date order and a Time Series chapter separates its trend, season and residual. When `restecg` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `restecg` 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 row for `restecg` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `restecg`, 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 `restecg`; 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.

##### Correlation

Each row pairs `restecg` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `restecg`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving restecg (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `restecg` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Sex

This chapter profiles `sex`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `sex` in date order and a Time Series chapter separates its trend, season and residual. When `sex` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `sex` 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 row for `sex` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `sex`, 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 `sex`; 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.

#### Visualization

The charts in this chapter were chosen from the type of `sex` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Slope

This chapter profiles `slope`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `slope` in date order and a Time Series chapter separates its trend, season and residual. When `slope` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `slope` 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 row for `slope` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `slope`, 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 `slope`; 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.

##### Correlation

Each row pairs `slope` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `slope`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving slope (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `slope` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Thal

This chapter profiles `thal`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `thal` in date order and a Time Series chapter separates its trend, season and residual. When `thal` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `thal` 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 row for `thal` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `thal`, 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 `thal`; 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.

##### Correlation

Each row pairs `thal` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `thal`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving thal (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `thal` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

##### Frequency

The share of rows in each category of `thal`. A few large slices and many slivers mean the rare categories carry little evidence each. A single dominant slice means most rows look alike on this column.

##### Count Age By Thal

The number of rows in each combination of a category of `thal` and a category of `age`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Cp By Thal

The number of rows in each combination of a category of `thal` and a category of `cp`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Trestbps By Thal

The number of rows in each combination of a category of `thal` and a category of `trestbps`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Chol By Thal

The number of rows in each combination of a category of `thal` and a category of `chol`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Restecg By Thal

The number of rows in each combination of a category of `thal` and a category of `restecg`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Thalach By Thal

The number of rows in each combination of a category of `thal` and a category of `thalach`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Slope By Thal

The number of rows in each combination of a category of `thal` and a category of `slope`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Ca By Thal

The number of rows in each combination of a category of `thal` and a category of `ca`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

##### Count Num By Thal

The number of rows in each combination of a category of `thal` and a category of `num`, as a heat map. Cells that keep the same proportions along every row mean the two columns are independent; proportions that change from one row to the next mean they are associated, and the darkest cells show where the rows concentrate.

### Thalach

This chapter profiles `thalach`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `thalach` in date order and a Time Series chapter separates its trend, season and residual. When `thalach` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `thalach` 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 row for `thalach` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `thalach`, 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 `thalach`; 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.

##### Correlation

Each row pairs `thalach` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `thalach`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving thalach (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `thalach` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Trestbps

This chapter profiles `trestbps`: its distribution in figures and charts, and how it relates to the other columns through grouped comparisons, pairwise charts and correlation measures. The Description chapter carries the figures and the Visualization chapter the charts. When the data carries a date column, an Over Time chapter shows `trestbps` in date order and a Time Series chapter separates its trend, season and residual. When `trestbps` is a target with classes, a Class Balance chapter counts the rows in each class.

#### Description

The figures below summarize `trestbps` 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 row for `trestbps` reads from left to right: location first, then spread, then shape. The symbols in the header row (`x̅`, `σ`, `σ²`, `IQR`, `{x}`, `|X|`, and the percentile and decile columns) are defined in the Descriptive Statistics chapter under General in the Data section.

##### By Value

The rows are grouped by the value of `trestbps`, 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 `trestbps`; 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.

##### Correlation

Each row pairs `trestbps` with one other numeric column and reports how strongly the two move together, in which direction, and whether the association could be chance. Pearson's coefficient measures a straight-line relationship. 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. A strong coefficient is an association, not an explanation: two columns can move together because a third one moves both.

The table lists every other numeric column against `trestbps`, with three correlation coefficients, the significance of the Pearson coefficient and its confidence interval.

| Measure | Meaning |
| --- | --- |
| Covariance | 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 | 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 ρ | 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 τ | 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 |
| p-value | The two-sided p-value of the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small value (below 0.05, for instance) means a coefficient this large is unlikely to arise by chance |
| q-value | The p-value adjusted for multiple comparisons across all pairs involving trestbps (Benjamini-Hochberg). Among all pairs reported with q below 0.05, about 5% or fewer are expected to be false discoveries |
| 95% CI (Pearson) | 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 |

#### Visualization

The charts in this chapter were chosen from the type of `trestbps` and of the columns it is compared with: a numeric column gets a histogram, a box plot and a value sequence, a categorical column gets a frequency chart, and each comparison with another column gets the chart that suits the pair. 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.

### Column Profiles

One row per column of the analyzed table: 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.

These are the columns as supplied, before any modeling: the reference against which every later chapter reads.

Profiled 14 columns across 303 rows (11 numeric, 3 non-numeric): every column is at least 75% populated. Distributional statistics on numeric columns can be read at face value.

**Columns**

| Name | Type | N | Missing | Mean | Std | Min | P25 | Median | P75 | Max | Skewness | CV |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| age | integer | 303 | 0 | 54.44 | 9.024 | 29 | 48 | 56 | 61 | 77 |  |  |
| ca | integer | 299 | 4 (1.32 %) | 0.67224 | 0.93587 | 0 | 0 | 0 | 1 | 3 |  |  |
| chol | integer | 303 | 0 | 246.7 | 51.69 | 126 | 211 | 241 | 275 | 564 |  |  |
| cp | integer | 303 | 0 | 3.158 | 0.95854 | 1 | 3 | 3 | 4 | 4 |  |  |
| exang | bool | 303 | 0 |  |  |  |  |  |  |  |  |  |
| fbs | bool | 303 | 0 |  |  |  |  |  |  |  |  |  |
| num | integer | 303 | 0 | 0.93729 | 1.227 | 0 | 0 | 0 | 2 | 4 |  |  |
| oldpeak | number | 303 | 0 | 1.04 | 1.159 | 0 | 0 | 0.8 | 1.6 | 6.2 |  |  |
| restecg | integer | 303 | 0 | 0.9901 | 0.99333 | 0 | 0 | 1 | 2 | 2 |  |  |
| sex | bool | 303 | 0 |  |  |  |  |  |  |  |  |  |

The first 10 rows of 14. The other 4 are in the notebook.

- **N columns:** 14
- **N high missing:** 0
- **N rows:** 303

### Duplicate Rows

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.

Across 303 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:** 1
- **N exact duplicates:** 0
- **N exact groups:** 0
- **N rows:** 303
- **N unique:** 303
- **Pct exact duplicates:** 0
- **Verdict:** Clean

### Leakage Suspicion

For every numeric column that is not a target, this chapter reports the Pearson correlation with each target and flags any pair with an absolute coefficient of 0.95 or more as a suspected leak. A pair at 0.99 or more is **Critical**: at that level the column amounts to a renamed copy of the target, and a model trained on it looks perfect on the training rows and means nothing on new data.

A flagged pair is worth resolving before trusting any quality number in this report: either the column genuinely encodes the target and should be dropped, or it is a legitimate strong predictor and the quality is real. The correlation alone cannot tell the two apart; that judgment needs someone who knows where the column came from.

**No leakage detected.** No non-target column correlates with any target above the |ρ| ≥ 0.95 threshold. Predictive features appear genuinely predictive rather than encoded copies of the target.

- **Critical threshold:** 0.99
- **N critical:** 0
- **N suspects:** 0
- **Threshold:** 0.95
- **Verdict:** Clean

### General

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

This chapter summarizes every column at once: the descriptive statistics table below, then Correlation, Missing Values and Outlier Ranges. 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 table describes one column. The header symbols read as follows.

| Column | Meaning | Explanation |
| --- | --- | --- |
| Variable | Column name | Name of the column the statistics in the row describe |
| Type | Data type | Type assigned during data processing (bool, integer, number, decimal or text) |
| Min | Minimum | Smallest numeric value in the column |
| Max | Maximum | Largest numeric value in the column |
| x̅ | Mean | Arithmetic average: the sum of all values divided by the number of values |
| Mo | Mode | The value that appears most often |
| C | Continuous | Whether the column can take any value in a range, as opposed to a discrete column limited to a fixed set of values |
| {x} | Scale | Length of the fractional part |
| ∑ | Sum | Sum of all numeric values |
| \|X\| | Cardinality | Number of distinct values |

The first 10 rows of 34. The other 24 are in the notebook.

##### Missing Values

The table pairs each column's count of present values, in the Values column, with the row count of the processed table, in the Rows column. The difference is the number of missing values, and the larger it is, 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.

##### Outlier Ranges

The table is the five-number summary for every numeric column: Min, Q1, Median, Q3 and Max. Q1 and Q3 are the values below which 25% and 75% of the values fall, and the interquartile range is Q3 minus Q1. By the Tukey rule, a value more than 1.5 times the interquartile range below Q1 or above Q3 is a possible outlier. A Min far below that lower bound means extreme values in the lower tail; a Max far above the upper bound means extreme values in the upper tail.

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.

##### Correlation

This chapter measures how pairs of numeric columns move together: the Correlation Measures table below, the Strongest Correlations, the Correlation Heatmap and, when the analysis has targets, the Potential Data Leaks. A correlation states association, not causation.

The table lists every pair of numeric columns once, with three correlation coefficients, the significance of the Pearson coefficient and its 95% confidence interval.

| Measure | Explanation |
| --- | --- |
| Covariance | 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 | Strength and direction of a linear relationship, from -1 (perfect negative) through 0 (no linear relationship) to 1 (perfect positive) |
| Spearman's ρ | 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. Ranges from -1 to 1 |
| Kendall's τ | 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. Ranges from -1 to 1 |
| p-value | Two-sided p-value for the Pearson coefficient under the hypothesis of zero correlation, from the t-distribution with n-2 degrees of freedom. A small p-value (for example below 0.05) means a correlation this large would be unlikely by chance |
| q-value | The p-value adjusted for the number of pairs tested (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) | Lower and upper bounds of the 95% confidence interval on the Pearson coefficient, via the Fisher z-transform. A narrow interval means the coefficient is well estimated; a wide interval that straddles zero means the relationship is uncertain |

36 column pairs analyzed across 303 rows; 24 (67%) clear the q < 0.05 significance bar after BH-FDR. Significant pairs are flagged in the matrix below; non-significant cells may still show large coefficients but they are not distinguishable from chance at this row count.

- **N pairs:** 36
- **N samples:** 303
- **N significant:** 24

**Pairs · 24 of 36 rows shown**

| 95 % CI | Dependent | Independent | Kendall | P value | Pearson | Q value | Spearman |
| --- | --- | --- | --- | --- | --- | --- | --- |
| -0.4388, -0.23967 | oldpeak | thalach | -0.3054 | < 0.001 | -0.34309 | < 0.001 | -0.43151 |
| 0.49721, 0.64804 | oldpeak | slope | 0.50854 | < 0.001 | 0.57754 | < 0.001 | 0.59485 |
| 0.07816, 0.29555 | oldpeak | trestbps | 0.10637 | < 0.001 | 0.18917 | 0.00225 | 0.15019 |
| 0.00147, 0.22393 | oldpeak | restecg | 0.08866 | 0.04715 | 0.11413 | 0.06528 | 0.10423 |
| -0.15723, 0.06768 | thalach | trestbps | -0.02796 | 0.43154 | -0.04535 | 0.47077 | -0.0404 |
| 0.41498, 0.58362 | num | oldpeak | 0.37326 | < 0.001 | 0.50409 | < 0.001 | 0.46303 |
| -0.50414, -0.3172 | num | thalach | -0.34351 | < 0.001 | -0.41504 | < 0.001 | -0.44394 |
| 0.27708, 0.4706 | num | slope | 0.36446 | < 0.001 | 0.37796 | < 0.001 | 0.4003 |
| 0.04589, 0.26571 | num | trestbps | 0.10718 | 0.00593 | 0.15775 | 0.01123 | 0.13716 |
| 0.07252, 0.29037 | num | restecg | 0.16668 | 0.00132 | 0.1837 | 0.00297 | 0.18125 |

The first 10 rows of 24. The other 14 are in the notebook.

###### Strongest Correlations

The 20 pairs of columns with the smallest q-values: the correlations 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 Pearson coefficient looks strong.

A pair with an absolute Pearson coefficient above 0.9 often signals a duplicate or derived column. Moderately strong pairs with a low q-value are the relationships most worth investigating.

###### Correlation Heatmap

Every pair of numeric columns colored by its Pearson correlation coefficient. The color scale is fixed: blue at -1, pale yellow near 0 and red at +1, so a color means the same strength in every analysis, and a table whose coefficients are all positive shows no blue. The diagonal is each column correlated with itself and always sits at +1. Off-diagonal blocks of one color point to groups of columns that carry the same information.

###### Potential Data Leaks

The table lists the correlation between every column and each target, with the p-value and the q-value. A Pearson coefficient close to +1 or -1 with a target, together with a q-value near zero, is one of two things: a genuinely strong relationship, 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 applies the 0.95 and 0.99 thresholds to these pairs and issues the verdict; a flagged pair is resolved there before any quality figure is relied on.

#### Clusters

Rows are grouped into three clusters by k-means over the numeric columns, and the table shows each cluster's descriptive statistics side by side. Differences in mean, median and spread between clusters point to row-level structure that no single column states, such as two kinds of customer or two kinds of transaction.

Cluster labels are arbitrary integers; only the composition matters. Rows without usable numeric values are placed in cluster `-1`.

## Model

The Model section presents one model per target: its formula, its predictions on held-out rows, the features 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.

Oldpeak carries most of the model, accounting for 100% of its reliance on features. The model on num beats the Mean baseline by 39 points of variance explained, indicating improved quality over a basic benchmark.

Most notable in the Model section:

- `oldpeak` carries most of the model (100% of its reliance on features)
- The model on `num` beats the `Mean` baseline by 39 points of variance explained

### Num

The Model section builds one model for `num`: 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.

#### Num Model

The three gauges score the model the search settled on. All three are measured on the rows the model trained on.

| Metric | Meaning |
| --- | --- |
| Quality | The technology's combined score for the model on the rows it trained on: accuracy and simplicity in one figure, where 100% is the best attainable |
| Error | How far the model's predictions lie from the training values, relative to the spread of the target: 0% is a perfect reproduction of the training rows, 100% is as wrong as a prediction can be |
| Complexity | The size of the formula relative to the complexity range the search was allowed: 0% is the simplest expression permitted, 100% the most complex |

Quality is a training figure and is not the held-out R². The held-out R² measures the model on rows it never saw during training and is the figure to quote for how the model generalizes; it is reported in the Generalization chapter beside the training R², and in the Baselines chapter beside the reference predictors. The time and budget gauges account for the computation that produced the model, not for the model itself.

The target num relies on oldpeak and cp, with num tending to rise with increasing cp and fall with increasing oldpeak according to the formula num = 1 − tanh(8 − sum(cp, cp, oldpeak)).

```
num = 1 − tanh(8 − (cp + cp + oldpeak))
```

Quality 56.37 % · Error 48.06 % during the search · Complexity 10 %

- **N inputs:** 2
- **N terms:** 2

#### Prediction

The model predicts `num` 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 feature table, the prediction function and its output below are the raw material for the Prediction Chart and the distribution chapter that follow.

The function below selects the held-out rows from the processed data and keeps the columns the model takes as inputs.

One row per held-out row and one column per input feature, in the form the model reads. This table feeds the prediction function below.

The function below evaluates the model for every row of the feature table and returns the predicted `num` for each.

The predictions of `num` for the held-out rows, one value per row of the feature table.

##### Prediction Chart

Actual `num` 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.

Mean Poisson deviance 1.22 on held-out rows, **well-specified** (Pearson dispersion 0.824 close to 1): the count variance matches the Poisson mean. RMSE on counts is 0.983.

- **Dispersion:** 0.8238 (95 % CI 0.61952 – 1.045)
- **N:** 61
- **Poisson deviance:** 1.216 (95 % CI 0.78287 – 1.713)
- **RMSE:** 0.98326 (95 % CI 0.77483 – 1.15)
- **Target:** num

##### Held-out Dispersion

Whether the model reproduces the amount of variation the held-out counts of `num` actually show. The observed and predicted means say whether the overall level is right; the dispersion ratio compares the observed variance against the variance a Poisson process at that level would produce. A ratio near one means the counts vary as much as such a process, a ratio well above one means they vary more (overdispersion, so any prediction interval is too narrow), and a ratio well below one means they vary less.

- **Dispersion:** 0.8238
- **N:** 61
- **Observed mean:** 0.88525
- **Observed variance:** 1.577
- **Predicted mean:** 0.86081
- **Verdict:** equi-dispersed

#### Which inputs matter most

The chart ranks the features of the `num` model by permutation importance: how much the model's error rises when that feature's values are shuffled across rows so that it carries no information. A longer bar means the model relies on the feature 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 a feature 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: a feature can rank high because it stands in for something the data does not contain.

| Input | Share of importance | Permutation importance | Sensitivity | Residual correlation | Occurrences |
| --- | --- | --- | --- | --- | --- |
| oldpeak |  | 0.19095 | 0.27805 | -0.42894 | 1 |
| cp |  | -0.10885 | 0.55611 | 0.54629 | 1 |

#### Baselines

The table scores the model for `num` against three reference predictors on the same held-out rows. The mean baseline always predicts the training average and is the floor: a model below it is worse than a constant. The median baseline always predicts the training median and holds up better when the target is skewed. The linear regression baseline is a straight-line model over all numeric features and appears when the data has at least one; it captures everything a linear relationship can. The Ufinq model is the last row.

Read the R² and MAE columns from top to bottom. When the model clears every baseline by a wide margin, its structure earns its place. When it is level with the linear regression baseline, the relationship is linear and the extra structure adds nothing. When it is level with the mean baseline, the features carry no usable signal for `num`. R² reaches 1 for perfect prediction and falls below 0 when a predictor is worse than the mean; MAE is the average absolute miss in the units of `num`.

R² lift of +0.39 over the strongest naive baseline, with a **small** Cohen's d on paired residuals. The model wins on average but on many individual rows a naive baseline does about as well; whether the complexity is justified depends on the use.

- **Best baseline R²:** -0.00269
- **Effect size d:** 0.45759 (95 % CI 0.17474 – 0.79661)
- **Effect size d magnitude:** small
- **Model MAE:** 0.67665 (95 % CI 0.49101 – 0.84922)
- **Model R²:** 0.38694 (95 % CI 0.10727 – 0.54053)
- **Held-out rows:** 61
- **Target:** num

#### Generalization

The chart sets the R² of the `num` 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.

The model explains held-out rows about as well as training rows (held-out R² 0.387, gap between training and held-out R² -0.0517): it **generalizes**. The structure the formula encodes carries from the training rows to the held-out rows.

- **Generalization gap:** -0.05175
- **N test:** 61
- **Target:** num
- **Test error:** 0.67665 (95 % CI 0.49101 – 0.84922)
- **Test R²:** 0.38694 (95 % CI 0.10727 – 0.54053)
- **Train error:** 0.48064
- **Train R²:** 0.33519
- **Verdict:** Generalizing

#### Per-Term Partial Dependence

The formula for `num` 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. 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.

The formula decomposes into 2 additive terms: clean separable structure. Each curve below shows one term's response to its free features, with the other features held at the training median. Steep curves carry the prediction; flat curves are decorative.

- **Additive:** Yes
- **N terms:** 2
- **Notation:** 1 − tanh(8 − sum(cp, cp, oldpeak))
- **Target:** num

#### Symbolic Behavior and Extrapolation

The formula for `num` 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.

The model stays finite as every input moves past its observed range, with no poles or domain edges, so extrapolation is mathematically well-behaved.

- **Bounded at infinity:** Yes
- **N inputs:** 2
- **N singularities:** 0
- **Target:** num

**Limits at neg infinity**

| Input | Kind |
| --- | --- |
| x.cp | Finite |
| x.oldpeak | Finite |

**Limits at pos infinity**

| Input | Kind |
| --- | --- |
| x.cp | Finite |
| x.oldpeak | Finite |

#### Per-Row Contribution Waterfall

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 `num`. 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 feature 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.

- **Additive:** Yes
- **N rows:** 5

The notebook draws this chapter's figure from each held-out row; the row-by-row detail is there.

#### Term Ablation

For each additive term of the formula for `num`, 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 Per-Term Partial Dependence chapter 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.

Full-formula held-out R² is 0.387. Each bar below shows how much R² drops when that term is replaced by its mean contribution. **Large drop**: load-bearing term; near zero: decoration the formula could lose; **negative**: overfit signal (ablation improves R²).

- **Additive:** Yes
- **Baseline R²:** 0.38694
- **Held-out rows:** 61

The notebook draws this chapter's figure from each held-out row; the row-by-row detail is there.

#### What-If

The chapter shows the model's prediction for `num` 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 Term Ablation chapter. A short bar marks a term that makes a small adjustment here; the Per-Term Partial Dependence chapter 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.

- **Additive:** Yes
- **Held-out rows for the interval:** 61
- **N terms:** 2
- **Residual P5:** -1.537
- **Residual P95:** 2.011
- **Residual std:** 0.99111

#### Sensitivity

For each input feature, the chart traces the rate at which the predicted `num` changes as that feature 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 feature, measured by a small finite difference at each point. A table summarizes each feature 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 feature: 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 feature 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 a feature to which the prediction is highly responsive; the Term Ablation chapter says whether the term behind it also carries predictive work.

In the table, the mean absolute slope ranks the features 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.

No numeric input statistics are available, so sensitivity curves cannot be plotted. The training table provides no numeric ranges for the formula's free features.

- **Additive:** Yes
- **N terms:** 2

#### 2-Feature Interactions

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 `num` across the plane of the two features, with every other input held at its training median. Pairs that never share a term have no interaction by construction, and the Per-Term Partial Dependence curves already say everything about them.

Parallel stripes mean the two features act almost independently, so the surface is close to a sum of two one-feature curves. Curved contours mean a real interaction, where the slope along one feature 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 Per-Term Partial Dependence curve for the same feature 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 features.

Some terms couple **multiple features within a single term**: genuine interactions exist. The heatmaps below show how the prediction's response to one feature depends on another (the others held at the median). Curved isocontours mean genuine interaction; parallel stripes mean the two features act separately.

- **Additive:** Yes
- **N terms:** 2

#### Worst Predictions

The held-out rows on which the model misses `num` 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 feature values. R² and MAE say how good the model is on average; these cards say where it fails and let each failure be read feature by feature 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 feature, read against the Per-Term Partial Dependence curve, 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.

The worst held-out row was missed by 2.54 (target's scale). The 10 rows with the largest absolute residuals out of 61 held-out rows are shown. Each card breaks the failure down into per-term contributions and feature 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 | Age | Ca | Chol | Cp | Exang | Fbs | Oldpeak | Restecg | Sex | Slope | Thal | Thalach | Trestbps |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 4 | 1.462 | 2.538 | 58 | 1 | 230 | 3 | No | No | 2.5 | 2 | Yes | 2 | 7 | 165 | 112 |
| 4 | 1.762 | 2.238 | 65 | 3 | 225 | 4 | No | No | 1 | 2 | No | 2 | 7 | 114 | 150 |
| 4 | 1.984 | 2.016 | 60 | 2 | 206 | 4 | Yes | No | 2.4 | 2 | Yes | 2 | 7 | 132 | 130 |
| 4 | 1.989 | 2.011 | 50 | 0 | 243 | 4 | No | No | 2.6 | 2 | Yes | 2 | 7 | 128 | 150 |
| 0 | 1.905 | -1.905 | 37 | 0 | 250 | 3 | No | No | 3.5 | 0 | Yes | 3 | 3 | 187 | 130 |
| 0 | 1.905 | -1.905 | 43 | 0 | 247 | 4 | No | No | 1.5 | 0 | Yes | 1 | 3 | 171 | 150 |
| 2 | 0.11465 | 1.885 | 56 | 1 | 256 | 3 | Yes | Yes | 0.6 | 2 | Yes | 2 | 6 | 142 | 130 |
| 0 | 1.834 | -1.834 | 54 | 0 | 239 | 4 | No | No | 1.2 | 0 | Yes | 1 | 3 | 160 | 140 |
| 0 | 1.537 | -1.537 | 57 | 0 | 354 | 4 | Yes | No | 0.6 | 0 | No | 1 | 3 | 163 | 120 |
| 0 | 1.462 | -1.462 | 59 | 0 | 234 | 4 | No | No | 0.5 | 0 | Yes | 2 | 7 | 161 | 135 |

- **Additive:** Yes
- **N extrapolated:** 0
- **Held-out rows:** 61
- **Held-out rows for the interval:** 61
- **Residual P5:** -1.537
- **Residual P95:** 2.011
- **Residual std:** 0.99111

#### Count Distribution

The chart sets the held-out counts of `num` beside the model's predictions rounded to the nearest non-negative integer, one pair of bars per count value, with the last bin collecting the high counts. Where the two distributions diverge, the model misstates how the counts arise; this is the check that tells a count target apart from a continuous one.

A long tail of observed counts the predicted bars do not reach, or a tall observed spike at zero, means the counts vary more than the model reproduces: overdispersion, or an excess of zeros. The dispersion ratio, also reported with the held-out distribution figures in the Prediction chapter, compares the observed variance with the variance a Poisson process at the same mean would show. A ratio near one means the counts vary as much as such a process, well above one means they vary more, and well below one means they vary less.

Predicted against observed counts across 61 held-out rows: **well-specified** (Pearson dispersion 0.824 close to 1). Observed and predicted count distributions align; the Poisson assumption holds on held-out rows.

- **Dispersion:** 0.8238
- **N:** 61
- **Observed mean:** 0.88525
- **Predicted mean:** 0.86081
- **Target:** num
- **Verdict:** equi-dispersed
- **Zero observed:** 35
- **Zero predicted:** 29

**Bins**

| Count | Observed | Predicted |
| --- | --- | --- |
| 0 | 35 | 29 |
| 1 | 11 | 11 |
| 2 | 6 | 21 |
| 3 | 5 | 0 |
| 4 | 4 | 0 |
| 5 | 0 | 0 |
| 6 | 0 | 0 |
| 7 | 0 | 0 |
| 8 | 0 | 0 |
| 9 | 0 | 0 |

The first 10 rows of 21. The other 11 are in the notebook.

#### Search Progress

The line traces the best quality the search for the `num` 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.

The search ran for 286 generations, ending at quality 0.564 (gain +0.027 from generation 0). The curve climbs modestly: most of the lift happened early, so the search has largely converged. A small increase in computation time may extract a few more points.

- **First generation:** 2
- **First quality:** 53.68 %
- **Last generation:** 287
- **Last quality:** 56.37 %
- **Max quality:** 56.37 %
- **N points:** 200
- **N total generations:** 286

#### Model Constraints

Sanity checks on the `num` 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 expression misbehaves numerically somewhere in the data it was shown, and any downstream use of it should wait until that is understood.

Across 61 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 61 rows |
| Within domain | Pass | no rows outside the training target's ±2σ range across 61 rows |
| Bounded predictions | Pass | no runaway predictions beyond ±10σ across 61 rows |

- **Held-out rows:** 61
- **N non finite:** 0
- **N outside domain:** 0
- **N runaway:** 0
- **Verdict:** Clean

#### Modeling

The function below trains the model for `num` on the processed data. Its output is the model that every other chapter of this section scores and dissects.

*Measured during the search, on the rows the model was fitted on*

- **Error:** 48.06 %
- **N train:** 242
- **R²:** 0.56375

## Implications

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 (Per-Segment Quality, Out-of-Distribution, 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.

Thirty percent of the held-out rows lie outside the range the model was trained on, raising a concern flagged in the Concerns chapter. The overall verdict for deployment readiness is pending, and no causality claims beyond correlation are made for this analysis.

Most notable in the Implications section:

- 30% of the held-out rows lie outside the range the model was trained on

_The concerns raised about this section are listed in the Concerns chapter._

### Stakeholder Summary

The model predicts num and explains 39% of the variation in num on rows it never saw, mainly relying on the feature oldpeak. By comparison, always guessing the average num would have explained -0.3% on the same held-out rows, so the model added 39 points. The typical prediction error is 0.481 in the natural units of num, and model complexity is modest.

The model captures only part of the pattern in num and should not be relied on for individual predictions. The assessment is based on 61 held-out rows, and 30% were outside the range the model saw in training. Prediction parity gaps appear when results are grouped by exang, fbs, and sex. Validate on a fresh sample before relying on the model for decisions.

### Recommended Next Data

- Collect more rows covering the range of data present in the 30% of held-out rows that are outside the training distribution. Reason: a notable minority of held-out rows are outside the training distribution, as flagged with 30% in diagnostics.
- Collect more rows for the column exang, ensuring balanced representation. Reason: the fairness flag for exang found a prediction parity gap between its 2 groups.
- Collect more rows for the column fbs, ensuring balanced representation. Reason: the fairness flag for fbs found a prediction parity gap between its 2 groups.
- Collect more rows for the column sex, including each group clearly. Reason: the fairness flag for sex found a prediction parity gap between its 2 groups.
- Add or improve features to help explain the variation in the target num. Reason: the model explains only 39% of the variation on held-out rows, leaving 61% unexplained.

### Quality by Input Range

Per-Segment Quality splits the held-out rows by every usable feature and compares each segment's R² with the overall held-out R². A numeric feature is split into quartiles; a categorical feature 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.

#### Num by Input Range

Segment `sex` = `false` performs **in line with the aggregate** (16 held-out rows): segment R² 0.629 against aggregate R² 0.387 (gap 0.242). No quality drift detected.

- **Column:** sex
- **Gap vs aggregate:** 0.24169
- **MAE:** 0.36523
- **N:** 16
- **R²:** 0.62863
- **Residual mean:** 0.06055
- **Value:** false
- **Verdict:** Consistent

### Out-of-Distribution

Out-of-distribution detection finds held-out rows that lie far from the rows the model was trained on. For each numeric feature, a row's value is standardized against the training mean and standard deviation; the combined standardized distance across all features is compared with a fixed line at 3.0. Rows beyond that line are flagged as **out of distribution**: the headline quality is unlikely to apply to them. The more features the model uses, the more rows cross this fixed line, so the flagged share reads against the feature count rather than as an alarm rate.

The chart shows one bar per held-out row in row order; the flagged rows are the bars at or above the line.

The check treats features 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.

18 of 61 held-out rows (30%) exceed the diagonal-Mahalanobis z = 3.00 bracket: far from the training-row distribution on at least one feature axis. That is a **notable minority**: predictions on those rows extrapolate beyond the rows the model was fitted on. Their accuracy deserves caution; the Worst Predictions chapter often surfaces these same rows.

- **Held-out rows out of distribution:** 18
- **Held-out rows measured:** 61
- **Share out of distribution (%):** 29.51
- **Distance line:** 3

### Fairness

This chapter checks the held-out predictions for uneven treatment of groups. For every categorical column with two to ten distinct values, other than the target, it reports per group the row count, mean actual value, mean prediction, mean residual, R² and MAE, and two measures across the groups.

- **Prediction parity ratio**: the smallest group mean prediction divided by the largest, in absolute value. A ratio of 1.0 is perfect parity. Below 0.80, the four-fifths rule, some group receives systematically different predictions.
- **Largest mean residual**: the largest absolute mean residual of any group. Above 30% of the overall residual standard deviation, at least one group is systematically over- or under-predicted.

The verdict combines the two: **balanced** when neither measure trips, **parity gap** or **residual bias** when one does, **parity gap and residual bias** when both do, and **insufficient data** when fewer than two groups have enough held-out rows.

Diafunc does not decide which columns are protected attributes; it reports every plausible one. A flagged column matters where it is a protected attribute in the decision the model supports, and can be set aside where it is not.

#### Num Fairness

Column `exang` splits the held-out rows into 2 groups. The prediction-parity ratio is 0.508 (smallest over largest mean prediction), the largest absolute group residual mean is 0.0661 (0.0667 times the aggregate residual standard deviation). **Parity gap**: at least one group receives systematically smaller predictions on average. Whether that is a property of the underlying outcome or a model bias against the group needs checking.

- **Aggregate residual std:** 0.99111
- **N columns:** 3

**Columns**

| Bias max abs residual mean | Column | Groups | Interpretation | N groups | Prediction parity ratio | Verdict |
| --- | --- | --- | --- | --- | --- | --- |
| 0.06608 | exang | true, false | Column exang splits the held-out rows into 2 groups. The prediction-parity ratio is 0.508 (smallest over largest mean prediction), the largest absolute group residual mean is 0.0661 (0.0667 times the aggregate residual standard deviation). Parity gap: at least one group receives systematically smaller predictions on average. Whether that is a property of the underlying outcome or a model bias against the group needs checking. | 2 | 0.5076 | Prediction parity gap |
| 0.04529 | fbs | false, true | Column fbs splits the held-out rows into 2 groups. The prediction-parity ratio is 0.591 (smallest over largest mean prediction), the largest absolute group residual mean is 0.0453 (0.0457 times the aggregate residual standard deviation). Parity gap: at least one group receives systematically smaller predictions on average. Whether that is a property of the underlying outcome or a model bias against the group needs checking. | 2 | 0.59098 | Prediction parity gap |
| 0.06055 | sex | false, true | Column sex splits the held-out rows into 2 groups. The prediction-parity ratio is 0.584 (smallest over largest mean prediction), the largest absolute group residual mean is 0.0605 (0.0611 times the aggregate residual standard deviation). Parity gap: at least one group receives systematically smaller predictions on average. Whether that is a property of the underlying outcome or a model bias against the group needs checking. | 2 | 0.58421 | Prediction parity gap |

### 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 feature *causes* the target.

A correlative model is the right tool for predicting future outcomes from similar inputs, for exploring which features 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 a feature will change the outcome, for attributing outcomes to specific causes for accountability, or for choosing between policies that act on the inputs.

**To upgrade to causal claims**

- **Controlled experiment**: Randomize the feature to be acted on, then analyze again. Randomization breaks confounding, so any change in the target is attributable to the feature.
- **Natural experiment**: Find a setting where the feature 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 feature and the target, stratify by it or condition on it before fitting again. Gaps in the Per-Segment Quality chapter are a clue.

The Per-Segment Quality, 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 a feature will change the target. The 4 upgrade pathways below show what evidence would support a causal claim.

**Upgrade pathways**

| Name | Summary |
| --- | --- |
| Controlled experiment | Randomize the feature to be acted on, then analyze again. Randomization breaks confounding, so any change in the target is attributable to the feature. |
| Natural experiment | Find a setting where the feature 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 feature and the target, stratify by it or condition on it before fitting again. Gaps in the Per-Segment Quality chapter are a clue. |

### Deployment Readiness

The analysis ran with the configuration below. The computed checks and the verdict follow once the diagnostics have run.

- **Targets**: 1 target: `num`
- **Rows**: 303 rows
- **Per-Segment Predictions**: not produced, because no segment column was chosen
- **Fairness**: compared across 3 categorical columns (`exang`, `fbs`, `sex`); which of them are protected attributes is not decided here
- **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 (3 pass, 2 warn, 0 fail), the model passes the hard gates but **at least one check warns**: **Ready with caution**. A limited audience and monitoring of the warning signals come before a broad rollout.

| Name | Status | Detail |
| --- | --- | --- |
| Generalization | Pass | held-out quality holds up against training quality |
| Baseline Lift for num | Pass | beats the best baseline, R² lift 0.39 |
| Model Constraints | Pass | every held-out prediction is finite and within the training range |
| Fairness | Warn | 3 columns compared, 3 flagged: exang (a group receives systematically smaller predictions), fbs (a group receives systematically smaller predictions), sex (a group receives systematically smaller predictions) |
| Out-of-Distribution | Warn | 30% of held-out rows are out of distribution |

- **N critical concerns:** 0
- **N fail:** 0
- **N pass:** 3
- **N warn:** 2
- **Overall verdict:** Caution

### 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 | 58d67220-48b7-11f1-8087-d378640fe787 |
| Run time | 2026-09-12 21:32 UTC |
| Processed input table | 581745da-e2e1-4c2e-9bbe-d5b102d6e55b |
| Total rows | 303 |
| Modeled targets | num |
| Segment column | not available |
| Computation time | 1 h 0 min |
| Compute budget | 500 credits |

### Findings

1 finding from the implications diagnostics (1 Warning) is listed in the Concerns chapter at the top of the analysis.

