Suppose Y_t= inflation, E_t= inflation_expectation, X_t= inflation_external and Z_t= output_gap. Then you want to estimate
Y_t = \beta_1 Y_{t-1} + \beta_2 E_t + (1 − \beta_1 - \beta_2) X_t + \beta_4 Z_t + \varepsilon_t
We can rewrite this equation as follows:
Y_t - X_t = \beta_1 (Y_{t-1}-X_t) + \beta_2 (E_t -X_t) + \beta_4 Z_t + \varepsilon_t
Now we have an unconstrained regression where the response variable is Y_t-X_t and we regress against Y_{t-1}-X_t, E_t-X_t and Z_t.
library(tsibble)
library(fable)
set.seed(10)
df <- tsibble(
time = 1:10,
inflation = rnorm(10),
inflation_expectation = rnorm(10),
inflation_external = rnorm(10),
output_gap = rnorm(10),
index = time
)
fit <- df %>%
model(
constrained = TSLM(inflation - inflation_external ~ -1 +
I(lag(inflation) - inflation_external) +
I(inflation_expectation - inflation_external) +
output_gap),
)
report(fit)
#> Series: inflation - inflation_external
#> Model: TSLM
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -1.8388 -0.6701 -0.1745 0.1892 0.3676
#>
#> Coefficients:
#> Estimate Std. Error t value
#> I(lag(inflation) - inflation_external) 0.4103 0.3616 1.135
#> I(inflation_expectation - inflation_external) 0.2941 0.2393 1.229
#> output_gap -0.3676 0.3332 -1.103
#> Pr(>|t|)
#> I(lag(inflation) - inflation_external) 0.300
#> I(inflation_expectation - inflation_external) 0.265
#> output_gap 0.312
#>
#> Residual standard error: 0.8839 on 6 degrees of freedom
Created on 2020-05-17 by the reprex package (v0.3.0)
The coefficients shown are estimates of \beta_1, \beta_2 and \beta_4. You can compute \beta_3 = 1-\beta_1-\beta_2.