• Nenhum resultado encontrado

Αιγόξηζκνο ηνπ UKF

5.2.2 Δθαξκνγή ηνπ Kalman Filter ζην Γξακκηθό κνληέιν

5.2.3.2 Δθαξκνγή ηνπ Unscented Kalman Filter

 

1

ˆ ˆ ˆ

k k k k

k k

k x y x y

k k k k k

T

k x k y k

K P P

x x K y y

P P K P K

 

  

   

Δηθόλα 26 Σάζε ηνπ UKF γηα ι =2, γ=2 θαη ξ=0,8

.

Δηθόλα 27 Κύθινο ηνπ UKF γηα ι =2, γ=2 θαη ξ=0,8

Παξαηεξήζεθε φηη ην UKF γηα λα απνδψζεη ηθαλνπνηεηηθά δελ ρξεηαδφηαλ ε ηερληθή αχμεζεο ηνπ πίλαθα θέξδνπο Κ πνπ αθνινπζήζεθε ζηηο πεξηπηψζεηο ηνπ γξακκηθνχ θίιηξνπ Kalman θαη ζηελ πεξίπησζε ηνπ Extended Kalman θίιηξνπ.

Απφ ηα πξνεγνχκελα δηαγξάκκαηα πξνθχπηεη φηη ε ζπληζηψζα ηεο ηάζεο αλ θαη αθνινπζεί ηθαλνπνηεηηθά ηελ ρξνλνζεηξά δελ ηζρχεη θαη ην ίδην θαη γηα ηελ ζπληζηψζα ηνπ θχθινπ. Σηελ ζπλέρεηα ζηελ πξνζπάζεηα εχξεζεο ηθαλνπνηεηηθήο π εξηγξαθήο ηεο ζπληζηψζαο ηνπ θχθινπ αθνινπζνχλ ηα δηαγξάκκαηα πεξηγξαθήο ηεο ζπληζηψζαο θχθινπ ηνπ UKF γηα δηάθνξεο ηηκέο ησλ ι, γ θαη ξ.

Δηθόλα 28 Κύθινο ηνπ UKF γηα ι =2, γ=2,2 θαη ξ=0,8

Δηθόλα 29 Κύθινο ηνπ UKF γηα ι =2, γ=2,2 θαη ξ=0,7

΢πκπεξάζκαηα

Σε απηήλ ηελ εξγαζία επηρεηξήζεθε λα αλαδεηρζεί θαη λα εληζρπζεί ε ρξήζε ηεο κεζνδνινγίαο γηα κνληέια πνπ αλαιχνληαη ζηνλ ρψξν θαηάζηαζεο θαη εηδηθφηεξα ηνπ θίιηξνπ Kalman ζε εθαξκνγέο ηεο νηθνλνκηθήο ζεσξίαο.

Δηδηθφηεξα αλαθέξεηε ε δπλαηφηεηα αληηκεηψπηζεο απφ πιεπξάο κεζνδνινγίαο ζηνλ ρψξν θαηάζηαζεο ηεο αλάιπζεο κε-άκεζα παξαηεξήζηκσλ δπλακηθψλ δηεξγαζηψλ ζε εθαξκνγέο πξφβιεςεο ηεο ρξνληθήο εμέιημεο πιήζνο νηθνλνκηθψλ κεγεζψλ, ζε αληηδηαζηνιή κε ηελ Box- Jenkins πξνζέγγηζε ε νπνία ζεσξεί φηη νη παξαηεξήζεηο πξέπεη λα είλαη ζηάζηκεο κε απνηέιεζκα λα πξνθχπηεη ε αλάγθε λα ρξεζηκνπνηεζνχλ δηάθνξνη κέζνδνη κεηαζρεκαηηζκνχ ησλ παξαηεξήζεσλ ψζηε λα κεηαηξαπνχλ ζε ζηάζηκα δεδνκέλα.

