Hello,
I would like to ask if you can advice the correct approach I can follow to estimate the parameters of a custom lagged function
(1) y(t)=c^2*a+y(t-1)*(a-1)
where c is a known constant.
to a time series data (I can use the symbilic function to create (1) )
Thank you.
Best regards
Paolo

2 Kommentare

Torsten
Torsten am 1 Aug. 2024
Bearbeitet: Torsten am 1 Aug. 2024
I would like to ask if you can advice the correct approach I can follow to estimate the parameters of a custom lagged function
You mean the parameter "a" ?
Paolo
Paolo am 2 Aug. 2024
Hi Torsten,
thank you for your feedback. Yes I mean "a"; I forgot to mention that the time series of Y is already available and I know Y(0)= 0.04356
Best regards
Paolo

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Harsh Kumar
Harsh Kumar am 2 Aug. 2024
Bearbeitet: Walter Roberson am 4 Aug. 2024

0 Stimmen

Hope this may help ,
% Assuming you have your y data in a vector called 'y'
% and c is your known constant
% Step 1: Prepare data
y_lag = [NaN; y(1:end-1)]; % Create lagged y, with NaN for the first value
y = y(2:end); % Remove the first value of y to match dimensions
y_lag = y_lag(2:end);
% Step 2 & 3: Define the objective function
obj_fun = @(a) sum((y - (c^2*a + y_lag*(a-1))).^2);
% Step 4: Use optimization to find the best 'a'
options = optimset('Display', 'iter');
a_est = fminsearch(obj_fun, 0.5, options); % 0.5 is an initial guess for 'a'
% Print the result
fprintf('Estimated value of a: %f\n', a_est);
% Optional: Plot the results
y_pred = c^2*a_est + y_lag*(a_est-1);
plot(y, 'b-', 'DisplayName', 'Observed');
hold on;
plot(y_pred, 'r--', 'DisplayName', 'Predicted');
legend('show');
title('Observed vs Predicted y(t)');

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with Curve Fitting Toolbox finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by