HPM v1 Feature Knockouts
This study tests whether each original HPM v1 contextual feature family earns its complexity. Every candidate retains the same player prior, bounded hierarchical P-spline procedure, temporal hierarchy, training seasons, and frozen evaluation contract as Original HPM v1. It removes only one family from the contextual design matrix.
| Candidate | Removed signals |
|---|---|
| Without shooting | 3PA, 3PM, bottom-two shooting, credible-shooter count, shooting-by-usage, shooter-by-passing |
| Without creation/passing | assists and top-two assists |
| Without rebounding | offensive/defensive rebounds, square-root rebound summaries, rebounding-by-usage |
| Without defensive events | steals and blocks |
| Without uncertainty/replacement | imputed-profile count and replacement-profile weight |
Each completed candidate will face Original HPM v1 in the Frozen Model Tournament. A knockout is promoted only if it has a paired 95% bootstrap interval below zero for full-game margin RMSE; otherwise the original feature family remains in the production model.
Fixed-Model Reliance Screen
Before paying for five full recursive refits, we ran a faster, fixed-model screen. For each frozen target season from 2023-24 through 2025-26, it holds the completed Original HPM v1 model and player priors fixed, replaces one feature family's value on both units with its possession-weighted reference value, and replays the realized regular-season stints and possessions. This measures how much the saved model relies on that family; it does not measure the incremental predictive value of a family after the remaining correlated signals have been retrained to compensate.
Positive deltas below mean the neutralized model is worse, so the retained family supports the original forecast. The reported interval is a paired 95% bootstrap interval over the three pooled frozen regular seasons.
| Neutralized family | Full-game margin RMSE delta | Paired 95% interval | Initial read |
|---|---|---|---|
| Shooting | -0.0052 | [-0.0483, +0.0380] | No material reliance signal |
| Creation/passing | +0.0530 | [-0.0099, +0.1171] | Suggestive, but inconclusive |
| Rebounding | +0.0700 | [+0.0400, +0.1003] | Clear reliance signal |
| Defensive events | +0.0467 | [-0.0003, +0.0948] | Borderline reliance signal |
| Uncertainty/replacement | +0.0149 | [-0.0084, +0.0382] | No material reliance signal |
The same replay records winner accuracy, possession RMSE, and possession MAE.
Its immutable artifact is
artifacts/models/analysis/hpm_v1_feature_inference_audit/hpm-v1-feature-inference-audit-20260815T021616Z-597607aa/.
Rebounding is the first family worth prioritizing for a full recursive
ablation; the screen alone is not grounds for deleting any other family.
Rebounding Components
We then used the same no-refit, three-season screen to neutralize each input within the original rebounding family individually. This identifies which saved HPM v1 terms the forecast actually depends on, while retaining the same important limitation: correlated terms cannot adapt because the model is not retrained.
| Neutralized input | Full-game margin RMSE delta | Paired 95% interval | Initial read |
|---|---|---|---|
| Offensive rebounds per 100 | +0.0340 | [+0.0137, +0.0546] | Clear reliance signal |
| Defensive rebounds per 100 | +0.0011 | [-0.0053, +0.0074] | No standalone signal |
| Square-root offensive rebounds | -0.0021 | [-0.0130, +0.0089] | No standalone signal |
| Square-root defensive rebounds | +0.0009 | [-0.0048, +0.0065] | No standalone signal |
| Rebounding-by-usage interaction | +0.0337 | [+0.0182, +0.0495] | Clear reliance signal |
The two clear terms nearly account for the full family result together. This does not prove that defensive rebounding or the square-root summaries are useless after a refit; it says that the saved HPM v1 forecast primarily draws its current rebounding signal from offensive rebounding and how rebounding is paired with lineup usage.
What “rebounding-by-usage” Means
The saved v1 feature is more precisely named offensive-rebound × usage concentration. For a unit (U), it is
Here “(1)” and “(2)” are the two highest-usage players in the unit. For example, a lineup with total profile offensive rebounds of 9 per 100 has (r=3). If its top two players account for 57% of the unit's profile usage, then (x=3\times0.57=1.71). With the same rebounding but a more evenly shared 43% top-two usage share, (x=1.29).
It is a lineup-level proxy, not a player attribution and not a direct net
rating coefficient: the fitted spline learns the response to this value along
with all other context features. The term was intended to test whether
offensive rebounding has a different lineup effect when offensive creation is
concentrated. Its reliance result makes it worth retaining for now, but it is
also exactly the sort of hand-crafted feature that merits a later retrained
ablation or replacement by a more principled possession-allocation feature.
The immutable artifact is
artifacts/models/analysis/hpm_v1_feature_inference_audit/hpm-v1-rebounding-components-inference-audit-20260815T022949Z-f87b9b04/.
Next Group: Defensive Events
The next component-level screen separates the original defensive-event family into its two raw inputs: steals per 100 possessions and blocks per 100 possessions. This is a diagnostic first, not a claim that either event is an individual player's context value. The follow-up candidate will be designed only after this audit determines whether either saved HPM v1 response is materially relied on.
Run
uv run nba-audit-hpm-v1-context
This no-refit screen typically completes in minutes because it caches each distinct five-player unit and unit pair. To run a full retrained knockout:
uv run nba-train-hpm-v1-knockout shooting --through-season 2025-26
Replace shooting with creation, rebounding, defensive_events, or
uncertainty. Each run writes an immutable recursive artifact under
artifacts/models/forward_hpm_v1_without_<family>/.
To repeat the individual rebounding screen:
uv run nba-audit-hpm-v1-rebounding
To audit steals and blocks separately:
uv run nba-audit-hpm-v1-defensive-events
| Neutralized input | Full-game margin RMSE delta | Paired 95% interval | Initial read |
|---|---|---|---|
| Steals per 100 | +0.0199 | [-0.0206, +0.0603] | Inconclusive |
| Blocks per 100 | +0.0237 | [+0.0028, +0.0446] | Clear fixed-model reliance |
The immutable artifact is
artifacts/models/analysis/hpm_v1_feature_inference_audit/hpm-v1-defensive-event-components-inference-audit-20260815T155811Z-b186e6b7/.
Next Group: Creation and Passing
The final unexamined original HPM v1 group separates raw assists per 100, top-two assists, and the credible-shooter-by-top-two-assists interaction. The last signal belongs here even though it appears in the historical shooting bundle: its meaning is explicitly conditional on concentrated passing and therefore needs its own component screen.
uv run nba-audit-hpm-v1-creation