Model Builder
Explore what predicted 3-point shot makes in the 2014–15 NBA season. Test whether adding different shot conditions improves the model — or build one from scratch.
All six shot-condition variables are pre-selected. Add or remove them to see how model fit changes. Use the simulator at the bottom to test individual scenarios.
How to Use This Tool
Not sure where to start? All six shot-condition variables are pre-selected. Click Run Analysis at the bottom to see how the model performs, then add or remove variables to explore.
How to Use This Tool
Not sure where to start? All six shot-condition variables are pre-selected. Click Run Analysis at the bottom to see how the model performs, then add or remove variables to explore.
1. Outcome Variable
The outcome is 3-Point Shot Make — whether the shot went in (1 = made, 0 = missed). All models predict this single outcome.
2. Filter to a Player (Optional)
By default, the model is fit on all 33,362 shots from the 2014–15 season. Optionally pick a single player from the dropdown to fit the model on just their shots — useful for asking "what predicts this shooter's makes?" Players with fewer than 100 attempts are hidden.
3. Select Predictors
Check the shot-condition variables you want to test as predictors. All six are pre-selected by default. You can add or remove any — up to 20 for Run Analysis. Hover the icons for plain-English definitions.
4. Add a Synthetic Variable (Optional)
Check Configure Synthetic Variable to add a hypothetical shot condition — one not measured in the data but theoretically possible. You set how strongly it should correlate with the outcome and how different it should be from existing predictors. After running, the results show whether this imaginary variable would have improved the model, and which real shot-log variables come closest to capturing the same signal.
5. Run Analysis or Auto-Build
Run Analysis is the primary tool — it builds a model from exactly the variables you selected. Use it when you want full control.
Auto-Build Standard searches all available shot conditions automatically and selects those that most improve predictive fit. Useful as a benchmark.
Auto-Build Actionable Predictors applies an additional constraint: it weights selection toward variables that can be influenced by coaching and shot selection (e.g. shot distance, defender distance) over context that is fixed at shot time (e.g. game margin, period). The result is a model suited for strategy.
Auto-Build does not use a synthetic variable. To add one, run Auto-Build first to identify the best predictor set, then re-run with Run Analysis with the synthetic variable enabled.
6. Review Results
Results show how well the model predicts shot makes and how much each condition contributes. The Other Conditions in This Data section below the results lists every variable not yet in your model — each card shows whether adding it would likely improve fit. Click Add to model on any card to include it, then re-run.
7. Use the Simulator
After running, click Launch in the Simulator panel to open an interactive tool. Set any combination of shot conditions — for example, set Defender Distance to "Tight" and Shot Clock to "Late" — and see the predicted make probability update instantly.
8. Iterate and Compare
Each run is saved automatically in the Saved Analyses tray. Click Load on any saved card to restore that run's variables and settings. Use Compare to view two runs side by side — each card shows three scores: Tjur R² (how well the model separates makes from misses), AUC (overall predictive accuracy), and Brier (calibration error — lower is better). Higher Tjur R² and AUC and lower Brier means a better-performing model.
Understanding Your Results
After running your analysis, results are organized into up to three sections:
Full Model
Complete model including all selected predictors and the synthetic variable, if configured.
Base Model
Model performance without the synthetic variable (appears only when one is configured).
Synthetic Variable Performance
How well the synthetic variable met its specifications and its impact on model performance (appears only when one is configured).