15  Time Series Regression

Main Takeaway

For time series regression models:

  • Three modeling approaches: Finite Distributed lag (FDL), autoregressive (AR), and autoregressive distributed lag (ARDL)
  • Finite distributed lag: \(y_t = \alpha + \beta_0 x_t + \beta_1 x_{t-1} + \cdots + \beta_q x_{t-q} + e_t\)
  • Key multipliers: Impact (\(\beta_0\)), delayed (\(\beta_s\)), and long-run (\(\sum_{s=0}^q \beta_s\))
  • ARDL model: Combines lagged dependent variable with distributed lags of explanatory variables
  • Critical assumption: Error term must be independent of all \(x\)’s (past, current, future) and serially uncorrelated
  • Application: Okun’s Law shows GDP growth reduces unemployment with distributed effects

Given the dynamic relationship of time series data, there are three different ways of modeling these relationships.

  1. The dependent variable \(y\) is a function of current and past values of an explanatory variable \(x\). That is,

    \[ y_t = f(x_t, x_{t-1}, x_{t-2}, \ldots) \]

    We can think of \((y_t, x_t)\) as denoting the values of \(y\) and \(x\) in the current period; \(x_{t-1}\) denotes the value of \(x\) in the previous period, \(x_{t-2}\) denotes the value of \(x\) two periods ago, and so on. Because of the lagged effects, the above equation is called a distributed lag (DL) model.

  2. Specify a model with a lagged dependent variable as one of the explanatory variables.

    \[ y_t = y(y_{t-1}, x_t) \]

    We can also combine the first two features of the above and previous equation so that we have a dynamic model with lagged values of both the dependent and independent variables, such as

    \[ y_t = f(y_{t-1}, x_t, x_{t-1}, x_{t-2}, \ldots) \]

    Such models are called autoregressive distributed lag models (ARDL). As we have shown, the ARDL model is composed of an autoregressive component, which is the dependent variable regressed on one or more of its past values, and a distributed lag component, which is the independent variable and one or more of its lagged components.

  3. A third way of modeling the continuing change over several periods is via an error term. For example, using \(f(\cdot)\) and \(g(\cdot)\), both of which are replaced later with linear functions, we can write

    \[ y_t = f(x_t) + e_t \quad \text{and} \quad e_t = g(e_{t-1}) \]

    where the function \(e_t = g(e_{t-1})\) is used to denote the dependence of the error term on its value in the previous period. In this case, \(e_t\) is correlated with \(e_{t-1}\), and in such a scenario, we say the errors are serially correlated or autocorrelated.

Stationarity

An assumption that we will maintain throughout this exercise is that variables in our equation are stationary, which means that a variable is one that is not explosive, nor trending, and nor wandering aimlessly without returning to its mean. A stationary variable simply means a variable whose mean, variance and other statistical properties remain constant over time.

15.1 Finite Distributed Lags

The first dynamic relationship we consider is the first model that we introduced, which took the form of \[ y_t = f(x_t, x_{t-1}, x_{t-2}, \ldots), \] with the additional assumption that the relationship is linear, and after \(q\) time periods, changes in \(x\) no longer have an impact on \(y\). Under these conditions, we have the multiple regression model:

\[ y_t = \alpha + \beta_0 x_t + \beta_1 x_{t-1} + \beta_2 x_{t-2} + \ldots + \beta_q x_{t-q} + e_t \tag{15.1}\]

