Fit data to lagged custom function

2 visualizaciones (últimos 30 días)
Paolo
Paolo el 1 de Ag. de 2024
Editada: Walter Roberson el 4 de Ag. de 2024
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 comentarios
Torsten
Torsten el 1 de Ag. de 2024
Editada: Torsten el 1 de Ag. de 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 el 2 de Ag. de 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

Iniciar sesión para comentar.

Respuesta aceptada

Harsh Kumar
Harsh Kumar el 2 de Ag. de 2024
Editada: Walter Roberson el 4 de Ag. de 2024
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)');

Más respuestas (0)

Categorías

Más información sobre Interpolation en Help Center y File Exchange.

Productos


Versión

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by