multipliers: Multipliers estimation

View source: R/multipliers.R

multipliersR Documentation

Multipliers estimation

Description

multipliers is a generic function used to estimate short-run (impact), delay, interim and long-run (total) multipliers, accompanied by their corresponding standard errors, t-statistics and p-values.

Usage

multipliers(object, type = "lr", vcov_matrix = NULL, se = FALSE)

## S3 method for class 'ardl'
multipliers(object, type = "lr", vcov_matrix = NULL, se = FALSE)

## S3 method for class 'uecm'
multipliers(object, type = "lr", vcov_matrix = NULL, se = FALSE)

Arguments

object

An object of class 'ardl' or 'uecm'.

type

A character string describing the type of multipliers. Use "lr" for long-run (total) multipliers (default), "sr" or 0 for short-run (impact) multipliers or an integer between 1 and 200 for delay and interim multipliers.

vcov_matrix

The estimated covariance matrix of the random variable that the transformation function uses to estimate the standard errors (and so the t-statistics and p-values) of the multipliers. The default is vcov(object) (when vcov_matrix = NULL), but other estimations of the covariance matrix of the regression's estimated coefficients can also be used (e.g., using vcovHC or vcovHAC).

se

A logical indicating whether you want standard errors for delay multipliers to be provided. The default is FALSE. Note that this parameter does not refer to the standard errors for the long-run and short-run multipliers, for which are always calculated. IMPORTANT: Calculating standard errors for long periods of delays may cause your computer to run out of memory and terminate your R session, losing important unsaved work. As a rule of thumb, try not to exceed type = 19 when se = TRUE.

Details

The function invokes two different methods, one for objects of class 'ardl' and one for objects of class 'uecm'. This is because of the different (but equivalent) transformation functions that are used for each class/model ('ardl' and 'uecm') to estimate the multipliers.

type = 0 is equivalent to type = "sr".

Note that the interim multipliers are the cumulative sum of the delays, and that the sum of the interim multipliers (for long enough periods) and thus a distant enough interim multiplier match the long-run multipliers.

The delay (interim) multiplier can be interpreted as the effect on the dependent variable in period t+s, resulting from an instant (sustained) shock to an independent variable in period t.

The delta method is used for approximating the standard errors (and thus the t-statistics and p-values) of the estimated long-run and delay multipliers.

Value

multipliers returns (for long and short run multipliers) a data.frame containing the independent variables (including possibly existing intercept or trend and excluding the fixed variables) and their corresponding standard errors, t-statistics and p-values. For delay and interim multipliers it returns a list with a data.frame for each variable, containing the delay and interim multipliers for each period.

Mathematical Formula

Short-Run Multipliers:

As derived from an ARDL:

\frac{\partial y_{t}}{\partial x_{j,t}} = b_{j,0} \;\;\;\;\; j \in \{1,\dots,k\}

As derived from an Unrestricted ECM:

\frac{\partial y_{t}}{\partial x_{j,t}} = \omega_{j} \;\;\;\;\; j \in \{1,\dots,k\}

Constant and Linear Trend:

c_{0}

c_{1}

Delay & Interim Multipliers:

As derived from an ARDL:

Delay_{x_{j},s} = \frac{\partial y_{t+s}}{\partial x_{j,t}} = b_{j,s} + \sum_{i=1}^{min\{p,s\}} b_{y,i} \frac{\partial y_{t+(s-i)}}{\partial x_{j,t}} \;\;\;\;\; b_{j,s} = 0 \;\; \forall \;\; s > q

Interim_{x_{j},s} = \sum_{i=0}^{s} Delay_{x_{j},s}

Constant and Linear Trend:

Delay_{intercept,s} = c_{0} + \sum_{i=1}^{min\{p,s\}} b_{y,i} Delay_{intercept,s-i} \;\;\;\;\; c_{0} = 0 \;\; \forall \;\; s \neq 0

Interim_{intercept,s} = \sum_{i=0}^{s} Delay_{intercept,s}

Delay_{trend,s} = c_{1} + \sum_{i=1}^{min\{p,s\}} b_{y,i} Delay_{trend,s-i} \;\;\;\;\; c_{1} = 0 \;\; \forall \;\; s \neq 0

Interim_{trend,s} = \sum_{i=0}^{s} Delay_{trend,s}

Long-Run Multipliers:

As derived from an ARDL:

\frac{\partial y_{t+\infty}}{\partial x_{j,t}} = \theta_{j} = \frac{\sum_{l=0}^{q_{j}}b_{j,l}}{1-\sum_{i=1}^{p}b_{y,i}} \;\;\;\;\; j \in \{1,\dots,k\}

Constant and Linear Trend:

\mu = \frac{c_{0}}{1-\sum_{i=1}^{p}b_{y,i}}

\delta = \frac{c_{1}}{1-\sum_{i=1}^{p}b_{y,i}}

As derived from an Unrestricted ECM:

\frac{\partial y_{t+\infty}}{\partial x_{j,t}} = \theta_{j} = \frac{\pi_{j}}{-\pi_{y}} \;\;\;\;\; j \in \{1,\dots,k\}

Constant and Linear Trend:

\mu = \frac{c_{0}}{-\pi_{y}}

\delta = \frac{c_{1}}{-\pi_{y}}

Author(s)

Kleanthis Natsiopoulos, klnatsio@gmail.com

See Also

ardl, uecm, plot_delay

Examples

data(denmark)

## Estimate the long-run multipliers of an ARDL(3,1,3,2) model ---------

# From an ARDL model
ardl_3132 <- ardl(LRM ~ LRY + IBO + IDE, data = denmark, order = c(3,1,3,2))
mult_ardl <- multipliers(ardl_3132)
mult_ardl

# From an UECM
uecm_3132 <- uecm(ardl_3132)
mult_uecm <- multipliers(uecm_3132)
mult_uecm

all.equal(mult_ardl, mult_uecm)


## Estimate the short-run multipliers of an ARDL(3,1,3,2) model --------

mult_sr <- multipliers(uecm_3132, type = "sr")
mult_0 <- multipliers(uecm_3132, type = 0)
all.equal(mult_sr, mult_0)


## Estimate the delay & interim multipliers of an ARDL(3,1,3,2) model --

mult_lr <- multipliers(uecm_3132, type = "lr")
mult_inter80 <- multipliers(uecm_3132, type = 80)

mult_lr
sum(mult_inter80$`(Intercept)`$Delay)
mult_inter80$`(Intercept)`$Interim[nrow(mult_inter80$`(Intercept)`)]
sum(mult_inter80$LRY$Delay)
mult_inter80$LRY$Interim[nrow(mult_inter80$LRY)]
sum(mult_inter80$IBO$Delay)
mult_inter80$IBO$Interim[nrow(mult_inter80$IBO)]
sum(mult_inter80$IDE$Delay)
mult_inter80$IDE$Interim[nrow(mult_inter80$IDE)]
plot(mult_inter80$LRY$Delay, type='l')
plot(mult_inter80$LRY$Interim, type='l')

mult_inter12 <- multipliers(uecm_3132, type = 12, se = TRUE)
plot_delay(mult_inter12, interval = 0.95)

ARDL documentation built on Aug. 21, 2023, 9:10 a.m.