Data Passivity
Ascertaining passivity of the data is much more straightforward than ascertaining causality. For each frequency in the dataset, the 2-norm of the S-parameter matrix should be computed, and it should be verified that
If this is not the case and passivity is enforced, fitting fails. Of course, if passivity is not enforced, a non-passive model is practically certain to be obtained.
A matrix whose 2-norm is greater than 1 can be perturbed so its 2-norm is one, and the minimal perturbation that achieves this can be computed using the Singular Value Decomposition (SVD). However unless the original norms are extremely close to 1, doing this manipulation is bound to make the data non-causal and should therefore be avoided.