The Quantile Autoregressive-Distributed Lag Parameter Estimation and Interpretation in GAUSS

Introduction

The QARDL model has grown increasingly popular in time series analysis. It is a convenient model for addressing autocorrelation, disentangling long-term and short-term relationships, and addressing asymmetric relationships.

In today's blog, we look at the basics of the QARDL model including:

  1. The intuition behind the QARDL model.
  2. How to estimate the QARDL model in GAUSS.
  3. How to interpret the QARDL results.

What is the QARDL model?

The quantile autoregressive distributed lag (QARDL) model combines two important time series analysis tools, quantile regression and autoregressive distributed lag (ARDL) models.

ARDL Models

The autoregressive distributed lag model uses two components to explain the behavior of a dependent variable:

  • Lags of the dependent variable (the autoregressive component).
  • Current and lagged values of independent explanatory variables (the distributed lag component).

ARDL models are often expressed in relation to the number of lags, ARDL(p, q) where:

  • $p$ is the number of lags of the dependent variable.
  • $q$ is the number of lags of the independent variables.

Mathematically we represent the ARDL model as: $$\begin{align} Y_t = &\beta_0 + \beta_1 y_{t-1} + \ldots + \beta_k y_{t-p} +\\ &\alpha_0 x_t + \alpha_1 x_{t-1} + \alpha_2 x_{t-2} + \ldots + \alpha_q x_{t-q} + \epsilon_t \end{align}$$

Quantile Regression

It is easiest to understand quantile regression thinking of it in the context of standard linear regression.

When we perform standard linear regression, we can think of this as fitting a line that splits the data such that half of the data falls on either side of the line. This is also known as mean regression.

Quantile linear regression fits a line that splits the data such that a specified quantile of the data lies below the line and the remainder of the data lies above the line.

In the graph above, 90.11% of the observations are below the quantile regression line which was estimated with τ set to 0.9.

QARDL Regression

The QARDL model applies an ARDL model across specified quantiles of data. It uses a weighted sum of squared errors based on the specified quantiles, $\tau$, such that

$$ \tau \sum_{y_i \gt \hat{y_i}} | y_i - \hat{y_i} |\ +\ (1 - \tau)\sum_{y_i \lt \hat{y_i}} | y_i - \hat{y_i} | $$

Example Applications of QARDL

Example questionFieldDescription
How do exchange rates respond to economic policy uncertainty?International macroeconomicsThe study uses QARDL to address extreme values while modeling Russian currency fluctuations in relationship to macroeconomic indicators.
How does the COVID-19 pandemic affect tourism in China?EconomicsThis study uses a QARDL model to examine the relationship between daily Chinese tourism and three explanatory variables: COVID-19 intensity, the real effective exchange rate, and oil prices.
What is the long-run relationship between US financial credit markets and risk factors?FinanceThis study uses a QARDL model to examine both the short-run and long-run impact of the Federal Funds Rate, VIX index, and crude oil prices on credit risk in U.S financial credit markets.
How does healthcare expenditure impact health outcomes?Health policyThis study employs the QARDL model to allow for asymmetries across quantiles in the effects of healthcare expenditure on life expectancy, death rate, and mortality.

When Should I Use the QARDL Model?

The QARDL model is a good fit for your data if you:

  • Are interested in determining both long-run and short-run dynamics.
  • Believe that there are asymmetries in effects across different quantiles of your data. For example, you may believe that high health expenditures are related to health outcomes differently than low health expenditures.
  • Are using time series data which may be susceptible to auto-correlation.

It is also important to note that one of the key advantages of the QARDL model is that it can be used for data that is stationary, non-stationary, or a mixture of the two.

How Do I Estimate The QARDL Model In GAUSS?

GAUSS provides an easy-to-use QARDL estimation tool. This tool can be found in QARDL library. This library is free for all GAUSS users.

The QARDL Library

The QARDL library is a collection of code developed by Jin Seo Cho. The raw code provided by Jin Seo Jo has been modified to make use of new GAUSS features that make installation and use easier.

