[Submitted on 24 Jun 2026 (v1), last revised 24 Jul 2026 (this version, v3)]

View PDF HTML (experimental)

Abstract:Keystroke dynamics offer a passive window into motor function, but existing work extracts aggregate typing statistics and trains classifiers for PD/control discrimination, foregoing interpretability and rarely reporting reliability. We instead apply maximum-entropy inverse reinforcement learning (IRL) to raw keystroke timing, recovering a per-subject speed-preference weight (w_speed) reflecting the implicit cost assigned to fast movement, without any clinical label during fitting. On the neuroQWERTY MIT-CSXPD dataset (85 subjects, 42 PD), we diagnose and correct a feature collinearity failure in an initial four-parameter decomposition, yielding an identifiable three-parameter model. The recovered w_speed correlates with UPDRS-III motor severity at r=-0.607 (95% CI [-0.770,-0.364], p<0.001, n=42), replicates across two independent sub-cohorts (r=-0.720, r=-0.588), and retains significant partial correlation after controlling for mean and SD of flight time (r=-0.371, p=0.016). It outperforms SHAP and LASSO on the same proxy features (r=+0.362 and r=+0.410) while additionally providing per-subject, interpretable output. A model-free AUC of 0.605 and LOO-CV AUC of 0.750 (95% CI [0.644,0.847]) confirm discriminative value. Test-retest reliability across clinic sessions yields ICC(2,1)=0.903 (95% CI [0.842,0.971]); no prior keystroke-PD study has reported formal reliability. Two other recovered weights (consistency, hand-alternation) did not survive confound checks, strengthening credibility of the surviving signal. Cross-modality external validation on independent mPower smartphone tapping data (n=200) recovers the same signal (r=-0.639, p=2.52e-24, OR=14.19), confirming convergent validity across modality, device, and country.

Submission history

From: Navin Bondade [view email]
[v1] Wed, 24 Jun 2026 01:11:05 UTC (92 KB)
[v2] Tue, 30 Jun 2026 21:18:33 UTC (92 KB)
[v3] Fri, 24 Jul 2026 23:32:15 UTC (709 KB)