From 3a823c488f143c3abed99a3b9cd960bc45f19a19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?=
 <stepan@adjemian.eu>
Date: Fri, 2 Apr 2021 15:51:35 +0200
Subject: [PATCH] Fix PAC equations with lags on exogenous variables.

---
 matlab/+pac/+estimate/iterative_ols.m | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/matlab/+pac/+estimate/iterative_ols.m b/matlab/+pac/+estimate/iterative_ols.m
index 1de639bb3a..2e7c456b84 100644
--- a/matlab/+pac/+estimate/iterative_ols.m
+++ b/matlab/+pac/+estimate/iterative_ols.m
@@ -197,10 +197,10 @@ if is_exogenous_variables
             j = j+1;
             is_any_estimated_parameter_x = true;
             listofvariables2{j} = variable;
-            dataForExogenousVariables = [dataForExogenousVariables, additive.scaling_factor(i)*data{variable}.lag(additive.lags(i))];
+            dataForExogenousVariables = [dataForExogenousVariables, additive.scaling_factor(i)*data{variable}.lag(-additive.lags(i))];
         else
             is_any_calibrated_parameter_x = true;
-            tmp = data{variable}.lag(additive.lags(i)).data;
+            tmp = data{variable}.lag(-additive.lags(i)).data;
             if ~isnan(additive.params(i))
                 tmp = M_.params(additive.params(i))*tmp;
             end
@@ -234,10 +234,10 @@ if is_optim_exogenous_variables
             j = j+1;
             is_any_estimated_parameter_optim_x = true;
             listofvariables4{j} = variable;
-            dataForOptimExogenousVariables = [dataForOptimExogenousVariables, optim_additive.scaling_factor(i)*data{variable}.lag(optim_additive.lags(i))];
+            dataForOptimExogenousVariables = [dataForOptimExogenousVariables, optim_additive.scaling_factor(i)*data{variable}.lag(-optim_additive.lags(i))];
         else
             is_any_calibrated_parameter_optim_x = true;
-            tmp = data{variable}.lag(optim_additive.lags(i)).data;
+            tmp = data{variable}.lag(-optim_additive.lags(i)).data;
             if ~isnan(optim_additive.params(i))
                 tmp = M_.params(optim_additive.params(i))*tmp;
             end
-- 
GitLab