CPCLAB-UNIPI / SIPPY

Systems Identification Package for PYthon
GNU Lesser General Public License v3.0
269 stars 92 forks source link

Why the SS_threshold is 0.0 #32

Open jamestjsp opened 3 years ago

jamestjsp commented 3 years ago

According to documentation "Using a fixed order value, the maximum order and the threshold value are not taken into account." but is the select_order_SIM, SS_threshold is not passing and the algorithm_1 is always taking default value 0.0. https://github.com/CPCLAB-UNIPI/SIPPY/blob/b699ab99d4f5a0c74941e1752f460241ce4744ab/sippy/OLSims_methods.py#L171

CPCLAB-UNIPI commented 3 years ago

Dear jamestjsp, when using a fixed order value, the function select_order_SIM is not evoked. Usually, when SS_fixed_order is not False, no information criteria is needed, therefore the threshold is set to 0.0. Otherwise, when specifying a threshold value (default value is 0.1) and maximum order, the values passed to algorithm_1 are the ones specified by the user. Please, let us know if it is clear.

Best regards,

SIPPY team

jamestjsp commented 3 years ago

As you can see the select_order_SIM has no argument SS_threshold. https://github.com/CPCLAB-UNIPI/SIPPY/blob/b699ab99d4f5a0c74941e1752f460241ce4744ab/sippy/__init__.py#L735

RBdC commented 3 years ago

Dear jamestjsp, hoping you solved this old issue. Anyway, here below I report the relative quotes of our guide for a better comprehension.

As you know, there are two main cases: 1) when an Information Criterion (IC) is NOT selected: After performing the singular value decomposition (SVD) scheduled for the SS identification, which allows building the suitable subspace from the original data space, the corresponding model order n (that is, the number of states) can be chosen by the settings: • I) a threshold value(SS_threshold, between 0.0 and 1.0) and the maximum order (SS_max_order, integer number); • II) a fixed order(SS_fixed_order, integer number). which are actually two alternatives methods. The threshold value implies that all singular values such that σi/σmax < SS_threshold are discarded, where σmax is the largest singular value, and σi is i-th singular value. The maximum order value (which acts in parallel) limits the order of the model to that value. Otherwise, using a fixed order value, the maximum order and the threshold value are not taken into account, and only a pure fixed order is considered By default: SS_threshold=0.1, while the other parameters are not specified.

2) When an IC is selected, the approach is totally different: the SS model order n is chosen in the defined range SS_orders, a list with two integer numbers; by default: SS_orders=[1,10] according to the IC selected. so that, SS_max_order and SS_threshold (and neither SS_fixed_order) are not to be passed to the corresponding functions. All the best SIPPY Team