The above model can be treated in the same way as a multiple regression model. Instead of having a number of different explanatory variables, we have a number of different lags of the same explanatory variable. This equation can be very useful in two ways:

  1. Forecasting future values of \(y\).

    To introduce notation for future values, suppose our sample period is \(t = 1, 2, \ldots, T\). We use \(t\) for the index and \(T\) for the sample size to emphasize the time series nature of the data. Given the last observation in our sample is at \(t = T\), the first post-sample observation that we wish to forecast is at \(t = T + 1\). The equation for this observation can be given by:

    \[ y_{T+1} = \alpha + \beta_0 x_{T+1} + \beta_1 x_T + \beta_2 x_{T-1} + \ldots + \beta_q x_{T-q+1} + e_{T+1} \]

  2. Strategic Analysis.

    For example, to use an economic example, understanding the effects of the change in interest rate on unemployment and inflation, or the effect of advertising on sales on a firm’s products. The coefficient \(\beta_s\) gives the change in \(E(y_t)\) when \(x_{t-s}\) changes by one unit, but \(x\) is held constant in other periods. Alternatively, if we look forward rather than backward, \(\beta_s\) gives the changes in \(E(y_{t+s})\) when \(x_t\) changes by one unit, but \(x\) in other periods is held constant. In terms of derivatives:

    \[ \frac{\partial E(y_t)}{\partial x_{t-s}} = \frac{\partial E(y_{t+s})}{\partial x_t} = \beta_s \]

The effect of a one-unit change in \(x_t\) is distributed over the current and next \(q\) periods. It is called a finite distributed lag model of order \(q\) because it is assumed that after a finite number of periods \(q\), changes in \(x\) no longer have an impact on \(y\).

To interpret the coefficients:

  • The coefficient \(\beta_0 = y_t - y_{t-1}\) is called the impact multiplier or impact propensity, which shows that the immediate change in \(y\) due to one-unit increase in \(x\) at time \(t.\)

  • The coefficient \(\beta_s\) is called a distributed-lag weight or an \(s\)-period delayed multiplier.

    \(\beta_1 = y_{t+1} - y_{t-1}\) is the change in \(y\) one period after the temporary change in \(x\) at time \(t\); \(\beta_2 = y_{t+2} - y_{t-1}\) is the change in \(y\) two periods after the change; at time \(t+q+1,\) \(y\) has reverted back to its initial level: \(y_{t+q+1} = y_{t-1}\) because we have assumed that only \(q\) lags of \(x\) appear in (15.1).

  • Adding up a portion of the coefficients gives you the interim multipliers. For example, the interim multiplier for two periods would be \((\beta_0 + \beta_1 + \beta_2)\).

  • The long-run propensity (LRP), also called the long-run multiplier or total multiplier, is the final effect on \(y\) on the sustained increase after \(q\) or more periods have elapsed and is given by the equation:

\[ \text{LRP} = \sum_{s=0}^q \beta_s \]

\(\mathrm{LRP}\) measures the the long-run change in \(y\) given a permanent increase in \(x\) at time \(t.\) For example, assume \(x\) equals a constant \(c\) before time \(t.\) At time \(t\), \(x\) increases permanently to \(c+1.\)

Mathematically,

\[ x_s = \begin{cases} c & s<t \\ c+1 & x\ge t \end{cases} \] Two graphs that are related to the multipliers:

  • Lag distribution, which graphs the \(\beta_s\) as a function of \(s\), summarizing the dynamic effect that a temporary increase in \(x\) has on \(y\)
  • Cumulative effects as \(\beta_0 + \beta_1 + \cdots + \beta_h\) for any horizon \(h\)

15.2 Assumptions

In distributed lag models, both \(y\) and \(x\) are typically random. That is, we do not know their values prior to sampling. We do not “set” output growth, for example, and then observe the resulting level of unemployment. To accommodate for this stochastic process, we assume that the \(x\)’s are random and that the error term \(e_t\) is independent of all \(x\)’s in the sample – past, current, and future. This assumption, in conjunction with the other multiple regression assumptions, is sufficient for the least squares estimator to be unbiased and to be BLUE, conditional on the \(x\)’s in the sample.

The assumptions of the distributed lag model are:

  1. \(y_t = \alpha + \beta_0 x_t + \beta_1 x_{t-1} + \beta_2 x_{t-2} + \ldots + \beta_q x_{t-q} + e_t\)
  2. \(y\) and \(x\) are stationary random variables, and \(e_t\) is independent of current, past, and future values of \(x\)
  3. \(E(e_t) = 0\)
  4. \(\var(e_t) = \sigma^2\)
  5. \(\cov(e_t, e_s) = 0 \quad t \ne s\)
  6. \(e_t \sim N(0, \sigma^2)\)