Δπηπιένλ ζηελ παξνχζα εξγαζία επηρεηξήζεθε ε κειέηε ηεο εηζφδνπ κε- γξακκηθφηεηαο θαη ηνπ πφζν ηζρπξή είλαη απηή ζην ππφ κειέηε κνληέιν θαη ην πσο απηή επεξεάδεη ηελ απφδνζε ή θαιχηεξα ηελ ζχγθιηζε πνπ ζα επηηχρεη ν αιγφξηζκνο ηνπ θίιηξνπ Kalman.

Σπγθεθξηκέλα ζην θεθάιαην 3 θάλνληαο ρξήζε ηεο πηζαλνζεσξηάο θαη ζπγθεθξηκέλα ηνπ αιγνξίζκνπ ηεο αθνινπζηαθήο Bayesian εθηίκεζεο, πεξηγξάθεηαη ε εχξεζε ηεο βέιηηζηεο ιχζεο γηα ην πξφβιεκα ηεο εθηίκεζεο ησλ θαηαζηάζεσλ ηνπ ζπζηήκαηνο.

Σηελ ζπλέρεηα ζηελ ελφηεηα "Μεηαζρεκαηίδνληαο ηελ Αβεβαηφηεηα" γίλεηαη κηα εθηελή αλαθνξά ζην θαηά πφζν επεξεάδνληαη ηα ζηαηηζηηθά κεγέζε ηεο κέζεο ηηκήο θαζψο θαη ηεο ζπλδηαθχκαλζεο κηαο κεηαβιεηήο φηαλ απηή κεηαζρεκαηηζηεί κέζσ κηαο κε-γξακκηθήο ζπλάξηεζεο, ε νπνία ζα πξνζνκνηάδεη είηε ηελ ζπλάξηεζε κέηξεζεο, είηε ηελ ζπλάξηεζε εμέιημεο ηνπ ζπζηήκαηνο.

Σπγθεθξηκέλα αλαθέξνληαη ιεπηνκεξψο ηα πιενλεθηήκαηα θαη ηα κεηνλεθηήκαηα ηνπ Γξακκηθνπνηεκέλνπ θαη ηνπ Unscented κεηαζρεκαηηζκνχ ελψ ηαπηφρξνλα επηρεηξείηε λα απνδεηρζεί ε αλσηεξφηεηα ηνπ ηειεπηαίνπ.

Σηελ ζπλέρεηα δφζεθε κηα εθηελήο αλαθνξά ζην ηξφπν επηινγήο ησλ ζεκείσλ ζίγκα σο πξνο ηηο δηάθνξεο εθδνρέο ηνπ Unscented κεηαζρεκαηηζκνχ θαζψο θαη ηνπ ηξφπνπ κε ηνλ νπνίν κεηεμειίρζεθε.

Δπηπιένλ ζην θεθάιαην 3 απνδείρζεθε θαη γξαθηθά ε αλσηεξφηεηα ηνπ Unscented κεηαζρεκαηηζκνχ έλαληη ηνπ αληίζηνηρνπ Γξακκηθνπνηεκέλνπ ζηελ πεξίπησζε ηνπ ηζρπξνχ κε-γξακκηθνχ κεηαζρεκαηηζκνχ ησλ κεηξήζεσλ πνπ ιακβάλνληαη ζηηο πνιηθέο ζπληεηαγκέλεο (radius, angle) ζε θαξηεζηαλέο ζπληεηαγκέλεο

 

x y, ζην ρψξν θαηάζηαζεο.

Σην θεθάιαην 4, αλαθέξνληαη θαη αλαιχνληαη νη δπν πην δηαδεδνκέλνη κε- γξακκηθνί αιγφξηζκνη ηνπ Φίιηξνπ Kalman, ν Extended Kalman Filter (EKF) θαζψο ν Unscented Kalman Φίιηξν (UKF) αιγφξηζκνο, ελψ γηα ηνλ EKF αιγφξηζκν αλαθέξνληαη νη πεξηνξηζκνί ηνπο νπνίνπο πθίζηαηαη, ελψ θαηφπηλ παξνπζηάδεηαη έλα ραξαθηεξηζηηθφ παξάδεηγκα ζην νπνίν ην EKF κπνξεί λα νδεγεζεί ζε απφθιηζε.