Some of these updates include:

  1. Use of the internal quantileFit procedure.
  2. Inclusion of new comments and explanations in the example files.
  3. Up-to-date graphing tools in the example.
  4. Use of GAUSS structures.

Setting Up The Data

The qardl function accepts data in a matrix form. Your data should be set up such that:

  • The first column contains the dependent data.
  • The remaining $k$ columns contain the independent data.

As an example, we will use a quarterly dataset of S&P 500 real prices, real dividends, and real earnings spanning from 1871Q1 to 2021Q2. The data is constructed from Robert Shiller's (2005) dataset.

For our model, we will use real dividends as the dependent variable and real earnings as the independent variable. The first step is to load our variables.

// Load Shiller dataset
fname = "shiller_stocks_qt.csv";
shiller_stocks_qt = loadd(fname, "real_dividend + real_earnings");

Determining the Number of Lags

The QARDL library includes the pqorder procedure that computes the optimal lags for both the dependent and independent variables using the BIC.

The pqorder procedure requires three inputs:


data
Matrix, the data matrix with dependent data in the first column and independent data in the remaining columns.
pmax
Scalar, the maximum number of lags for the dependent data.
qmax
Scalar, the maximum number of lags for the independent data.

// Max lags
pmax = 8;
qmax = 8;

// Determine optimal lags
{ p_opt, q_opt } = pqorder(shiller_stocks_qt, pmax, qmax);   

Estimating the QARDL Model

Next, we will use the qardl procedure to compute both the long-run and short-run QARDL relationships. The qardl procedure requires four inputs:


data
Matrix, the data matrix with dependent data in the first column and independent data in the remaining columns.
p_opt
Scalar, the lags of the dependent data used in the QARDL model.
q_opt
Scalar, the lags of the independent data used in the QARDL model.
tau
Vector, the quantiles to estimate the model across.

The qardl function returns the estimation results in a qardlOut structure. We will discuss the members stored in the qardlOut structure in the next section. All we need to know right now is that in order to store our results we must first declare a qardlOut structure:

// Declare 'q_out' to be a qardlOut structure to hold the estimation results
struct qardlOut q_out;

We can now specify our percentiles, call the qardl procedure and return our output to the q_out structure:

// Percentiles for estimation
tau = { 0.25, 0.5, 0.75 };

// Parameter estimation
q_out = qardl(shiller_stocks_qt, p_opt, q_opt, tau); 

Interpreting the QARDL Model Results

The qardlOut structure q_out stores six different results:


q_out.bigbt
Matrix, long-run parameter.
q_out.bigbt_cov
Matrix, covariance of the long-run parameter.
q_out.phi
Matrix, short-run parameter for the autoregressive terms of the dependent variable.
q_out.phi_cov
Matrix, covariance of the short-run parameter for the autoregressive terms of the dependent variable.
q_out.gamma
Matrix, the cumulative short-run parameter for the distributed lag terms of the independent variables.
q_out.gamma_cov
Matrix, covariance of the short-run parameter for the distributed lag terms of the independent variables.

Long-run Parameter Estimates (β)

The q_out.bigBt vector contains estimates for the long-run parameters at each of our specified percentiles. This vector:

  • Contains an estimate for each explanatory variable at each percentile.
  • Stores the parameters in order that the percentiles are specified.
  • Lists all parameters for a given percentile together.

For example, if we had a model with:

  • The quantiles 0.15, 0.5 and 0.85.
  • Dependent variables, X1 and X2.
  • A q_out.bigBt vector with the values: 0.6948, 0.0035, 0.9807, 0.3111, 0.0532, 0.7038.

we could interpret it as shown in the table below.

Element Number Parameter Value Quantile Level Independent Variable
1 0.6948 0.15 X1
2 0.0035 0.15 X2
3 0.9807 0.5 X1
4 0.3111 0.5 X2
5 0.0532 0.85 X1
6 0.7038 0.85 X2