15.3 Application: Okun’s Law

We will apply the finite distributed lag model to Okun’s Law. Arther Melvin Okun was an economist who posited that higher output growth reduces unemployment. Mathematically, Okun’s Law can be expressed as

\[ U_{t}-U_{t-1}=-\gamma(G_{t}-G_{N}) \] where

  • \(U_{t}\) is the unemployment rate in period \(t\),
  • \(G_{t}\) is the growth rate of output in period \(t\), and
  • \(G_{N}\) is the “normal” growth rate, which we assume constant over time.

We can rewrite the above equation in more familiar notation of the multiple regression model by denoting the change in unemployment as

\[ DU_{t} = \Delta U_{t} = U_{t}-U_{t-1}. \] We then set \(\gamma = \beta_{0}\) and \(G_{N} = \alpha.\) Including an error term to our equation yields

\[ DU_{t}=\alpha + \beta_{0}G_{t} + \varepsilon_{t}. \]

Acknowledging the changes in output are likely to have a distributed-lag effect on unemployment – not all of the effect will take place instantaneously. We can then further expand our equation to

\[ DU_{t} = \alpha + \beta_{0}G_{t} + \beta_{1}G_{t-1} + \beta_{2}G_{t-2} + \ldots + \beta_{q}G_{t-q} + \varepsilon_{t} \]

15.3.1 Empirical Result

f_name <- "https://raw.githubusercontent.com/my1396/course_dataset/refs/heads/main/okun.csv"
okun2 <- read_csv(f_name)
okun2 <- okun2 %>% 
    mutate(dunemp = c(NA, diff(unemp))
           )
# convert data to a time series object
okun2.zoo <- okun2 %>% 
    xts(x = .[,-1], order.by = as.yearqtr(.[[1]])) %>% 
    as.zoo()
okun2
# A tibble: 310 × 5
   date       unemp      GDP       gGDP     dunemp
   <date>     <dbl>    <dbl>      <dbl>      <dbl>
 1 1948-01-01   3.3 2239.682  1.506038  NA        
 2 1948-04-01   3.3 2276.69   1.652377   0        
 3 1948-07-01   3.3 2289.77   0.5745183  0        
 4 1948-10-01   3.5 2292.364  0.1132865  0.2000000
 5 1949-01-01   4.1 2260.807 -1.376614   0.6000000
 6 1949-04-01   5.3 2253.128 -0.3396575  1.2      
 7 1949-07-01   6.1 2276.424  1.033940   0.8      
 8 1949-10-01   6.4 2257.352 -0.8378053  0.3000000
 9 1950-01-01   5.8 2346.104  3.931686  -0.6000000
10 1950-04-01   5.1 2417.682  3.050930  -0.7      
# ℹ 300 more rows

Before we proceed, let’s take a preliminary look at growth and unemployment during this time period.

ggplot(okun2 %>% gather("key", "value", gGDP, dunemp),
       aes(x = date, y = value, color = key)) +
    geom_line() + 
    labs(y="%") +
    scale_color_manual(
        values = c(gGDP = "blue", dunemp = "red"),
        labels = c(gGDP = "Growth in Real GDP", dunemp = "∆ Unemployment Rate") ) +
    theme_bw(base_size = 14) +
    theme(legend.position = c(.2, .9),
          legend.title = element_blank(),
          axis.title.x = element_blank(),
          )

Change in unemployment (red) and growth rate of GDP (blue).

Implement Finite Distributed Lag models (15.1) for \(q=1\) and \(2\).

library(dynlm)
okun.lag1 <- dynlm(d(unemp, 1) ~ L(gGDP, 0:1), data = okun2.zoo)
okun.lag2 <- dynlm(d(unemp, 1) ~ L(gGDP, 0:2), data = okun2.zoo)

Model estimates for lag length at \(q=2\)

\[ DU_{t} = \alpha + \beta_{0}G_{t} + \beta_{1}G_{t-1} + \beta_{2}G_{t-2} + \varepsilon_{t}. \tag{15.2}\]

summary(okun.lag2)

