PSI-SINDy: Post-Selection Inference for Sparse Identification of Nonlinear Dynamics
Organizations: RIKEN · Nagoya University
Abstract
Sparse identification of nonlinear dynamics (SINDy) is a data-driven framework for discovering governing dynamics from time-series data by identifying a sparse subset of candidate dynamical terms from a prespecified library. In this work, we develop a statistical inference framework for quantifying the reliability of dynamical terms selected by SINDy through hypothesis tests and confidence intervals. A key difficulty is that using the same noisy trajectory for both selecting dynamical terms and assessing their statistical significance can introduce selection bias. Post-selection inference provides a principled framework for addressing such bias, and we propose PSI-SINDy, a post-selection inference method tailored to SINDy. Direct application of existing post-selection inference techniques is challenging because SINDy involves measurement error in the candidate terms and shared noise between the response and design. To address these challenges, PSI-SINDy uses data thinning to decompose a single observed trajectory into four mutually independent views with distinct roles in selection and inference. This construction enables inference for selected dynamical terms while accounting not only for selection bias but also for measurement-error and shared noise effects. We establish the theoretical validity of PSI-SINDy under stated conditions and evaluate its performance through numerical experiments on simulated and experimental dynamical-system data.
Figures & tables
| Term | Full | No gap | No feature correction | ||
|---|---|---|---|---|---|
| 0.06 | 812 | 5.42 | 7.51 | 6.28 | |
| 0.06 | 812 | 5.30 | 7.51 | ||
| 0.06 | 812 | 5.42 | 6.28 | ||
| 0.12 | 452 | 5.53 | 7.30 | 11.06 | |
| 0.12 | 452 | 6.86 | 8.85 | ||
| 0.12 | 452 | 5.53 | 6.86 |
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Selected-BLA target | ||||
|---|---|---|---|---|
| Naive | Bonferroni | PSI-SINDy | ||
| 200 | 3425 | 7.36 [6.53,8.28] | 1.84 [1.44,2.35] | 4.41 [3.77,5.15] |
| 800 | 3360 | 7.86 [6.99,8.82] | 2.02 [1.60,2.56] | 5.39 [4.67,6.20] |
| 1600 | 3423 | 7.36 [6.53,8.29] | 1.61 [1.24,2.09] | 4.91 [4.23,5.68] |
| 3200 | 3452 | 8.69 [7.80,9.68] | 1.74 [1.35,2.23] | 5.27 [4.58,6.07] |
| Realized-IV target | ||||
| Bonferroni | PSI-SINDy | Bon. joint | PSI joint | ||
|---|---|---|---|---|---|
| 0.02 | 3540 | 101 2.85 [2.35, 3.45] | 239 6.75 [5.97, 7.63] | 2.02 | 4.78 |
| 0.04 | 3901 | 210 5.38 [4.72, 6.14] | 460 11.79 [10.82, 12.84] | 4.20 | 9.20 |
| 0.08 | 4440 | 718 16.17 [15.12, 17.28] | 1280 28.83 [27.52, 30.18] | 14.36 | 25.60 |
| 0.16 | 4896 | 2306 47.10 [45.70, 48.50] | 3175 64.85 [63.50, 66.17] | 46.12 | 63.50 |
| Method | Type I error | 95% MC interval for Type I error | Structural coverage | Median width |
|---|---|---|---|---|
| PSI-SINDy | 4.70 | [3.71, 5.95] | 95.30 | 0.1914 |
| Ensemble, SG5 | 0.00 | [0.00, 0.28] | 100.00 | 2.9573 |
| Ensemble, longer SG | 8.10 | [6.78, 9.66] | 91.90 | 0.1675 |
| Residual, matched support | 20.48 | [18.43, 22.69] | 79.52 | 0.1676 |
| System | Slope BLA coverage | Width | Family events | FWER | ||
|---|---|---|---|---|---|---|
| Polynomial | 200 | 452 | 92.92 [90.18,94.94] | 0.11091 | 14 | 3.10 [1.85,5.13] |
| Polynomial | 800 | 812 | 94.70 [92.94,96.04] | 0.05536 | 32 | 3.94 [2.81,5.51] |
| Polynomial | 1600 | 1046 | 94.55 [93.00,95.77] | 0.03917 | 45 | 4.30 [3.23,5.71] |
| Polynomial | 3200 | 1234 | 94.17 [92.72,95.34] | 0.02769 | 40 | 3.24 [2.39,4.38] |
| Sine-augmented | 200 | 673 | 94.50 [92.51,95.99] | 0.07656 | 47 | 6.98 [5.29,9.16] |
| Sine-augmented | 800 | 1096 | 94.62 [93.12,95.80] | 0.03818 | 54 | 4.93 [3.80,6.37] |
| System | IV rejection (%) | Scale ratio | Remainder | SD | |
|---|---|---|---|---|---|
| Polynomial | 200 | 6.19 [4.32, 8.81] | 0.986 | 0.0267 | 1.005 |
| Polynomial | 800 | 5.42 [4.06, 7.20] | 0.996 | 0.0154 | 1.010 |
| Polynomial | 1600 | 6.12 [4.82, 7.74] | 0.999 | 0.0103 | 1.003 |
| Polynomial | 3200 | 4.86 [3.80, 6.21] | 0.998 | 0.0074 | 1.008 |
| Sine-augmented | 200 | 5.35 [3.89, 7.32] | 0.998 | 0.0145 | 1.005 |
| Sine-augmented | 800 | 5.02 [3.88, 6.48] | 0.999 | 0.0076 | 1.002 |
| Study | Term | BLA coverage | Remainder | Scale ratio | ||
|---|---|---|---|---|---|---|
| Primary | 200 | 3425 | 95.59 | 0.0607 | 1.0195 | |
| Primary | 3200 | 3452 | 94.73 | 0.0156 | 1.0002 | |
| Sine drift | 800 | 2989 | 87.82 | 0.8341 | 0.9232 | |
| Pendulum | 1600 | 275 | 85.82 | 0.9562 | 1.4048 |
| Full-method rejection (%) | Without gap scale | Without feature correction | |||
|---|---|---|---|---|---|
| 0.06 | 1 | 812 | 5.42 | ||
| 0.06 | 2 | 812 | 5.30 | ||
| 0.06 | 3 | 812 | 5.42 | ||
| 0.12 | 1 | 452 | 5.53 | ||
| 0.12 | 2 | 452 | 6.86 | ||
| 0.12 | 3 | 452 | 5.53 |
| Rejection at the true selected BLA | |||
|---|---|---|---|
| Full | Uncorrected | OLS | |
| 0.12 | 4.76 [4.20,5.39] | 6.74 [6.08,7.47] | 9.64 [8.85,10.49] |
| 0.24 | 4.46 [3.92,5.07] | 5.82 [5.20,6.50] | 11.98 [11.11,12.91] |
| Dynamics | Size | Coverage [MC] | Width | Size | Coverage [MC] | Width | |||
|---|---|---|---|---|---|---|---|---|---|
| Quadratic | 4 | 3.010/4 | 473/500 | 95.77 [93.56,97.25] | 0.1615 | 3.004/4 | 500/500 | 95.40 [93.19,96.92] | 0.0806 |
| 6 | 3.034/4 | 434/500 | 95.85 [93.54,97.36] | 0.1614 | 3.002/4 | 495/500 | 95.56 [93.36,97.05] | 0.0806 | |
| 8 | 3.052/5 | 426/500 | 95.54 [93.14,97.13] | 0.1614 | 3.018/4 | 487/500 | 95.48 [93.26,97.00] | 0.0806 | |
| 10 | 3.054/5 | 426/500 | 95.77 [93.42,97.31] | 0.1614 | 3.014/4 | 489/500 | 95.50 [93.28,97.01] | 0.0806 | |
| 15 | 3.056/5 | 424/500 | 95.75 [93.39,97.30] | 0.1614 | 3.016/4 | 488/500 | 95.49 [93.27,97.00] | 0.0806 | |
| Equation | Term | BLA | No gap | IV | |
|---|---|---|---|---|---|
| VdP (2) | 2000 | 94.85 [93.79,95.74] | 13.85 [12.41,15.43] | 4.25 [3.45,5.23] | |
| VdP (2) | 2000 | 95.30 [94.28,96.14] | 75.45 [73.52,77.29] | 5.25 [4.36,6.32] | |
| LV (1) | 2000 | 94.65 [93.58,95.55] | 56.55 [54.37,58.71] | 4.45 [3.63,5.44] | |
| Lorenz (2) | 2000 | 94.00 [92.87,94.96] | 15.00 [13.50,16.63] | 4.80 [3.95,5.83] | |
| Lorenz (2) | 2000 | 98.00 [97.29,98.53] | 55.50 [53.31,57.67] | 4.90 [4.04,5.94] | |
| Pendulum (2) | 2000 | 90.50 [89.14,91.71] | 78.75 [76.90,80.49] | 4.50 [3.68,5.50] |
| Study | Cells | Settings varied | |
|---|---|---|---|
| Tuning | 13 | 4000 | Threshold ; ; radius ; allocations specified below. , . |
| Noise scale | 8 | 4000 | ; , . |
| Misspecification | 27 | 4000 | Sine drift, exponential, logistic; and . |
| Misspecified signal | 12 | 3000 | Sine and exponential drifts, ; , . |
| Components | 6 | 5000 | and ; all arms retained. |
| Identification | 12 | 3000 | and . |
| Quantity | Setting |
|---|---|
| Processed observations | Ten-point averages assigned their mean times; 10 Hz |
| Fitting window | s; per device |
| Library and weak equations | ; prespecified weights |
| Thinning allocation | Four equal fractions, using the estimated working scale |
| Selection | STLSQ on view 1, mandatory constant, at most 10 iterations |
| Threshold candidates |
| Feature | Estimate | Response | Gap | Total | Working interval |
|---|---|---|---|---|---|
| -0.520512 | 0.7403 | 0.0197 | 0.7406 | ||
| 0.289392 | 1.8457 | 0.0454 | 1.8463 | ||
| -0.139550 | 1.5289 | 0.0339 | 1.5292 |
| Independent noise | Correlated noise | |||
|---|---|---|---|---|
| Device | Supplied scale | Estimated scale | Supplied scale | Estimated scale |
| 1 | 94.87 (0.66) | 94.80 (0.67) | 79.90 (1.20) | 61.10 (1.47) |
| 2 | 95.33 (0.65) | 95.33 (0.64) | 83.40 (1.12) | 67.43 (1.40) |
| 3 | 95.67 (0.60) | 95.67 (0.60) | 82.37 (1.16) | 67.87 (1.41) |
| 4 | 94.57 (0.68) | 94.57 (0.68) | 80.63 (1.19) | 62.57 (1.46) |
| 5 | 95.85 (0.60) | 95.83 (0.61) | 84.30 (1.11) | 74.20 (1.34) |
| Pipeline | Inference | ||||
|---|---|---|---|---|---|
| 200 | 0 | 799 | 21 | 0.0082 [0.0001, 0.0090] | 0.0088 [0.0076, 0.0091] |
| 800 | 0 | 1199 | 20 | 0.0382 [0.0001, 0.0396] | 0.0391 [0.0382, 0.0398] |
| 1600 | 0 | 1599 | 24 | 0.1010 [0.0987, 0.1038] | 0.1013 [0.1000, 0.1045] |
| 3200 | 0 | 2399 | 19 | 0.2673 [0.0002, 0.2708] | 0.2701 [0.2680, 0.2709] |
| 800 | 0.16 | 1199 | 30 | 0.0379 [0.0374, 0.0382] | 0.0378 [0.0373, 0.0381] |