Let's look at the q_out.bigBt vector in our example:

>> print q_out.bigbt

      0.422 
      0.433 
      0.481

In our case, we have one explanatory variable and three quantiles so ourq_out.bigBt vector is a 3 x 1 vector.

Short-run Parameter Estimates (Φ)

The q_out.phi vector contains the short-run parameters for the autoregressive terms of the dependent variable. This vector:

  • Contains one coefficient for each autoregressive order ($p$) at each percentile.
  • Stores the parameters in the order that the percentiles are specified.
  • Lists all parameters for a given percentile together.

This time, we will use the result vector from our example to demonstrate.

  • The quantiles 0.25, 0.5 and 0.75.
  • Independent variable, real_dividend.
  • The results stored in our q_out.bigBt vector with the values: 1.352, -0.186, -0.192, 1.281, -0.130, -0.184, 1.276, -0.149, -0.159.

The table below shows how to interpret the parameter vector stored in q_out.phi.

Element NumberParameter ValueQuantile LevelLag
11.3520.25$\text{real_dividend}_{t-1}$
2-0.1860.25$\text{real_dividend}_{t-2}$
3-0.1920.25$\text{real_dividend}_{t-3}$
41.2810.5$\text{real_dividend}_{t-1}$
5-0.1300.5$\text{real_dividend}_{t-2}$
6-0.1840.5$\text{real_dividend}_{t-3}$
71.2760.75$\text{real_dividend}_{t-1}$
8-0.1490.75$\text{real_dividend}_{t-2}$
9-0.1590.75$\text{real_dividend}_{t-3}$

From these results we see that:

  • The short-run impact of the first lag of the real dividends is positive and of larger magnitude than other lags at all percentiles.
  • The short-run impacts of the second and third lags of real dividends are negative and small.
  • The short-run impacts of all lags are relatively consistent across the 0.25, 0.5, and 0.75 percentiles.

Short-run Parameter Estimates (γ)

The q_out.gamma vector contains the cumulative short-run parameters for the distributed lag terms of the independent variables. This vector:

  • Contains one coefficient for each independent variable at each of our three percentiles (0.25, 0.50, and 0.75). This coefficient represents the cumulative sum of the short-run impacts across all distributed $q$ lags.
  • Stores the parameters in the order that the percentiles are specified.
>> print q_out.gamma

     0.011
     0.015
     0.015

Conclusion

Today's blog provides an introduction to the basics of the QARDL model. We examine:

  1. The intuition behind the QARDL model.
  2. How to estimate the QARDL model in GAUSS.
  3. How to interpret the QARDL results.

9 thoughts on “The Quantile Autoregressive-Distributed Lag Parameter Estimation and Interpretation in GAUSS

  1. CK

    Hello Eric,

    Could you please explain why the constant term is not reported in the Gauss output along with the parameter estimates of long run and short run (as mentioned in the equation).

    1. Eric Post author

      Hello CK,

      The constant was not focused on as a parameter of interest that was reported in the original output. This code is translated directly from the author's code and maintains the scope and focus of that original paper. I will make note of this and can certainly include the constant in future versions.

      Eric

  2. dronalv

    Hi Eric, I was wondering if QARDL module let us to process more than 2 independent variables since when I include more than 2 variables, Gauss23 indicates there was a error such as a singular matrix.

  3. Eric Post author

    Hi,

    Thanks for your comment. To answer your question, yes you can use more than 2 independent variables with the QARDl model.

    There are a few common causes of the G0121: Matrix not positive definite and G0048: Matrix singular error messages. Our blog, Diagnosing a singular matrix offers guidance on how to locate the cause of these errors.

    In addition, a good practice when obtaining these errors is to check for linear dependencies in your data. This can be quickly done using the corrx procedure.

    Eric

Leave a Reply

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.

Try GAUSS for 14 days for FREE

See what GAUSS can do for your data

© Aptech Systems, Inc. All rights reserved.

Privacy Policy