Time series regression with "zoo" data:
Start = 1948 Q3, End = 2025 Q1

Call:
dynlm(formula = d(unemp, 1) ~ L(gGDP, 0:2), data = okun2.zoo)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.6733 -0.2155 -0.0214  0.1718  4.9551 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)    0.40698    0.03699  11.003  < 2e-16 ***
L(gGDP, 0:2)1 -0.44244    0.02286 -19.351  < 2e-16 ***
L(gGDP, 0:2)2 -0.09429    0.02291  -4.116 4.97e-05 ***
L(gGDP, 0:2)3  0.01078    0.02285   0.472    0.637    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4422 on 303 degrees of freedom
  (0 observations deleted due to missingness)
Multiple R-squared:  0.5816,    Adjusted R-squared:  0.5774 
F-statistic: 140.4 on 3 and 303 DF,  p-value: < 2.2e-16

\[ DU_{t} = \alpha + \beta_{0}G_{t} + \beta_{1}G_{t-1} + \varepsilon_{t}. \tag{15.3}\]

Model estimates for lag length at \(q=1\)

summary(okun.lag1)

Time series regression with "zoo" data:
Start = 1948 Q2, End = 2025 Q1

Call:
dynlm(formula = d(unemp, 1) ~ L(gGDP, 0:1), data = okun2.zoo)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.6950 -0.2147 -0.0223  0.1782  4.9746 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)    0.41373    0.03423  12.088  < 2e-16 ***
L(gGDP, 0:1)1 -0.44041    0.02270 -19.398  < 2e-16 ***
L(gGDP, 0:1)2 -0.09228    0.02271  -4.063 6.16e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4416 on 305 degrees of freedom
  (0 observations deleted due to missingness)
Multiple R-squared:  0.5798,    Adjusted R-squared:  0.577 
F-statistic: 210.4 on 2 and 305 DF,  p-value: < 2.2e-16

\[ \begin{aligned} \widehat{DU}_{t} &= 0.414 - 0.440\,G_{t} - 0.092\,G_{t-1} \\ &\phantom{=}\;\; (.034)\quad (.023) \quad\quad (.023) \\ n &= 308, R^2=.580, \bar{R^2} = .577. \end{aligned} \]

A 1 percentage point increase in the growth rate of GDP leads to a fall in the change of unemployment rate by 0.44 percentage points in the current quarter, a fall of 0.09 percentage points in the next quarter. The delayed effects stop beyond the first lag.

15.4 ARDL

A more general model is

\[ y_{t} = \alpha + \rho\, y_{t-1} + \gamma_{0}z_{t} + \gamma_{1}z_{t-1} + v_{t}, \]

which is an autoregressive distributed lag model (ARDL(1,1)). It is called an autoregressive distributed lag model because the dependent variable is regressed on its lagged value (the autoregressive component), and it also includes explanatory variables and their lagged values (the distributed lag component).

ARDL(\(p, q\)) is a model with

  • \(p\) lags of the dependent variable (AR(\(p\))) and
  • \(q\) lags of the independent variable (DL(\(q\))).

This equation can be estimated by linear least squares providing that the \(v_t\) satisfy the usual assumptions required for least squares estimation, namely that they have zero mean and constant variance, and are not autocorrelated.

The presence of the lagged dependent variable \(y_{t−1}\) means that a large sample is required for the desirable properties of the least squares estimator to hold, but the least squares procedure is still valid providing that \(v_t\) is uncorrelated with current and past values of the right-hand side variables.

It is crucial that \(v_t\) be serial uncorrelated. If they are serial correlated, e.g., \(v_t=u_t-\rho u_t\), the least square estimator will be biased, even in large sample sizes!

Models ARDL(1,1), ARDL(1,0) (autoregressive model), and ARDL(0,1) (distributed lag model) are of special interest to users because they provide information about the short-run and the long-run relationship between two variables \(z_t\) and \(y_t,\) assuming that variables \(z_t\) is strictly exogenous, i.e., \(z_t\) is uncorrelated with \(v_t\) and \(y_{t-1}\).