Σηελ ζπλέρεηα αλαιχεηαη κεζνδηθά ν UKF αιγφξηζκνο θαη ηδηαίηεξα αλαθέξεηαη ν αιγφξηζκνο επηινγήο ησλ Γεληθεπκέλσλ Σίγκα-Σεκείσλ ζηα δηάθνξα ζηάδηα πξνζδηνξηζκνχ ηνπο.

Σην θεθάιαην 5 επηρεηξείηαη ε εχξεζε ηεο κνξθήο ηεο κεηαβιεηήο θχθινπ ε νπνία αξρηθά ζεσξείηε φηη έρεη ζπκκεηξηθή απεηθφληζε, ελψ ζηελ ζπλέρεηα ζηελ πξνζπάζεηα δηεξεχλεζεο ηπρφλ χπαξμεο αζπκκεηξίαο, πηνζεηείηαη ε είζνδνο αζπκκεηξίαο κφλν σο πξνο ζην κέγεζνο ηεο πξψηεο παξαγψγνπ ηεο κεηαβιεηήο ηνπ θχθινπ t, δειαδή ηνπ t (steepness) θαη εθαξκφδνληαη νη ηερληθέο ηνπ Extended θαη ηνπ Unscented Kalman Filter πνπ αλαπηχρζεθαλ ζην θεθάιαην 4.

Σπλνςίδνληαο απνδείρζεθε φρη κφλν ε αλσηεξφηεηα ηνπ Unscented Kalman Filter αιγνξίζκνπ έλαληη ηνπ Extended Kalman Filter ζε ζεσξεηηθφ επίπεδν φπσο αλαπηχρζεθε ζηα θεθάιαηα 3 θαη 4, αιιά θαη ζε πξαθηηθφ επίπεδν, θαζφζνλ ην UKF θαηάθεξε λα πεξηγξάςεη θαιχηεξα ηελ καθξννηθνλνκηθή ρξνλνζεηξά ηνπ ΑΔΠ Ακεξηθάληθεο νηθνλνκίαο.

Δπηπιένλ απνδείρηεθε εκπξάθησο φηη ππάξρεη αζπκκεηξία σο πξνο ηελ κεηαβιεηή θχθινπ ζηελ νηθνλνκεηξηθή ρξνλνζεηξά ηνπ ΑΔΠ θαη ζπγθεθξηκέλα φηη ε κεηαβιεηή θχθινπ θαηέξρεηαη γξεγνξφηεξα απφ φηη αλέξρεηαη.

΢ΤΝΣΜΗ΢ΕΙ΢ – ΑΡΚΣΙΚΟΛΕΞΑ – ΑΚΡΩΝΤΜΙΑ

ARMA Autoregressive moving average

ARIMA Autoregressive integrated moving

average

UT Unscented Μεηαζρεκαηηζκφο

EKF Extended Kalman Filter

UKF Unscented Kalman Filter

ΑΔΠ Αθαζφξηζην Δζληθφ Πξντφλ

Παξάξηεκα

1 Κώδηθαο Τινπνίεζεο ηνπ Γξακκηθνύ KF ζην MatLab

function KF

rho = 0.8; % damping term for stanionary 0<rho<1 gama = 0.2; % lamda_t=lamda+gama*x(4) lamda= 0.8976;

R = 10^-1; % measurement noise variance

Q = diag([10^2 10^2 10^-2 10^-2]); % process noise covariance

x = [200; 10; 0.5; 0.5]; % dummy Initial values xhat = [237; 1; 0.5; 0.5]; % Initial values

P = diag([10 10 0.5 0.5]);

T = 1; % measurement time step= 1 year tf = 64; % simulation length (65 years)

xArray = x;

xhatArray = xhat;

zArray= 237.2;

yArray= 1947;

y= 1947;

Parray = diag(P);

z = xlsread('GDP.xls', 1, 'B2:B65'); % read the real data.

for t = T : T : tf

