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

1 visualización (últimos 30 días)
Tamas
Tamas el 18 de Jul. de 2024
Comentada: Tamas el 24 de Jul. de 2024
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 comentarios
Tamas
Tamas el 24 de Jul. de 2024
Editada: Tamas el 24 de Jul. de 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 el 24 de Jul. de 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.

Iniciar sesión para comentar.

Respuestas (1)

Tamas
Tamas el 24 de Jul. de 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 comentarios
Umar
Umar el 24 de Jul. de 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.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by