15.4.1 ARDL(1,1)

One lag of both \(y_t\) and \(z_t\)

\[ y_t = \alpha + \rho y_{t-1} + \gamma_0 z_t + \gamma_1 z_{t-1} + v_t \]

  • Full dynamics: Includes both short-run and long-run components.

  • You can test for:

    • Short-run effects: via \(\gamma_0\)

    • Long-run relationship: via long-run multiplier:

      \[ \text{LRP} = \frac{\gamma_0 + \gamma_1}{1 - \rho} \]

  • Most general case with minimal lags → a baseline to test simplifications.

15.4.2 ARDL(1,0)

Technically a autoregressive model:

\[ y_t = \alpha + \rho y_{t-1} + \gamma_0 z_t + v_t \]

  • Assumes current value of \(z_t\) affects \(y_t\), but no lagged effect from \(z_{t-1}\).
  • Still allows for persistence in \(y_t\) through \(y_{t-1}\).
  • Often used when theory or data suggest that \(z_t\)’s impact is immediate, but \(y_t\) evolves gradually.

Long-run multiplier:

\[ \text{LRP} = \frac{\gamma_0}{1 - \rho} \]

15.4.3 ARDL(0,1)

Technically a Distributed Lag Model:

\[ y_t = \alpha + \gamma_0 z_t + \gamma_1 z_{t-1} + v_t \]

  • No dynamic feedback from \(y_{t-1}\) — makes it easier to estimate (no autocorrelation structure to handle).
  • Focuses on how past and current \(z_t\) values explain \(y_t\).
  • Useful when \(y_t\) is not persistent or when \(y_{t-1}\) is statistically insignificant.

Summary Table:

Model Lags Focus / Use Case long-run effect Persistence Immediate effects Delayed efects
ARDL(1,1) \(y_{t-1}, z_t, z_{t-1}\) Full dynamics (short + long run)
ARDL(1,0) \(y_{t-1}, z_t\) Current impact of \(z_t\), gradual \(y_t\)
ARDL(0,1) \(z_t, z_{t-1}\) Immediate + lagged impact of \(z_t\), no persistence in \(y_t\)
  • Immediate effects via \(z_t\) vs Delayed effects via \(z_{t-1}\)

    Does a shock to \(z_t\) affect \(y_t\) right away, or only after some time?

  • Short-run vs. Long-run Dynamics

    This refers to distinguishing:

    • Short-run changes: immediate response of \(y_t\) to changes in \(z_t\)
    • Long-run equilibrium: the total accumulated effect of a permanent change in \(z_t\)

    The long-run effect in models with \(y_{t-1}\) (i.e., ARDL(1,1), ARDL(1,0)) is:

    \[ \text{Long-run multiplier} = \frac{\text{Sum of } \gamma_i}{1 - \rho} \]

    So:

    • ARDL(1,1) and ARDL(1,0) allow estimation of both short-run and long-run effects
    • ARDL(0,1) does not allow this, because there’s no lagged \(y_t\) — no dynamic accumulation

    This helps answer:

    Are the effects of changes in \(z_t\) temporary or permanent?

  • Persistence in the Dependent Variable

    This refers to how much the past value of \(y_t\) influences its current value.

    When \(y_{t-1}\) is included, it means that the current value of \(y_t\) is influenced by its past value, which implies that shocks to \(y_t\) will have a persistent effect over time.

    In absence of \(y_{t-1}\), the model focuses on the immediate relationship between \(z_t\) and \(y_t\) without considering past values of \(y_t\).

15.4.4 Example: temperature changes affecting GDP

Let:

  • \(y_t\): GDP growth rate at time \(t\)
  • \(z_t\): temperature anomaly (e.g., deviation from normal)

We want to understand how temperature shocks (e.g., a heatwave or cold year) affect economic performance — both now and in the future.


ARDL(1,1): full dynamics

\[ y_t = \alpha + \rho y_{t-1} + \gamma_0 z_t + \gamma_1 z_{t-1} + v_t \]