F= [ 1 1 0 0; 0 1 0 0; 0 0 rho*cos(lamda) rho*sin(lamda); 0 0 -rho*sin(lamda) rho*cos(lamda)];

H= [1 0 1 0];

xminus = F * x;

K = P * H' * inv(H * P * H' + R)*1.9

zhat =x(1)+x(3);

zArray=[zArray z(t)];

y=y+1;

yArray=[yArray y];

x = xminus + K * (z(t) - zhat);

P = (eye(4) - K * H) * P * (eye(4) - K * H)' + K * R * K';

% Save data for plotting.

xArray = [xArray x];

Parray = [Parray diag(P)];

end close all;

t = 0 : T : tf;

plot(yArray(:), xArray(1,:), 'r--','LineWidth',2); hold;

plot(yArray(:), zArray(:), 'b:','LineWidth',2);hold;

xlabel('Years');

ylabel('GDP');

legend('Trend', 'Real Data');

grid on

title('GDP and trend') figure;

plot(yArray(:), xArray(3,:), 'b:','LineWidth',2);

xlabel('Years');

ylabel('GDP');

legend('Cycle');

title('Cycle') grid on

2 Κώδηθαο Τινπνίεζεο ηνπ EKF ζην MatLab

function EKF1

rho = 0.8; % damping termfor stanionary 0<rho<1 gama = 2; % lamda_t=lamda+gama*x(4)

lamda= 0.8976;

R = 10^-1; % measurement noise variance

Q = diag([10^2 10^2 10^-2 10^-2]); % process noise covariance

x = [200; 10; 0.5; 0.5]; % dummy Initial values xhat = [237; 1; 0.5; 0.5]; % Initial values

P = diag([10 10 0.5 0.5]);

lo =2;

T = 1; % measurement time step= 1 year tf = 64; % simulation length (65 years)

xArray = x;

xhatArray = xhat;

zArray= 237.2;

yArray= 1947;

y= 1947;

Parray = diag(P);

z = xlsread('GDP.xls', 1, 'B2:B65'); % read the real data.

for t = T : T : tf

%--- Simulate the system.--- xdot(1,1) = x(1)+x(2);

xdot(2,1) = x(2);

xdot(3,1) = (rho*cos(lamda))+(rho*sin(lamda));

xdot(4,1) = (-rho*sin(lamda))+(rho*cos(lamda));

lamda = lo +gama* x(4);

x = xdot;

% --- EKF --- T3= rho*x(3)*cos(lamda)+ rho*x(4)*sin(lamda);

T4= -rho*x(3)*sin(lamda)+ rho*x(4)*cos(lamda);

Rm= rho*[cos(lamda) sin(lamda); -sin(lamda) cos(lamda)]+[0 gama*T4; 0 -gama*T3];

F= [ 1 0 0 0; 0 1 0 0; 0 0 Rm(1,1) Rm(1,2); 0 0 Rm(2,1) Rm(2,2);];

h = [0; 0; -gama* x(4)*T4; gama* x(4)*T3];

H= [1 0 1 0];

xminus = (F * x)+ h;

K = P * H' * inv(H * P * H' +R)

zhat =x(1)+x(3);

x = xminus + K * (z(t) - zhat);

% Save data for plotting.

xArray = [xArray x];

zArray=[zArray z(t)];

y=y+1;

yArray=[yArray y];

Parray = [Parray diag(P)];

end

close all;

t = 0 : T : tf;

figure;

plot(yArray(:), xArray(1,:), 'r--','LineWidth',2); hold;

plot(yArray(:), zArray(:), 'b:','LineWidth',2);hold;

xlabel('Years');

ylabel('GDP');

legend('Trend', 'Real Data');

grid on

title('GDP and trend') figure;

plot(yArray(:), xArray(3,:), 'b:','LineWidth',2);

xlabel('Years');

ylabel('GDP');

legend('Cycle');

title('Cycle') grid on

3 Κώδηθαο Τινπνίεζεο ηνπUKF ζην MatLab

function UKF clear all;

rho = 0.7; % damping termfor stanionary 0<rho<1 gama = 2.2; % lamda_t=lamda+gama*x(4) lo= 2;

