MLB Quant Rigor Upgrade | Baseball biomechanics and ML
MLB Biomechanics Velocity Study
A reproducible pitching-analysis pipeline that converts public motion-capture variables into interpretable biomechanical metrics, validates fastball velocity models with grouped session splits, and separately summarizes public Statcast pitch-trait outcomes.
Data boundary: OpenBiomechanics athletes are anonymized. This report does not claim direct player-level matching to MLB outcomes. It models biomechanics-to-velocity and separately models pitch-trait-to-outcome relationships.
Executive Summary
Biomechanics sourceOpenBiomechanics public pitching metrics
Performance sourceBaseball Savant Statcast CSV
Velocity RMSE lift1.35 mph
Validation groups100 sessions
Statcast rows25,000
Statcast dates2025-04-24 to 2025-04-30
Pitch types16
Primary signalKinetic-chain transfer
Main baseball finding: kinetic-chain transfer is the strongest engineered signal for fastball velocity in the public OpenBiomechanics sample. The holdout ridge model reduces pitch-speed error from 4.33 mph to 2.98 mph, and validation is grouped by session so a pitcher's repeated throws do not leak across train and test.
Model Card
This section defines the modeling boundary, validation unit, and intended interpretation before presenting feature-level results.
Item
Value
Primary target
pitch_speed_mph
Biomechanics validation unit
session
Holdout rows
119
Holdout sessions
25
Baseline RMSE
4.33 mph
Ridge RMSE
2.98 mph
Primary model
ridge regression, alpha=10.0
CV design
repeated grouped K-fold by session with inner alpha selection
predictive association only; no causal or identity-linked MLB claim
Velocity Model
Baseline RMSE4.33 mph
Ridge RMSE2.98 mph
Ridge MAE2.40 mph
Selected alpha10.0
Grouped Cross-Validation Model Comparison
All folds are grouped by session so the same athlete/session is never in both train and test for a fold. Ridge uses an inner grouped CV alpha search.
Model
RMSE mean
RMSE std
RMSE CI low
RMSE CI high
MAE mean
R2 mean
knn_k7
4.146
0.465
3.910
4.381
3.298
0.175
mean_baseline
4.722
0.414
4.512
4.931
3.833
-0.037
ols
3.502
0.643
3.177
3.827
2.716
0.396
ridge_alpha_grid
3.505
0.620
3.192
3.819
2.717
0.397
Bootstrap Uncertainty
Holdout metrics are bootstrapped by session to respect repeated pitches within the same held-out session.
Metric
Estimate
CI low
CI high
Bootstraps
Unit
rmse
2.982
2.062
3.833
500
session
mae
2.401
1.807
3.015
500
session
r2
0.513
0.009
0.750
500
session
Feature-Set Comparison
This checks whether engineered composites add value beyond the raw metric inputs and whether simple interaction terms help.
Feature set
Features
RMSE mean
RMSE std
CI low
CI high
Delta vs best
raw_metric_inputs
21
3.182
0.581
2.888
3.476
0.000
raw_plus_engineered
28
3.192
0.534
2.922
3.463
0.010
engineered_interactions
12
3.254
0.702
2.899
3.609
0.072
engineered_metrics
7
3.505
0.620
3.192
3.819
0.323
Metric Ablation
Rows show how repeated grouped-CV RMSE changes when each engineered metric is removed from the ridge model. Positive delta means removing that metric made the model worse.
Feature removed
Features
RMSE mean
MAE mean
R2 mean
RMSE delta
kinetic_chain_transfer_score
6
4.293
3.430
0.133
0.787
arm_speed_score
6
3.644
2.842
0.348
0.139
release_consistency_score
6
3.518
2.711
0.392
0.012
sequencing_efficiency
6
3.508
2.718
0.399
0.002
none
7
3.505
2.717
0.397
0.000
lead_leg_block_score
6
3.494
2.722
0.400
-0.012
lower_body_force_score
6
3.453
2.670
0.413
-0.052
hip_shoulder_separation_score
6
3.422
2.684
0.425
-0.084
Metric Correlations
Descriptive Pearson correlations show which raw and engineered biomechanics fields move with pitch velocity before multivariable modeling.
Feature
Type
Velocity corr
Rows
elbow_transfer_fp_br
raw_metric_input
0.691
411
kinetic_chain_transfer_score
engineered_metric
0.656
411
shoulder_transfer_fp_br
raw_metric_input
0.651
411
thorax_distal_transfer_fp_br
raw_metric_input
0.645
411
lead_grf_mag_max
raw_metric_input
0.420
403
lead_grf_z_max
raw_metric_input
0.401
403
lower_body_force_score
engineered_metric
0.356
411
max_torso_rotational_velo
raw_metric_input
0.328
411
lead_leg_block_score
engineered_metric
0.321
411
max_shoulder_internal_rotational_velo
raw_metric_input
0.313
411
rotation_hip_shoulder_separation_fp
raw_metric_input
0.305
411
hip_shoulder_separation_score
engineered_metric
0.304
411
arm_slot
raw_metric_input
-0.301
411
max_rotation_hip_shoulder_separation
raw_metric_input
0.289
411
Most Important Velocity Features
Permutation importance is measured as the increase in holdout RMSE after repeated shuffles of each metric. Intervals show stability across repeated permutations.
feature
rmse_increase
rmse_increase_std
ci_lower
ci_upper
repeats
kinetic_chain_transfer_score
1.505
0.177
1.220
1.863
50
arm_speed_score
0.220
0.056
0.118
0.315
50
lower_body_force_score
0.093
0.087
-0.068
0.253
50
sequencing_efficiency
0.067
0.033
0.002
0.126
50
release_consistency_score
0.034
0.022
-0.005
0.078
50
lead_leg_block_score
0.004
0.007
-0.009
0.017
50
hip_shoulder_separation_score
-0.041
0.055
-0.144
0.058
50
Model Coefficients
Coefficients are from standardized features in the ridge-regression velocity model.
feature
coefficient
alpha
kinetic_chain_transfer_score
2.616
10.000
arm_speed_score
0.916
10.000
hip_shoulder_separation_score
0.793
10.000
lower_body_force_score
0.695
10.000
sequencing_efficiency
0.415
10.000
release_consistency_score
0.250
10.000
lead_leg_block_score
0.075
10.000
Residual Diagnostics
Residual summaries by velocity band identify where the model is under- or over-performing.
Velocity band
Rows
Actual mph
Mean residual
MAE
RMSE
80-85
41
82.49
-2.28
2.42
3.32
85-90
42
87.59
0.42
2.37
2.82
90-95
20
91.20
3.08
3.08
3.31
<80
16
78.41
-1.57
1.57
1.83
High-Velocity Error Check
This explicitly checks the 90+ mph region, where underprediction is the most baseball-relevant failure mode.
Group
Rows
Actual mph
Predicted mph
Mean residual
MAE
RMSE
Underpredicted
Overpredicted
all_pitches
119
85.20
85.53
-0.33
2.40
2.98
37.0%
63.0%
<90_mph
99
83.99
85.01
-1.02
2.26
2.91
24.2%
75.8%
90+_mph
20
91.20
88.12
3.08
3.08
3.31
100.0%
0.0%
Biomechanical Metric Dictionary
metric
baseball_interpretation
expected_direction
sequencing_efficiency
Pelvis and torso speed with better peak timing.
Higher should generally support velocity if timing is efficient.
hip_shoulder_separation_score
Magnitude of hip-shoulder separation near foot plant and max separation.
Higher can indicate useful rotational stretch, within athlete-specific limits.
kinetic_chain_transfer_score
Pelvis-to-torso, thorax-to-arm, shoulder, and elbow transfer metrics.
Higher suggests more energy moving through the throwing chain.
lead_leg_block_score
Lead-knee extension and lead-leg force indicators.
Higher can indicate a firmer front side and better rotational braking.
lower_body_force_score
Ground-reaction force, rate of force development, and center-of-gravity speed.
Higher reflects more lower-half force production.
arm_speed_score
Shoulder internal rotation and elbow extension angular velocity.
Higher is directly related to arm speed and pitch velocity.
release_consistency_score
Within-session stability of arm slot, stride angle, and stride length.
Higher means less mechanical variation within the athlete session.
Statcast Performance Bridge
The bridge summarizes how public pitch traits relate to outcomes. With a Baseball Savant CSV, whiff rate is computed per swing, chase rate per out-of-zone pitch, and hard-hit rate per batted ball.
These Statcast correlations use the local capped Baseball Savant sample. A chunked multi-month or full-season sample would be the next analytical upgrade.
Outcome
Trait
Correlation
whiff
release_speed
-0.039
whiff
release_extension
0.014
whiff
pfx_x
0.037
whiff
pfx_z
-0.048
whiff
plate_x
0.028
chase
release_speed
-0.067
chase
release_extension
0.015
chase
pfx_x
0.023
chase
pfx_z
-0.082
chase
plate_x
0.020
hard_hit
release_speed
0.026
hard_hit
release_extension
0.003
hard_hit
pfx_x
-0.022
hard_hit
pfx_z
0.019
hard_hit
plate_x
-0.019
run_value
release_speed
0.009
run_value
release_extension
0.002
run_value
pfx_x
-0.005
run_value
pfx_z
-0.006
run_value
plate_x
0.004
Next Private-Data Extension
With team-owned, identity-linked motion-capture and game data, this same pipeline could test whether changes in a pitcher's biomechanical metrics precede changes in velocity, whiff rate, run value, or durability indicators.