Interpretation: GDP this year depends on:

  • Last year’s GDP growth (\(y_{t-1}\)) — persistence
  • This year’s temperature (\(z_t\)) — immediate effect
  • Last year’s temperature (\(z_{t-1}\)) — delayed effect

Real-World Example:

A hot year reduces agricultural output this year (immediate effect), and possibly reduces capital investment or damages infrastructure, which lowers next year’s growth too (delayed effect).

Meanwhile, GDP tends to persist over time due to investment cycles and habits.


ARDL(1,0): No Delayed Temperature Effect

\[ y_t = \alpha + \rho y_{t-1} + \gamma_0 z_t + v_t \]

Interpretation:

  • GDP growth is still persistent.
  • Temperature has only an immediate effect.

Real-World Example:

A heatwave disrupts economic activity this year, but all effects dissipate quickly — no lasting damage.

GDP dynamics continue through \(y_{t-1}\), but temperature doesn’t have long-term influence.


ARDL(0,1): No GDP Persistence

\[ y_t = \alpha + \gamma_0 z_t + \gamma_1 z_{t-1} + v_t \]

Interpretation:

  • GDP responds to current and past temperature, but doesn’t depend on its own past values.

Real-World Example:

Economic output is fully driven by climate conditions, with no built-in momentum or persistence.

No matter how well or poorly the economy performed last year, only temperature determines growth this year.

This may be unrealistic, but useful as a simplifying model.

Model What it tells us Example insight
ARDL(1,1) Immediate + delayed temp effects + GDP persistence Temp shocks may cause prolonged GDP losses
ARDL(1,0) Immediate temp effects + GDP persistence Temp only matters this year, but GDP adjusts gradually
ARDL(0,1) Immediate + delayed temp effects only Temp affects GDP directly, but GDP has no memory

15.4.5 Implement an ARDL model

\[ DU_{t} = \alpha + \rho\, DU_{t-1} + \gamma_{0}G_{t} + \gamma_{1}G_{t-1} + v_{t}. \tag{15.4}\]

The ARDL model (15.4) assumes the effects of growth in output persists, while FDL(\(q=1\)) model (15.3) assumes the change in employment responds to changes in output growth only over two periods (current and the last periods).

okun.ardl <- dynlm(d(unemp, 1) ~ L(d(unemp, 1), 1) + L(gGDP, 0:1), data = okun2.zoo)
summary(okun.ardl)

Time series regression with "zoo" data:
Start = 1948 Q3, End = 2025 Q1

Call:
dynlm(formula = d(unemp, 1) ~ L(d(unemp, 1), 1) + L(gGDP, 0:1), 
    data = okun2.zoo)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.4662 -0.2198 -0.0218  0.1686  4.9875 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)        0.42871    0.03769  11.374  < 2e-16 ***
L(d(unemp, 1), 1) -0.05640    0.05874  -0.960 0.337736    
L(gGDP, 0:1)1     -0.43423    0.02390 -18.165  < 2e-16 ***
L(gGDP, 0:1)2     -0.11951    0.03575  -3.343 0.000932 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4416 on 303 degrees of freedom
  (0 observations deleted due to missingness)
Multiple R-squared:  0.5825,    Adjusted R-squared:  0.5784 
F-statistic: 140.9 on 3 and 303 DF,  p-value: < 2.2e-16

\[ \begin{aligned} \widehat{DU}_{t} &= 0.429 - 0.056 \, DU_{t-1} - 0.434\,G_{t} - 0.120\,G_{t-1} \\ &\phantom{=}\;\; (.038)\quad (.059) \qquad\quad\quad (.024) \quad\quad\; (.036)\\ n &= 307, R^2=.583, \bar{R^2} = .579. \end{aligned} \]

A 1% increase in the change of unemployment rate from the previous quarter leads to a 0.056% decrease in the change of unemployment rate in the current quarter. This suggests a mild mean-reverting behavior: unemployment shocks tend to partially reverse in the following quarter, but the effect is small and statistically insignificant.

A 1% increase in the growth rate of GDP leads to a fall in the change of unemployment rate of 0.43% in the current quarter, a fall of 0.12% in the next quarter.


References