lamda =lo;

R = 10^2; % measurement noise variance

Q = diag([10^2 10^2 10^-1 10^-1]); % process noise covariance P = diag([10 10 0.5 0.5]);

z = xlsread('GDP.xls', 1, 'B2:B65'); % read the real data.

T = 1; % measurement time step= 1 year

kapa=3;

n=3;

% scaling

alfa=1/sqrt(n);

lamda1= (alfa*alfa*(n+3)) -n;

b=2;

tf = 64;

zArray= 237.2;

x = [200; 10; 0.5; 0.5]; % dummy Initial values xArray = x;

xhatukf = x;

yArray= 1947;

y= 1947;

xhatukfArray = xhatukf;

Parray = diag(P);

Pukf = P;

Pukfarray = diag(Pukf);

for t = T : T : tf

%--- Simulate the system.---

xdot(1,1) = x(1)+x(2);

xdot(2,1) = x(2);

xdot(3,1) = (rho*cos(lamda))+(rho*sin(lamda));

xdot(4,1) = (-rho*sin(lamda))+(rho*cos(lamda));

lamda = lo +gama* x(4);

x = xdot;

%---UKF--- % Generate the UKF sigma points.

[root,p] = chol((n+4)*Pukf);

for i = 1 : 4

sigma(:,i) = xhatukf + root(i,:)';

sigma(:,i+4) = xhatukf - root(i,:)';

sigma(:,9)= xhatukf;

% ---- scaling

% W0m = lamda1/(n+lamda1); % weight of sigma(:,1) for calculation of mean W0m = -1;

W0c = (lamda1/(n+lamda1)) +( 1 - alfa^2 + b); % weight of sigma(:,1) for calculation of covariance

for i= 1:8

Wc(i)=1/(2*n+2*lamda1);

Wm(i)=Wc(i);

end

for i = 1 : 9

xbreve(:,i) = sigma(:,i);

end

% ---UKF time update ---

for i = 1 : 9

xbrevedot(1,i) = xbreve(1,i)+ xbreve(2,i);

xbrevedot(2,i) = xbreve(2,i);

xbrevedot(3,i) = (rho*cos(lamda))+(rho*sin(lamda));

xbrevedot(4,i) =(-rho*sin(lamda))+(rho*cos(lamda));

lamda = lo +gama* xbrevedot(4,i);

xbreve(:,i) = xbrevedot(:,i);

end

xhatukf = W0m*xbreve(:,9);

for i = 1 : 8

xhatukf = xhatukf + Wm(i) * xbreve(:,i);

end

% xhatukf = xbreve(:,9);

Pukf = W0c*(xbreve(:,9) - xhatukf)* (xbreve(:,9) - xhatukf)';

for i = 1 : 8

Pukf = Pukf + Wc(i) *(xbreve(:,i) - xhatukf) * (xbreve(:,i) - xhatukf)';

end

Pukf = Pukf + Q;

% UKF measurement update for i = 1 : 9

zukf(:,i) = xbreve(1,i)+xbreve(2,i);

end

zhatUkf = -1*zukf(:,9);

for i = 1 : 8

zhatUkf = zhatUkf + (1/4) * zukf(:,i);

end

Py = (-1)*(zukf(:,9) - zhatUkf) * (zukf(:,9) - zhatUkf)';

Pxy = (-1)*(xbreve(:,9) - xhatukf) * (zukf(:,9) - zhatUkf)';

for i = 1 : 8

Py = Py + (1/4) *(zukf(:,i) - zhatUkf) * (zukf(:,i) - zhatUkf)';

Pxy = Pxy + (1/4) *(xbreve(:,i) - xhatukf) * (zukf(:,i) - zhatUkf)';

end

Py = Py + R;

Kukf = Pxy /Py;

xhatukf = xhatukf + Kukf * (z(t) - zhatUkf);

