Choosing an Estimator¶
pysib provides several estimators because different model structures and noise assumptions lead to different identification problems.
This page gives practical starting points. The best choice still depends on the data, input excitation, noise level, and model order.
Quick recommendations¶
| Goal | Start with | Notes |
|---|---|---|
| Fast baseline model | pysib.arx |
Closed-form least-squares estimate. Good first check. |
| ARX with independent repeated experiment | pysib.iv |
Uses a second output as instrument to reduce noise bias. |
| ARX with correlation criterion | pysib.correlation |
Minimizes error/instrument correlations over selected lags. |
| Output Error model without nonlinear optimization | pysib.sm |
Stieglitz-McBride iteration for OE structure. |
| Deterministic input/output dynamics | pysib.oe |
Prediction-error estimate of an OE model. |
| Shared process/noise dynamics with moving-average noise | pysib.armax |
Prediction-error estimate of an ARMAX model. |
| Separate process and noise dynamics | pysib.bj |
Most flexible polynomial structure in the package. |
| Difficult nonlinear convergence | filtered variants | Try oe_filtered, armax_filtered, or bj_filtered. |
Start simple¶
For most data sets, start with ARX:
ARX is fast and usually provides a useful baseline. It also helps check whether the input/output data, delay, and model orders are reasonable before using nonlinear estimators.
When to use Output Error¶
Use an Output Error model when the main objective is the deterministic transfer from input to output:
The OE structure models the process dynamics with B/F and treats the remaining error as additive output error. pysib.sm can be used as a non-C alternative for the same structure, while pysib.oe uses the C/LAPACK nonlinear optimizer.
When to use ARMAX¶
Use ARMAX when the noise dynamics are important and can reasonably share the A polynomial with the deterministic dynamics:
ARMAX estimates A, B, and C, giving a more detailed noise model than ARX while keeping a coupled process/noise denominator.
When to use Box-Jenkins¶
Use Box-Jenkins when the process dynamics and noise dynamics should be modeled separately:
Box-Jenkins estimates B/F for the deterministic path and C/D for the noise path. It is more flexible, but also has more parameters and a harder nonlinear optimization problem.
Instrumental-variable and correlation estimators¶
pysib.iv and pysib.correlation estimate ARX-structure models using alternative criteria.
Use iv when you have two output records from repeated experiments with the same input and independent noise:
Use correlation when you want to estimate ARX parameters by minimizing correlations between prediction error and an instrument:
If no external instrument is provided, correlation uses the input u as the instrument.
Filtered variants¶
The filtered estimators apply a continuation strategy before the final nonlinear optimization:
Filtered variants can help with convergence on difficult data sets, especially when the direct nonlinear estimate is sensitive to initialization.
Available filtered variants are:
pysib.oe_filteredpysib.armax_filteredpysib.bj_filtered
Practical workflow¶
- Estimate a simple ARX model.
- Check the delay
nzand model orders. - Try OE if the deterministic input/output dynamics are the main target.
- Try ARMAX or Box-Jenkins if noise modeling is important.
- Try filtered variants if nonlinear convergence is poor.
- Compare one-step predictions with
predictand noise-free simulations withsimulate.