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

15 次查看(过去 30 天)
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 个评论
Tamas
Tamas 2024-7-24
编辑:Tamas 2024-7-24
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 2024-7-24
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.

请先登录,再进行评论。

回答(1 个)

Tamas
Tamas 2024-7-24
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 个评论
Umar
Umar 2024-7-24
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.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by