Pukf = Pukf - (Kukf * Py * Kukf');

%---END OF UKF ---

% Save data for plotting.

xArray = [xArray x];

xhatukfArray = [xhatukfArray xhatukf];

zArray=[zArray z(t)];

y=y+1;

yArray=[yArray y];

Parray = [Parray diag(P)];

Pukfarray = [Pukfarray diag(Pukf)];

end

close all;

t = 0 : T : tf;

figure;

plot(yArray(:), xhatukfArray(1,:), 'r--','LineWidth',2);hold;

plot(yArray(:), zArray(:), 'b:','LineWidth',2);hold;

xlabel('Years');

ylabel('GDP');

legend('Trend', 'Real Data');

grid on

title('GDP and trend')

figure;

plot(yArray(:), xhatukfArray(3,:), 'b:','LineWidth',2);hold;

xlabel('Years');

ylabel('GDP');

legend('Cycle');

title('Cycle') grid on

ΑΝΑΥΟΡΕ΢

[1] Bauwens, L. and D. Veredas (2004). The stochastic conditional durations model: a latent variable model for the analysis of financial durations. J.

Econometrics 119, 381-412.

[2] Βerg, S. V. (1973). Annals of economic and social measurement. Volume 2(4). NBER

[3] Box G. E. P. and G. M. Jenkins (1970). Time Series Analysis: Forecasting and Control. San Francisco, CA: Holden-Day.

[4] Commandeur Jacques and Koopman Siem Jan(2007), An Introduction to State Space Time Series Analysis, Oxford University Press Inc., New York [5] Duncan, D. B. and S. D. Horn (1972). Linear dynamic regression from the

viewpoint of regression analysis. J. American Statistical Association 67, 815-21

[6] Harrison, J. and C. F. Stevens (1976). Bayesian forecasting (with discussion). J. Royal Statistical Society B 38, 205{47}.

[7] Harvey, A. C. (1989). Forecasting, Structural Time Series Models and the Kalman Filter. Cambridge University Press.

[8] Harvey, A. C. (1993). Time Series Models (2nd ed.).

[9] Harvey, A. C. and Shephard Neil(1993) Structural Time Series Models, Handbook of Statistics, Vol. 11, 1993

[10] Harvey, A. C. and T. M. Trimbur (2003). General model-based filters for extracting cycles and trends in economic time series. Rev. Economics and Statistics 85 (2), 244{255}.

[11] Julier, S. J. and J. K. Uhlmann (1997). A new extension of the Kalman filter to nonlinear systems. In The Proceedings of AeroSense: The 11th International Symposium on Aerospace/Defense Sensing, Simulation and Controls.

[12] Julier, S. J., J. K. Uhlmann, and H. F. Durrant-Whyte (1995). A new approach for filtering nonlinear systems. In The Proceedings of the American Control Conference.

[13] Julier, S. J., J. K. Uhlmann (2004) Unscented Filtering and Nonlinear Estimation,PROCEEDINGS OF THE IEEE, VOL. 92, NO. 3.

[14] Kalman, R. E. (1960). A new approach to linear filtering and prediction problems. J. Basic Engineering, Transactions ASMA, Series D 82, 35-45.

[15] Kai Ming Lee, Filtering Non-Linear State Space Models: Methods and Economic Applications, dissertation thesis, ISBN 978 90 3610 169 1

[16] Koopman, S. J. and K. M. Lee (2005). Measuring asymmetric stochastic cycle components in U.S. macroeconomic time series.

Tinbergen institute discussion papers, Tinbergen Institute.

[17] Koopman, S. J., M. I. P. Mallee, and M. van der Wel (2010). Analyzing the term structure of interest rates using the dynamic Nelson-Siegel model with time-varying parameters. J. Business and Economic Statist.

[18] Ruiz, E. (1994). Quasi-maximum likelihood estimation of stochastic volatility models. J. Econometrics 63, 289-306.

[19] Schweppe, F. (1965). Evaluation of likelihood functions for Gaussian signals. IEEE Transactions on Information Theory 11, 61-70.

[20] Simon, Dan (2006). Optimal State Estimation, John Wiley & Sons [21] Tsay, Ruey(2010), Analysis of Financial Time Series, 3rd edition

Documentos relacionados