Azzera filtri
Azzera filtri

Which regressors do the parameter estimates belong to returned by 'nlarx'?

15 visualizzazioni (ultimi 30 giorni)
I estimate a model using 'nlarx' from data like this
mdl = nlarx(data,sys);
Then, in the 'mdl' object has a field
mdl.Report.Parameters.ParVector
which lists the parameter estimates in a single column vector. Now, i see that the number of parameters estimates equal the number of 'true's in
sys.RegressorUsage
which is a table, however, I do not find information anywhere, in the Matlab documentation or on the internet, which individual instant of 'true' in sys.RegressorUsage, i.e., which individual regressors, belongs to which entry of mdl.Report.Parameters.ParVector.
Furthermore, i would like to ask where i can find p-values or standard errors for each of these parameter estimates.
Any help would be much appreciated!
  9 Commenti
Tamas
Tamas il 24 Lug 2024
Modificato: Tamas il 24 Lug 2024
Hi Umar,
Thank you for the quick response. Unfortunately, while you provided some clues where to look, my question is not answered. I think a user should really not have to look at the internals of native Matlab functions to find out what the output of the function is. I do think that this information is missing from the documentation.
I looked into 'nlarx', then 'pem' and 'pem_'. I really don't know where to find 'mdl.Report.Parameters.ParVector' .
To get an asnwer to my question, i will need to define an NLARX model, with given/known parameter values, as defined here.
Then run a long simulation and use 'nlarx' for parameter estimation. Of course, the simulation and NLARX model definition is to be implemented "on my simple level of prgramming in Matlab". This way, knowing the model parameters, by inspecting mdl.Report.Parameters.ParVector, i will know which estimate belongs to which regressor.
Umar
Umar il 24 Lug 2024
Hi Tamas,
When exploring 'nlarx' and 'pem' functions in Matlab for parameter estimation in an NLARX model, the 'mdl.Report.Parameters.ParVector' information might not be readily available in the documentation. To address this, you can access the model parameters directly from the 'nlarx' model object after fitting the model. Here's a simple example to demonstrate this:
% Define an NLARX model with known parameter values
model = nlarx(data, orders, 'Focus', 'simulation');
Note: orders requires Datafeed Toolbox.
% Perform parameter estimation
estimated_model = pem(data, model);
% Access the parameter vector
parameter_vector = estimated_model.Report.Parameters.ParVector; disp(parameter_vector);
By fitting the NLARX model using 'nlarx' and 'pem' functions, you can then inspect the 'ParVector' attribute of the model object to retrieve the estimated parameters. This approach will allow you to associate each estimate with the corresponding regressor, providing clarity on the parameter values.

Accedi per commentare.

Risposte (1)

Tamas
Tamas il 24 Lug 2024
Hi Umar,
model = nlarx(data, orders, 'Focus', 'simulation');
won't define a NLRAX model of KNOWN parameters. You feed it with data of unknown parameters. Or it's not clarified how we know the parameters. Matlab function 'nlarx' is only fitting a model. There is not an equivalent for nonlinear models like 'varm' for linear models.
As i wrote earlier, you need to write a code in a "pedestrian way" to simulate an NLARX model of known parameters.
Kind regards.
  4 Commenti
Umar
Umar il 24 Lug 2024
I am glad to hear that my exchanges were helpful to you. If you have any more questions or need further assistance, please do not hesitate to reach out. Thank you once again for your feedback.

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by