Research Notebook

Impulse-Response Functions for VARs

February 18, 2015 by Alex

1. Motivating Example

If you regress the current quarter’s inflation rate, x_t, on the previous quarter’s rate using data from FRED over the period from Q3-1987 to Q4-2014, then you get the AR(1) point estimate,

(1)   \begin{align*} x_t = \underset{(0.09)}{0.31} \cdot x_{t-1} + \epsilon_t, \end{align*}

where the number in parentheses denotes the standard error, and the inflation-rate time series, x_t, has been demeaned. In other words, if the inflation rate is \mathrm{StD}(\epsilon_t) \approx 0.47{\scriptstyle \%} points higher in Q1-2015, then on average it will be 0.31 \times 0.47 \approx 0.14{\scriptstyle \%} points higher in Q2-2015, 0.31^2 \times 0.47 \approx 0.04{\scriptstyle \%} points higher in Q3-2015, and so on… The function that describes the cascade of future inflation-rate changes due to an unexpected 1\sigma shock in period t is known as the impulse-response function.

But, many interesting time-series phenomena involve multiple variables. For example, Brunnermeier and Julliard (2008) show that the house-price appreciate rate, y_t, is inversely related to the inflation rate. If you regress the current quarter’s inflation and house-price appreciation rates on the previous quarter’s rates using demeaned data from the Case-Shiller/S&P Index, then you get:

(2)   \begin{align*} \begin{bmatrix} x_t  \\ y_t \end{bmatrix} =  \begin{pmatrix} \phantom{-}\underset{(0.09)}{0.29} & \underset{(0.02)}{0.01} \\ -\underset{(0.43)}{0.40} & \underset{(0.09)}{0.50} \end{pmatrix} \begin{bmatrix} x_{t-1} \\ y_{t-1} \end{bmatrix} + \begin{pmatrix} \epsilon_{x,t}  \\ \epsilon_{y,t} \end{pmatrix}. \end{align*}

These point estimates indicate that, if the inflation rate were \mathrm{StD}(\epsilon_{x,t}) \approx 0.47{\scriptstyle \%} points higher in Q1-2015, then the inflation rate would be 0.29 \times 0.47 \approx 0.14{\scriptstyle \%} points higher in Q2-2015 and the house-price appreciation rate would be -0.40 \times 0.47 \approx -0.19{\scriptstyle \%} points lower in Q2-2015.

Computing the impulse-response function for this vector auto-regression (VAR) is more difficult than computing the same function for the inflation-rate AR(1) because the inflation rate and house-price appreciation rate shocks are correlated:

(3)   \begin{align*} \mathrm{Cor}(\epsilon_{x,t}, \epsilon_{y,t}) &= 0.13 \neq 0. \end{align*}

In other words, when you see a 1{\scriptstyle \%} point shock to inflation, you also tend to see a 0.13{\scriptstyle \%} point shock to the house-price appreciation rate. Thus, computing the future effects of a 1\sigma shock to the inflation rate and a 0{\scriptstyle \%} point shock to the house-price appreciation rate gives you information about a unit shock that doesn’t happen in the real world. In this post, I show how to account for this sort of correlation when computing the impulse-response function for VARs. Here is the relevant code.

2. Impulse-Response Function

Before studying VARs, let’s first define the impulse-response function more carefully in the scalar world. Suppose we have some data generated by an AR(1),

(4)   \begin{align*} x_t &= \gamma \cdot x_{t-1} + \epsilon_t, \end{align*}

where \mathrm{E}[x_t] = 0, \mathrm{E}[\epsilon_t] = 0, and \mathrm{Var}[\epsilon_t] = \sigma^2. For instance, if we’re looking at quarterly inflation data, x_t = \Delta \log \mathit{CPI}_t, then \gamma = 0.31. In this setup, what would happen if there was a sudden 1\sigma shock to x_t in period t? How would we expect the level of x_{t+1} to change? What about the level of x_{t+2}? Or, the level of any arbitrary x_{t+h} for h > 0? How would a \mathrm{StD}(\epsilon_t) \approx 0.47{\scriptstyle \%} point shock to the current inflation rate propagate into future quarters?

Well, it’s easy to compute the time t expectation of x_{t+1}:

(5)   \begin{align*} \mathrm{E}_t[x_{t+1}] &= \mathrm{E}_t \left[ \, \gamma \cdot x_t + \epsilon_{t+1} \, \right] \\ &= \gamma \cdot x_t. \end{align*}

Iterating on this same strategy then gives the time t expectation of x_{t+2}:

(6)   \begin{align*} \begin{split} \mathrm{E}_t[x_{t+2}]  &= \mathrm{E}_t \left[ \, \gamma \cdot x_{t+1} + \epsilon_{t+2} \, \right]  \\ &= \mathrm{E}_t \left[ \, \gamma \cdot \left\{ \, \gamma \cdot x_t + \epsilon_{t+1} \, \right\} + \epsilon_{t+2} \, \right]  \\ &= \gamma^2 \cdot x_t. \end{split} \end{align*}

So, in general, the time t expectation of any future x_{t+h} will be given by the formula,

(7)   \begin{align*} \mathrm{E}_t[x_{t+h}] &= \gamma^h \cdot x_t, \end{align*}

and the impulse-response function for the AR(1) process will be:

(8)   \begin{align*} \mathrm{Imp}(h) &= \gamma^h \cdot \sigma. \end{align*}

If you knew that there was a sudden shock to x_t of size \epsilon_t = +1\sigma, then your expectation of x_{t+h} would change by the amount \mathrm{Imp}(h). The figure below plots the impulse-response function for x_t using the AR(1) point estimate by Equation (1).

plot--cpi-ar1-irf

There’s another slightly different way you might think about an impulse-response function—namely, as the coefficients to the moving-average representation of the time series. Consider rewriting the data generating process using lag operators,

(9)   \begin{align*} \begin{split} \epsilon_t &= x_t - \gamma \cdot x_{t-1}  \\ &= (1 - \gamma \cdot \mathcal{L}) \cdot x_t, \end{split} \end{align*}

where \mathcal{L} x_t = x_{t-1}, \mathcal{L}^2 x_t = x_{t-2}, and so on… Whenever the slope coefficient is smaller than 1, |\gamma|<1, we know that (1 - \gamma)^{-1} = \sum_{h=0}^{\infty}\gamma^h, and there exists a moving-average representation of x_t:

(10)   \begin{align*} x_t  &= (1 - \gamma \cdot \mathcal{L})^{-1} \cdot \epsilon_t \\ &= \left( \, 1 + \gamma \cdot \mathcal{L} + \gamma^2 \cdot \mathcal{L}^2 + \cdots \, \right) \cdot \epsilon_t \\ &= \sum_{\ell = 0}^{\infty} \gamma^{\ell} \cdot \epsilon_{t-\ell}. \end{align*}

That is, rather than writing each x_t as a function of a lagged value, \gamma \cdot x_{t-1}, and a contemporaneous shock, \epsilon_t, we can instead represent each x_t as a weighted average of all the past shocks that’ve been realized, with more recent shocks weighted more heavily.

(11)   \begin{align*} x_t &= \sum_{\ell = 0}^{\infty} \gamma^{\ell} \cdot \epsilon_{t-\ell} \end{align*}

If we normalize all of the shocks to have unit variance, then the weights themselves will be given by the impulse-response function:

(12)   \begin{align*} x_t &= \sum_{\ell = 0}^{\infty} \gamma^{\ell} \cdot (\sigma \cdot \sigma^{-1}) \cdot \epsilon_{t-\ell} \\ &= \sum_{\ell = 0}^{\infty} \mathrm{Imp}(\ell) \cdot (\sfrac{\epsilon_{t-\ell}}{\sigma}). \end{align*}

Of course, this is exactly what you’d expect for a covariance-stationary process. The impact of past shocks on the current realized value had better be the same as the impact of current shocks on future values.

3. From ARs to VARs

We’ve just seen how to compute the impulse-response function for an AR(1) process. Let’s now examine how to extend this the setting where there are two time series,

(13)   \begin{align*} x_t &= \gamma_{x,x} \cdot x_{t-1} + \gamma_{x,y} \cdot y_{t-1} + \epsilon_{x,t}, \\ y_t &= \gamma_{y,x} \cdot x_{t-1} + \gamma_{y,y} \cdot y_{t-1} + \epsilon_{y,t}, \end{align*}

instead of just 1. This pair of equations can be written in matrix form as follows,

(14)   \begin{align*} \underset{\mathbf{z}_t}{ \begin{bmatrix} x_t \\ y_t \end{bmatrix} } &= \underset{\mathbf{\Gamma}}{ \begin{pmatrix} \gamma_{x,x} & \gamma_{x,y} \\ \gamma_{y,x} & \gamma_{y,y} \end{pmatrix} } \underset{\mathbf{z}_{t-1}}{ \begin{bmatrix} x_{t-1} \\ y_{t-1} \end{bmatrix} } + \underset{\boldsymbol \epsilon_t}{ \begin{bmatrix} \epsilon_{x,t} \\ \epsilon_{y,t} \end{bmatrix} }, \end{align*}

where \mathrm{E}[ {\boldsymbol \epsilon}_t ] = \mathbf{0} and \mathrm{E}[ {\boldsymbol \epsilon}_t {\boldsymbol \epsilon}_t^{\top} ] = \mathbf{\Sigma}. For example, if you think about x_t as the quarterly inflation rate and y_t as the quarterly house-price appreciation rate, then the coefficient matrix \mathbf{\Gamma} is given in Equation (2).

Nothing about the construction of the moving-average representation of x_t demanded that x_t be a scalar, so we can use the exact same tricks to write the (2 \times 2)-dimensional vector \mathbf{z}_t as a moving average:

(15)   \begin{align*} \mathbf{z}_t = \sum_{\ell = 0}^{\infty} \mathbf{\Gamma}^{\ell} {\boldsymbol \epsilon}_{t-\ell}. \end{align*}

But, it’s much less clear in this vector-valued setting how we’d recover the impulse-response function from the moving-average representation. Put differently, what’s the matrix analog of \mathrm{StD}(\epsilon_t) = \sigma?

Let’s apply the want operator. This mystery matrix, let’s call it \mathbf{C}_x^{-1}, has to have two distinct properties. First, it’s got to rescale the vector of shocks, {\boldsymbol \epsilon}_t, into something that has a unit norm,

(16)   \begin{align*} 1 &= \mathrm{E}\left[ \, \Vert \mathbf{C}_x^{-1} {\boldsymbol \epsilon}_t \Vert_2 \, \right], \end{align*}

in the same way that \mathrm{StD}(\sfrac{\epsilon_t}{\sigma}) = 1 in the analysis above. This is why I’m writing the mystery matrix as \mathbf{C}_x^{-1} rather than just \mathbf{C}_x. Second, the matrix has to account for the fact that the shocks, \epsilon_{x,t} and \epsilon_{y,t}, are correlated, so that 1{\scriptstyle \%} point shocks to the inflation rate are always accompanied by 0.13{\scriptstyle \%} point shocks to the house-price appreciation rate. Because the shocks to each variable might have different standard deviations, for instance, \mathrm{StD}(\epsilon_{x,t}) = \sigma_x \approx 0.47{\scriptstyle \%} while \mathrm{StD}(\epsilon_{y,t}) = \sigma_y \approx 2.29{\scriptstyle \%}, the effect of a 1\sigma_x shock to the inflation rate on the house-price appreciation rate, 0.13 \times 0.47 \approx 0.06{\scriptstyle \%}, will be different than the effect of a 1\sigma_y shock to the house-price appreciation rate on the inflation rate, 0.13 \times 2.29 \approx 0.30{\scriptstyle \%}. Thus, each variable in the vector \mathbf{z}_t will have its own impulse-response function. This is why I write the mystery matrix as \mathbf{C}_x^{-1} rather than \mathbf{C}^{-1}.

It turns out that, if we pick \mathbf{C}_x to be the Cholesky decomposition of \mathbf{\Sigma},

(17)   \begin{align*} \mathbf{\Sigma} &= \mathbf{C}_x\mathbf{C}_x^\top, \end{align*}

then \mathbf{C}_x^{-1} will have both of the properties we want as pointed out in Sims (1980). The simple 2-dimensional case is really useful for understanding why. To start with, let’s write out the variance-covariance matrix of the shocks, \mathbf{\Sigma}, as follows,

(18)   \begin{align*} \mathbf{\Sigma} &= \begin{pmatrix} \sigma_x^2 & \rho \cdot \sigma_x \cdot \sigma_y \\ \rho \cdot \sigma_x \cdot \sigma_y & \sigma_y^2 \end{pmatrix} \end{align*}

where \rho = \mathrm{Cor}(\epsilon_{x,t},\epsilon_{y,t}). The Cholesky decomposition of \mathbf{\Sigma} can then be solved by hand:

(19)   \begin{align*} \overbrace{ \begin{pmatrix} \sigma_x^2 & \rho \cdot \sigma_x \cdot \sigma_y \\ \rho \cdot \sigma_x \cdot \sigma_y & \sigma_y^2 \end{pmatrix}}^{=\mathbf{\Sigma}} &= \begin{pmatrix} \sigma_x^2 & \rho \cdot \sigma_x \cdot \sigma_y  \\ \rho \cdot \sigma_x \cdot \sigma_y & \rho^2 \cdot \sigma_y^2 + (1 - \rho^2) \cdot \sigma_y^2 \end{pmatrix} \\ &= \underbrace{ \begin{pmatrix} \sigma_x & 0 \\ \rho \cdot \sigma_y & \sqrt{(1 - \rho^2) \cdot \sigma_y^2} \end{pmatrix}}_{=\mathbf{C}_x} \underbrace{ \begin{pmatrix} \sigma_x & \rho \cdot \sigma_y \\ 0 & \sqrt{(1 - \rho^2) \cdot \sigma_y^2} \end{pmatrix}}_{=\mathbf{C}_x^{\top}} \end{align*}

Since we’re only working with a (2 \times 2)-dimensional matrix, we can also solve for \mathbf{C}_x^{-1} by hand:

(20)   \begin{align*} \mathbf{C}_x^{-1}  &= \frac{1}{(1 - \rho^2)^{\sfrac{1}{2}} \cdot \sigma_x \cdot \sigma_y} \cdot \begin{pmatrix} (1 - \rho^2)^{\sfrac{1}{2}} \cdot \sigma_y & 0 \\ - \rho \cdot \sigma_y & \sigma_x \end{pmatrix} \\ &=  \begin{pmatrix} \frac{1}{\sigma_x} & 0 \\ - \frac{\rho}{(1 - \rho^2)^{\sfrac{1}{2}}} \cdot \frac{1}{\sigma_x} & \frac{1}{(1 - \rho^2)^{\sfrac{1}{2}}} \cdot \frac{1}{\sigma_y} \end{pmatrix} \end{align*}

So, for example, if there is a pair of shocks, {\boldsymbol \epsilon}_t = \begin{bmatrix} \sigma_x & 0 \end{bmatrix}^{\top}, then \mathbf{C}_x^{-1} will convert this shock into:

(21)   \begin{align*} \mathbf{C}_x^{-1}{\boldsymbol \epsilon}_t = \begin{bmatrix} 1 & - \rho \cdot (1 - \rho^2)^{-\sfrac{1}{2}} \end{bmatrix}^{\top}. \end{align*}

In other words, the matrix \mathbf{C}_x^{-1} rescales {\boldsymbol \epsilon}_t to have unit norm, \mathrm{E}\!\left[ \, \mathbf{C}_x^{-1} \, {\boldsymbol \epsilon}_t^{\phantom{\top}}\!{\boldsymbol \epsilon}_t^{\top} (\mathbf{C}_x^{-1})^{\top} \right] = \mathbf{I}, and rotates the vector to account for the correlation between \epsilon_{x,t} and \epsilon_{y,t}. To appreciate how the rotation takes into account the positive correlation between \epsilon_{x,t} and \epsilon_{y,t}, notice that matrix \mathbf{C}_x^{-1} turns the shock {\boldsymbol \epsilon}_t = \begin{bmatrix} \sigma_x & 0 \end{bmatrix}^{\top} into a vector that is pointing 1 standard deviation in the x direction and - \rho \cdot (1 - \rho^2)^{-\sfrac{1}{2}} in the y direction. That is, given that you’ve observed a positive 1\sigma_x shock, observing a 0\sigma_y shock would be a surprisingly low result.

If we plug \mathbf{C}_x^{-1} into our moving-average representation of \mathbf{z}_t, then we get the expression below,

(22)   \begin{align*} \mathbf{z}_t  &= \sum_{\ell = 0}^{\infty} \mathbf{\Gamma}^{\ell} (\mathbf{C}_x \mathbf{C}_x^{-1}) \, {\boldsymbol \epsilon}_{t-\ell}, \\ &= \sum_{\ell = 0}^{\infty} \mathrm{Imp}_x(\ell) \, \mathbf{C}_x^{-1} {\boldsymbol \epsilon}_{t-\ell}, \end{align*}

implying that the impulse-response function for x_t is given by:

(23)   \begin{align*} \mathrm{Imp}_x(h) &= \mathbf{\Gamma}^h \mathbf{C}_x. \end{align*}

The figure below plots the impulse-response function for both x_t and y_t implied by a unit shock to x_t using the coefficient matrix from Equation (2).

plot--cpi-vs-hpi-var-irf

Filed Under: Uncategorized

Bias in Time-Series Regressions

February 7, 2015 by Alex

1. Motivation

How persistent has IBM’s daily trading volume been over the last month? How persistent have Apple’s monthly stock returns been over the last 5 years of trading? What about the US’s annual GDP growth over the last century? To answer these questions, why not just run an OLS regression,

(1)   \begin{align*} x_t = \widehat{\alpha} + \widehat{\rho} \cdot x_{t-1} + \widehat{\epsilon}_t, \end{align*}

where \widehat{\rho} denotes the estimated auto-correlation of the relevant data series? The Gauss-Markov Theorem says that an OLS regression will give a consistent unbiased estimate of the persistence parameter, \rho, right?

Wrong.

Although OLS estimates are still consistent when using time-series data (i.e., they converge to the correct value as the number of observations increases), they are no longer unbiased in finite samples (i.e., they may be systematically too large or too small when looking at T = 100 rather than T \to \infty observations). To illustrate the severity of this problem, I simulate data of lengths T = 21, 60, and 100,

(2)   \begin{align*} x_t = 0 + \rho \cdot x_{t-1} + \epsilon_t  \qquad  \epsilon_t \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \mathrm{N}(0,1), \end{align*}

and estimate the simple auto-regressive model from Equation (1) to recover \rho. The figure below shows the results of this exercise. The left-most panel reveals that, when the true persistence parameter approaches one, \rho \nearrow 1, the bias approaches -0.20, or \sfrac{1}{5} of the true coefficient size. In other words, if you simulate a time series of T=21 data points using \rho = 1, then you’ll typically estimate a \widehat{\rho} = 0.80!

plot--ar1-coef-bias

What is it about time series data that induces the bias? Why doesn’t this problem exist in a cross-sectional regression? How can it exist even when the true coefficient is \rho = 0? This post answers these questions. All of the code can be found here.

2. Root of the Problem

Here is the short version. The bias in \widehat{\rho} comes from having to estimate the sample average of the time series:

(3)   \begin{align*} \widehat{\mu} &= \frac{1}{T} \cdot \sum_t x_t = \frac{1}{T} \cdot \sum_t \left( \frac{1 - \rho^{T - (t-1)}}{1 - \rho} \right) \cdot \epsilon_t. \end{align*}

If you knew the true mean, \mu, then there’d be no bias in \widehat{\rho}. Moreover, the bias goes away as you see more and more data (i.e., the estimator is consistent) because your estimated mean gets closer and closer to the true mean, \lim_{T \to \infty} (\widehat{\mu} - \mu)^2 = 0. Let’s now dig into why not knowing the mean of a time series induces a bias in OLS estimate of the slope.

Estimating the coefficients in Equation (1) means choosing the parameters \widehat{\mu} and \widehat{\rho} to minimize the mean squared error between the left-hand-side variable, x_t, and the right-hand-side variable, x_{t-1}:

(4)   \begin{align*} \min_{\{\widehat{\mu},\widehat{\rho}\}} \, \frac{1}{T} \cdot \sum_t \left( \, x_t - \left\{ \widehat{\mu} + \widehat{\rho} \cdot (x_{t-1} - \widehat{\mu}) \right\} \, \right)^2. \end{align*}

Any parameter choice, \widehat{\rho}, that minimizes this error must also satisfy the first-order condition below:

(5)   \begin{align*} 0 &=  - \, \frac{1}{T} \cdot \sum_t \left( \, x_t - \left\{ \widehat{\mu} + \widehat{\rho} \cdot (x_{t-1} - \widehat{\mu}) \right\} \, \right) \cdot (x_{t-1} - \widehat{\mu}). \end{align*}

Substituting in the true functional form, x_t = \mu + \rho \cdot x_{t-1} + \epsilon_t, then gives:

(6)   \begin{align*} 0 &=  - \, \frac{1}{T} \cdot \sum_t \left( \, \left\{\mu + \rho \cdot x_{t-1} + \epsilon_t \right\} - \left\{ \widehat{\mu} + \widehat{\rho} \cdot (x_{t-1} - \widehat{\mu}) \right\} \, \right) \cdot (x_{t-1} - \widehat{\mu}). \end{align*}

From here, it’s easy to solve for the expected difference between the estimated slope coefficient, \widehat{\rho}, and the true slope coefficient, \rho:

(7)   \begin{align*} \mathrm{E}\!\left[ \, \widehat{\rho} - \rho \, \right] &=  \mathrm{E} \left[ \, \frac{ \frac{1}{T} \cdot \sum_t ( \epsilon_t - \{\widehat{\mu} - \mu\} ) \cdot (x_{t-1} - \widehat{\mu}) }{ \frac{1}{T} \cdot \sum_t (x_{t-1} - \widehat{\mu})^2 } \, \right]. \end{align*}

Note that \widehat{\epsilon}_t = \epsilon_t - \{\widehat{\mu} - \mu\} is just the regression residual. So, this equation says that the estimated persistence parameter, \widehat{\rho}, will be too high if big \widehat{\epsilon}_t‘s tend to follow periods in which x_{t-1} is above its mean. Conversely, your estimated persistence parameter, \widehat{\rho}, will be too low if big \widehat{\epsilon}_t‘s tend to follow periods in which x_{t-1} is below its mean. How can estimating the time-series mean, \widehat{\mu}, induce this correlation while knowing the true mean, \mu, not?

Clearly, we need to compute the average of the time series given in Equation (3). For simplicity, let’s assume that the true mean is \mu = 0 and the initial value is x_0 = 0. Under these conditions, each successive term of the time series is just a weighted average of shocks:

(8)   \begin{align*} x_t &= \sum_{s=1}^t \rho^{t-s} \cdot \epsilon_s. \end{align*}

So, the sample average given in Equation (3) must contain information about future shock realizations, \{\epsilon_t, \epsilon_{t+1}, \ldots, \epsilon_T\}. Consider the logic when the true persistence parameter is positive, \rho > 0, and the true mean is zero, \mu = 0. If the current period’s realization of x_{t-1} is below the estimated mean, \widehat{\mu}, then future \epsilon_t‘s have to be above the estimated mean by definition—otherwise, \widehat{\mu} wouldn’t be the mean. Conversely, if the current period’s realization of x_{t-1} is above the estimated mean, then future \epsilon_t‘s have to be below the estimated mean. As a result, the sample covariance between (x_{t-1} - \widehat{\mu}) and (\epsilon_t - \widehat{\mu}) must be negative:

(9)   \begin{align*} 0 > \frac{1}{T} \cdot \sum_t (\epsilon_t - \widehat{\mu}) \cdot (x_{t-1} - \widehat{\mu}). \end{align*}

As a result, when the true slope parameter is positive, the OLS estimate will be biased downward.

3. Cross-Sectional Regressions

Cross-sectional regressions don’t have this problem because estimating the mean of the right-hand-side variable,

(10)   \begin{align*} \widehat{\mu}_x = \frac{1}{N} \cdot \sum_n x_n, \end{align*}

doesn’t tell you anything about the error terms. For example, imagine you had N data points generated by the following model,

(11)   \begin{align*} y_n = \mu_y + \beta \cdot (x_n - \mu_x) + \epsilon_n \qquad x_n \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \mathrm{N}(\mu_x, \sigma_x^2) \qquad \epsilon_n \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \mathrm{N}(0, \sigma_{\epsilon}^2). \end{align*}

where each observation of the right-hand-side variable, x_n, is independently drawn from the same distribution. In this setting, the slope coefficient from the associated cross-sectional regression,

(12)   \begin{align*} y_n &= \widehat{\mu}_y + \widehat{\beta} \cdot (x_n - \widehat{\mu}_x) + \widehat{\epsilon}_n, \end{align*}

won’t be biased because \widehat{\mu}_x isn’t a function of any of the error terms, \{\epsilon_1, \epsilon_2, \ldots, \epsilon_N\}:

(13)   \begin{align*} \left( \frac{1}{N} \cdot \sum_n x_n \right) \perp \epsilon_n. \end{align*}

So, estimating the mean won’t induce any covariance between the residuals, \widehat{\epsilon}_n = \epsilon_n - \{ \widehat{\mu}_y - \mu_y \}, and the right-hand-side variable, x_n - \widehat{\mu}_x. All the conditions of the Gauss-Markov Theorem hold. If you only have a small number of observations, then \widehat{\beta} may be a noisy estimate, but at least it will be unbiased.

4. Bias At Zero

One of the more interesting things about the slope coefficient bias in time series regressions is that it doesn’t disappear when the true parameter value is \rho = 0. For instance, in the figure above, notice that the expected bias disappears at \rho = -\sfrac{1}{3} and negative at \rho = 0. Put differently, if you estimated the correlation between Apple’s returns in successive months and found a parameter value of \widehat{\rho} = -0.03, then the true coefficient is likely \rho = 0. In fact, Kendall (1954) derives an approximate expression for this bias when the true data generating process is an \mathrm{AR}(1):

(14)   \begin{align*} \mathrm{E}[ \, \widehat{\rho} - \rho \, ] &= - \, \frac{1 + 3 \cdot \rho}{T} \end{align*}

A simple two-period example illustrates why this is so. Imagine a world where the true coefficient is \rho = 0, and you see the pair of data points in the left panel of the figure below, with the first observation lower than the second. If \mu = 0 as well, then we have that:

(15)   \begin{align*} \widehat{\mu} = \sfrac{x_1}{2} + \sfrac{x_2}{2} = \sfrac{\epsilon_1}{2} + \sfrac{\epsilon_2}{2}. \end{align*}

I plot this sample mean with the green dashed line. In the right panel of the figure, I show the distances (x_1 - \widehat{\mu}) and (\epsilon_2 - \widehat{\mu}) in red and blue respectively. Clearly, if the first observation, x_1, is below the line, then the second observation is above the line. But, since \rho = 0, the second observation is just x_2 = \epsilon_2, so you will observe a negative correlation between (x_1 - \widehat{\mu}) and (\epsilon_2 - \widehat{\mu}). \widehat{\rho} will be downward biased.

bias-in-ols-slope

Filed Under: Uncategorized

When Can Arbitrageurs Identify a Sporadic Pricing Error?

January 10, 2015 by Alex

1. Motivation

Imagine you’re an arbitrageur and you see a sequence of abnormal returns:

(1)   \begin{align*} \mathit{ra}_t \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \begin{cases}  +1 &\text{w/ prob } \sfrac{1}{2} \cdot (1 + \alpha) \\ -1 &\text{w/ prob } \sfrac{1}{2} \cdot (1 - \alpha) \end{cases} \qquad \text{with} \qquad \alpha \in [-1,1] \end{align*}

Here, \alpha denotes the stock’s average abnormal returns, so the stock’s mispriced if \alpha \neq 0. Suppose you don’t initially know whether or not the stock is priced correctly, whether or not \alpha = 0, but as you see more and more data you refine your beliefs, \widehat{\alpha}_T. In fact, your posterior variance disappears as T \to \infty:1

(2)   \begin{align*} \mathrm{Var}(\widehat{\alpha}_T - \alpha) \asymp T^{-1} \end{align*}

So, such pricing errors can’t persist forever unless there’s some limit to arbitrage, like trading costs or short-sale constraints, to keep you from trading it away.

However, pricing errors often don’t persist period after period. Instead, they tend to arrive sporadically, affecting the first period’s returns, skipping the next two periods’ returns, affecting the fourth and fifth periods’ returns, and so on… What’s more, arbitrageurs don’t have access to an oracle. They don’t know ahead of time which periods are affected and which aren’t. They have to figure this information out on the fly, in real time. In this post, I show that arbitrageurs with an infinite time series may never be able to identify a sporadic pricing error because they don’t know ahead of time where to look.

2. Sporadic Errors

What does it mean to say that a pricing error is sporadic? Suppose that, in each trading period, there is a key state variable, s_t \in \{0,1\}. If s_t = 0, then the stock’s abnormal returns are drawn from a distribution with \alpha = 0; whereas, if s_t = 1, then the stock’s abnormal returns are drawn from a distribution with \alpha \neq 0. Let \theta_t denote the probability that s_t = 1 in a given trading period:

(3)   \begin{align*} \theta_t &= \mathrm{Pr}\left[ \, s_t = 1 \, \middle| \, s_0 = 1 \, \right] \end{align*}

So, \theta_t = 1 for every t \geq 0 in the example above where the stock always has a mean abnormal return of \alpha. By contrast, if \theta_t < 1 in every trading period, then the pricing error is sporadic.

plot--renewal-process

You can think about this state variable in a number of ways. For instance, perhaps the market conditions have to be just right for the arbitrage opportunity to exist. In the figure above, I model the distance to this Goldilocks zone as a reflected random walk, x_t:

(4)   \begin{align*} x_t &=  \begin{cases} x_{t-1} + 1 &\text{w/ prob } 52{\scriptstyle \%} \\ \max\{x_{t-1} - 1, 0\}  &\text{w/ prob } 48{\scriptstyle \%} \end{cases} \end{align*}

Then, every time x_t hits the origin, the mispricing occurs. Thought of in this way, the state variable represents a renewal process.

3. Inference Problem

Suppose you see an infinitely long time series of abnormal returns. Let f_0(\{ \mathit{ra}_t \}) denote the distribution of abnormal returns when \alpha = 0 always, and let f_a(\{ \mathit{ra}_t \}) denote the distribution of abnormal returns when \alpha \neq 0 sometimes. So, if abnormal returns are drawn from f_0, then there are no pricing errors; whereas, if abnormal returns are drawn from f_a, then there are some pricing errors. Here’s the question: When can you conclusively tell whether the data was drawn from f_0 rather than f_a?

If a trader can perfectly distinguish between the pair of probability distributions, f_0 and f_a, then, when you give him any randomly selected sequence of abnormal returns, \{ \mathit{ra}_t \}, he will look at it and go, “That’s from distribution f_0.”, or “That’s from distribution f_a.” He will never be stumped. He will never need more information. Mutual singularity is the mathematical way of phrasing this simple idea. Let \Omega denote the set of all possible infinite abnormal return sequences:

(5)   \begin{align*} \Omega &= \left\{ \, \{ \mathit{ra}_t \}, \, \{ \mathit{ra}_t' \}, \, \{ \mathit{ra}_t'' \}, \, \ldots \,  \right\} \end{align*}

We say that a pair of distributions, f_0 and f_a, are mutually singular if there exist disjoint sets, \Sigma_0 and \Sigma_a, whose union is \Omega such that f_0(\{ \mathit{ra}_t \}) = 0 for all sequences \{ \mathit{ra}_t \} \in \Sigma_a while f_a(\{ \mathit{ra}_t \}) = 0 for all sequences \{ \mathit{ra}_t \} \in \Sigma_0. If f_0 and f_a are mutually singular then we can write f_0 \perp f_a. For example, if the alternative hypothesis is that \alpha = 0.10 every day, then f_0 \perp f_a since we know that all abnormal return sequences drawn from f_0 have a mean of exactly 0 as T \to \infty while all abnormal return sequences drawn from f_a have a mean of exactly \alpha = 0.10 as T \to \infty.

At the other extreme, you could imagine a trader being completely unable to tell a pair of distributions apart. It might be the case that any sequence of abnormal returns that is off limits in distribution f_0 is also off limits in distribution f_a. That is, you might never be able to find a sequence of returns that you could use to reject the null hypothesis. Absolute continuity is the mathematical way of phrasing this idea. A distribution f_a is absolutely continuous with respect to f_0 if f_0(\{ \mathit{ra}_t \}) = 0 implies that f_a(\{ \mathit{ra}_t \})=0. This is written as f_0 \gg f_a.

In this post I want to know: for what kind of sporadic pricing errors is f_a \gg f_0? When can a trader never be completely sure that he’s seen an pricing error and not just an unlikely set of market events?

4. Main Results

Now for the two main results. Harris and Keane (1997) show that, i) if the pricing error happens frequently enough, then traders can identify it regardless of how large it is:

(6)   \begin{align*} \sum_{t=0}^{\infty} \theta_t^2 = \infty  \qquad \Rightarrow \qquad f_0 \perp f_a \end{align*}

For instance, suppose that a stock’s abnormal returns are drawn from a distribution with a really small \alpha > 0 every single period (i.e., \theta_t = 1 for all t \geq 0). Then, just like standard statistical intuition would suggest, traders with enough data will eventually identify this tiny pricing error since \sum_{t=0}^\infty 1 = \infty.

By contrast, ii) if the pricing error is small and rare enough, then traders with an infinite amount of data will never be able to reject f_0. They will never be able to conclusively know that there was a pricing error:

(7)   \begin{align*}  \sum_{t=0}^{\infty} \theta_t^2 &< \sfrac{1}{\alpha^2} \qquad \Rightarrow \qquad f_0 \gg f_a \end{align*}

Again, f_0 \gg f_a means that traders can’t find a sequence of abnormal returns which would only have been possible under f_a. This is a bit of a strange result. To illustrate, suppose that you and I both see a suspicious abnormal return at time t=0. But, while you think it’s due to a sporadic arbitrage opportunity of size \alpha, I think it was just a random market fluctuation. If the probability that this pricing error recurs shrinks over time,

(8)   \begin{align*} \theta_t \asymp \sfrac{1}{(\alpha \cdot \sqrt{t})} \end{align*}

then no amount of additional data will enable us to conclusively settle our argument. There can be no smoking gun. We’ll just have to agree to disagree. This result runs against the standard Harsanyi doctrine which says that people who see the same information will end up with the same beliefs.

5. Proof Sketch

I conclude by sketching the proof for part ii) of Harris and Keane (1997)‘s main result: if the pricing error is sufficiently small and rare, then traders will never be able to reject f_0. To do this, I need to be able to show that, if \sum \theta_t^2 < \sfrac{1}{\alpha^2}, then every sequence of abnormal returns with the property that f_0(\{ \mathit{ra}_t \}) = 0 also has the property that f_a(\{ \mathit{ra}_t \}) = 0. The easiest way to do this is to look at the behavior of the following integral:

(9)   \begin{align*} \int_\Omega \left( \, \frac{f_a(\{ \mathit{ra}_t \})}{f_0(\{ \mathit{ra}_t \})} \, \right)^2 \cdot dF_0(\{ \mathit{ra}_t \}) \end{align*}

If it’s finite, then every time f_0(\{ \mathit{ra}_t \}) = 0 it must also be the case that f_a(\{ \mathit{ra}_t \}) = 0. Otherwise, you’d be dividing a positive number, f_a(\{ \mathit{ra}_t \})^2, by 0.

So, let’s examine this integral. At its core, this integral is just a weighted average of the number of times that a mispricing should occur under f_a since dF_0 = f_0:

(10)   \begin{align*} \int_\Omega \left( \, \frac{f_a(\{ \mathit{ra}_t \})}{f_0(\{ \mathit{ra}_t \})} \, \right)^2 \cdot dF_0(\{ \mathit{ra}_t \})  &= \int_{\{0,1\}^\infty} \prod_{t=1}^\infty (1 + \alpha^2 \cdot s_t^2 ) \cdot d\Theta(\mathbf{s}) \end{align*}

If we define J as the number of periods in which there is a pricing error,

(11)   \begin{align*} J &= \sum_{t=1}^\infty s_t^2, \end{align*}

then we can further bound this integral as follows since s_t^2 \in \{0,1\}:

(12)   \begin{align*} \int_{\{0,1\}^\infty} \prod_{t=1}^\infty (1 + \alpha^2 \cdot s_t^2 ) \cdot d\Theta(\mathbf{s}) &\leq \sum_{j=1}^\infty (1 + \alpha^2)^j \cdot \mathrm{Pr}[J = j] &\leq \sum_{j=1}^\infty (1 + \alpha^2)^j \cdot \mathrm{Pr}[J > 1]^{j-1} \end{align*}

However, we know that the probability that there is at least 1 period where a pricing error occurs is just the inverse of the expected number of periods in which a pricing error occurs:

(13)   \begin{align*} \frac{1}{\mathrm{Pr}[J > 1]} = \sum_{t=0}^\infty \theta_t^2 \end{align*}

So, we have our desired result. That is, f_0 \gg f_a whenever:

(14)   \begin{align*} 1 + \alpha^2 < \sum_{t=0}^\infty \theta_t^2 \end{align*}

  1. e.g., see the computation for the beta-binomial model. ↩

Filed Under: Uncategorized

Why Not Fourier Methods?

November 22, 2014 by Alex

1. Motivation

There are many ways that you might measure the typical horizon of a stock’s demand shocks. For instance, Fourier methods might at first appear to be a promising approach, but first impressions can be deceiving. Here’s why: spikes in trading volume tend to be asynchronous. For example, you might see a 1-hour burst of trading activity starting at 9:37am, then another starting at 11:03am, and a third at 2:42pm, but you’d never see bursts of trading activity arriving and subsiding every hour like clockwork. Wavelet methods, as described in my earlier post, can handle these kinds of asynchronous shocks. Fourier methods can’t.

2. Spectral Analysis

Suppose there’s a minute-by-minute trading-volume time series that realizes hour-long shocks. To recover the 1-hour horizon from this time series, Fourier analysis tells us to estimate a collection of regressions at frequencies ranging from 1 cycle per month to 1 cycle per minute:

(1)   \begin{align*}   \mathit{vlm}_t - \langle \mathit{vlm}_t\rangle &= \alpha_f \cdot \sin(\pi \cdot f \cdot t) + \beta_f \cdot \cos(\pi \cdot f \cdot t) + \varepsilon_t,   \qquad \text{with } f \in [\sfrac{1}{22},390] \end{align*}

A frequency of f = 390 cycles per day, for example, denotes the 1-minute time horizon since there are 6.5 \, \sfrac{\mathrm{hr}}{\mathrm{day}} \times 60 \, \sfrac{\mathrm{min}}{\mathrm{hr}} = 390 minutes in a trading day. The amount of variation at a particular frequency is then proportional to the power of that frequency, S_f, defined as:

(2)   \begin{align*}   S_f &=  \frac{\alpha_f^2 + \beta_f^2}{2} \end{align*}

If the time series realizes hour-long shocks, then shouldn’t we find a peak in the power of the series at the hourly horizon, f = 6.5? Isn’t this what computing the power of a time series at a particular frequency is designed to capture?

3. Asynchronous Shocks

Yes, but only if the shocks come at regular intervals. For instance, if the first 60 minutes realized a positive shock, minutes 61 through 120 realized a negative shock, minutes 121 through 180 realized a positive shock again, and so on… then Fourier analysis would be the right approach. However, trading-volume shocks have irregular arrival times and random signs. Fourier analysis can’t handle this sort of asynchronous structure.

4. Simulation-Based Example

Let’s consider a short example to solidify this point. We simulate a month-long time series of minute-by-minute trading-volume data with 60-minute shocks by first randomly selecting J = 1000 minutes during which hour-long jumps begin, \{ \tau_1, \tau_2, \tau_3, \cdots, \tau_J\}, and then adding white noise, \varepsilon_t \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \mathrm{N}(0,1):

(3)   \begin{align*}   \mathit{vlm}_t - \langle\mathit{vlm}_t\rangle &= \sigma \cdot \varepsilon_t + \sum_{j=1}^{1000} \lambda \cdot 1_{\{ t \in [\tau_j,\tau_j + 59] \}}   \cdot    \begin{cases}      +1 &\text{w/ prob. } 50{\scriptstyle \%}     \\     -1 &\text{w/ prob. } 50{\scriptstyle \%}   \end{cases} \end{align*}

Each of the jumps has a magnitude of \lambda = 0.05 \times 10^4 \, \sfrac{\mathrm{sh}}{\mathrm{min}} and is equally likely to be positive or negative. The white noise has a standard deviation of \sigma = 0.06 \times 10^4 \, \sfrac{\mathrm{sh}}{\sqrt{\mathrm{min}}}. The resulting series is shown in the left-most panel of the figure below.

plot--wavelet-variance-illustration--17dec2014

By construction, this process only has white noise and 60-minute-long shocks. That’s it. There are no other time scales to worry about. None. If Fourier analysis were the correct tool for identifying horizon-specific trading-volume fluctuations, then you’d expect there to be a spike in the power of the time series at the 60-minute horizon. But, what happens if we look for evidence of this 60-minute timescale by estimating the power spectrum shown in the middle panel of the figure above? Do we see any evidence of a 60-minute shock? No. There is nothing at the 60-minute horizon. Asynchronous shocks of a fixed length don’t show up in the Fourier power spectrum. They do, however, show up in the Wavelet-variance plot as shown in the right-most panel of the figure above where there is a clear spike at the 1-hour horizon.

Filed Under: Uncategorized

A Model of Hard-to-Diagnose Mispricings

October 16, 2014 by Alex

1. Introduction

Important market events often have a variety of interpretations. For example, a recent Financial Times article outlined several different readings Facebook’s “feeble showing… in the weeks since its \mathdollar 16{\scriptstyle \mathrm{bn}} initial public offering”. “Maybe Morgan Stanley, which organized the IPO, got complacent. Maybe Facebook neglected to adapt its platform fully to the world of mobile devices. Maybe, if we are to believe the Los Angeles Times, the company, for all its 900{\scriptstyle \mathrm{m}} users, is ‘losing its cool’.” The article then tossed another hat into the ring. “Those explanations are wrong. There may be a simpler explanation: political risk… Facebook is less a revolution in technology than a revolution in property rights. It is to social life what enclosure was to grazing. Fed-up users might begin to question Facebook’s claim to full ownership of so much valuable personal information that they, the public, have generated.”

Whatever you think the right answer is, one thing is clear: traders can hold the exact same views for entirely different reasons. Moreover, while these views happen to line up for Facebook, they have wildly different implications for how a trader should behave in the rest of the market. For instance, if you think the poor performance was a result of Morgan Stanley’s hubris, then you should change the way you trade their upcoming IPOs. Alternatively, if you think the poor performance was a consequence of Facebook losing its cool, then you should change the way you trade Zynga. Finally, if you agree with the Financial Times reporter and think the poor performance was due to privacy concerns, then you should change the way you trade other companies, like Apple, which hoard users’ personal information.

Motivated by these observations, this post outlines an asset-pricing model where each asset has many plausibly relevant features, and, in order to turn a profit, arbitrageurs must diagnose which of these is relevant using past data.

2. Feature Space

I study a market with N = 4 assets. Let’s begin by looking at how I model each asset’s exposure to Q \gg 4 different features, each representing a different explanation for the asset’s performance. I use the indicator function, x_{n,q}, to capture whether or not asset n has exposure to the qth feature:

(1)   \begin{align*}   x_{n,q} &=   \begin{cases}     1 &\text{if asset $n$ has feature $q$}     \\     0 &\text{else}   \end{cases} \end{align*}

For example, while both National Semiconductor and Sequans Communications are in the semiconductor industry, x_{\text{NatlSemi},\text{SemiCond}} = 1 and x_{\text{Sequans},\text{SemiCond}} = 1, only National Semiconductor was involved in M&A rumors in Q1 2011, so x_{\text{NatlSemi},\text{M\&A}} = 1 but x_{\text{Sequans},\text{M\&A}} = 0. Feature exposures are common knowledge. Everyone knows each value in the (N \times Q)-dimensional matrix \mathbf{X}, so there is no uncertainty about whether or not National Semiconductor belongs to the semiconductor industry. Each asset’s fundamental value stems from its exposure to exactly half of the Q \gg 1 different payout-relevant features.

Fundamental values have a sparse representation in this space of Q features. Only K of the Q possible features actually matter:

(2)   \begin{align*}   Q \gg N \geq K \end{align*}

There are enough observations, N, to estimate the value of the K feature-specific shocks using OLS if you knew ahead of time which features to analyze; however, there are many more possible features, Q, than observations. Without an oracle, OLS is an ill-posed problem in this setting. This sparseness assumption embodies the idea that financial markets are large and diverse, so finding the right trading opportunity is a needle-in-a-haystack type problem.

For analytical convenience, I study the case with N = 4 and K = 2 where 2 of the assets have exposure to 1 of the feature-specific shocks and 2 of the assets have exposure to the other feature-specific shock. For example, if there is a shock to all big-box stores and to all companies based in Ohio, then there are no superstores based in Ohio like Big Lots in the list of N = 4 assets. This is the simplest possible model in which the feature-specific average matters and every asset has exposure to the same number of shocks.

If only 2 of the Q features actually realize shocks and each shock affects a separate subset of 2 firms, then there are:

(3)   \begin{align*} H = Q \times \frac{1}{6} \cdot (Q - 1) < {Q \choose 2} \end{align*}

possible combinations of shocks. There are Q different shocks to choose from for the first shock, and only \sfrac{1}{6}th of the remaining (Q - 1) shocks will not overlap assets with the first shock. I index each combination with h = 1,2,\ldots,H where h_\star denotes the true set of shocked features. Let \mathcal{Q} denote the set of all features and \mathcal{K}_h denote the 2 features associated with index h. Nature selects which of the H combinations of 2 features realizes feature-specific shocks uniformly at random:

(4)   \begin{align*}   \mathrm{Pr}(\mathcal{K}_{h_\star} = \mathcal{K}_h) = \sfrac{1}{H} \end{align*}

prior to the start of trading in period t=1.

3. Asset Structure

We just saw what might impact asset values. Let’s now examine how these features actually affect markets. I study a model where nature selects fundamental values, v_n \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \mathrm{N}(0,\sigma_v^2), prior to the start of trading. And, these fundamental values are a function of 2 components: the particular feature-specific shock affecting each asset together with an idiosyncratic shock:

(5)   \begin{align*}   v_n &= \mathbf{x}_n^{\top}{\boldsymbol \beta} = \sum_{q=1}^Q \beta_q \cdot x_{n,q} + \beta_{0,n}   \qquad \text{with} \qquad   2 = \Vert {\boldsymbol \beta} \Vert_0 = \sum_{q=1}^Q 1_{\{\beta_q \neq 0\}} \end{align*}

where \beta_q denotes the extent to which the qth feature affects fundamental values:

(6)   \begin{align*}   \beta_q \overset{\scriptscriptstyle \mathrm{iid}}{\sim}    \begin{cases}     \mathrm{N}(0, \sigma_{\beta}^2) &\text{if } q \in \mathcal{K}_{h_\star}     \\     0 &\text{else}   \end{cases} \end{align*}

and \beta_{0,n} \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \mathrm{N}(0, \sigma_{\beta}^2) denotes the idiosyncratic shock. I use the 0th subscript to denote the idiosyncratic component of each stock for brevity, but always omit it when writing the (Q \times 1)-dimensional vector of feature-specific shocks, {\boldsymbol \beta}.

Each asset has exposure to only 1 of the feature-specific shocks since it has exposure to a random subset of \sfrac{1}{2} of all features. Thus, its fundamental volatility is given by:

(7)   \begin{align*}   \sigma_v^2 = 2 \cdot \sigma_\beta^2 \end{align*}

since both the feature-specific shocks and each asset’s idiosyncratic shock have variance \sigma_{\beta}^2. The main benefit of forcing each asset to have exposure to exactly 1 of the feature-specific shocks is that, under these conditions, every single one of the assets will have identical unconditional variance.

4. Naifs’ Objective Function

How does information about these feature-specific shocks gradually creep into prices? Naive asset-specific investors. There are 2 such investors studying each of the 4 stocks, one investor per shock. These so-called naifs choose how many shares to hold of a single asset, \theta_{n,t}^{(k)}, in order to maximize their mean-variance utility over end-of-market wealth:

(8)   \begin{align*}   \max_{\theta_{n,t}^{(k)} \in \mathrm{R}} \left\{ \, \mathrm{E}_{n,t}^{(k)}[w_{n,t}^{(k)}] - \frac{\gamma}{2} \cdot \mathrm{Var}_{n,t}^{(k)}[w_{n,t}^{(k)}] \, \right\} \quad \text{with} \quad w_{n,t}^{(k)} = (v_n - p_{n,t}) \cdot \theta_{n,t}^{(k)} \end{align*}

where \gamma > 0 is their risk-aversion parameter. The (k) superscript is necessary because there are 2 kinds of naifs trading each asset: one that has information about the feature-specific shock and one that has information about the idiosyncratic shock.

Naifs trading in each of the 4 assets see a private signal each period, \epsilon_{n,t}^{(k)}, about how a single shock affects their asset:

(9)   \begin{align*} \epsilon_{n,t}^{(k)} \overset{\scriptscriptstyle \mathrm{iid}}{\sim} \mathrm{N}(\beta_{k}, \sigma_{\epsilon}^2) \end{align*}

where k = 0 denotes a signal about stock n‘s idiosyncratic component. For example, a naif studying Target Corp might get a signal about how the company’s fundamental value will rise due to an industry-specific supply-chain management innovation (big-box store feature-specific shock). The other naive asset-specific investor studying Target might then get a signal about how the company’s fundamental value will fall due to the unexpected death of their CEO (Target-specific idiosyncratic shock).

I make 3 key assumptions about how the naifs solve their optimization problem. First, I assume that these investors believe each period that they’ll hold their portfolio until the liquidating dividend at time t=2. Second, I assume that, while naifs see private signals about the size of a feature-specific shock, they do not generalize this information and apply it to other assets with this feature. For example, the naif who realized that Target’s fundamental value will rise due to the supply-chain innovation won’t use this information to reevaluate the correct price of Wal-Mart. Third, these naive investors do not condition on current or past asset prices when forming their expectations. To continue the example, this same investor studying Target won’t analyze the average returns of all big-box stores to get a better sense of how big a value shock the industry-specific supply-chain innovation really was.

All 3 of these assumptions are motivated by bounded rationality. A naive asset-specific investor must use all his concentration just to figure out the implications of his private signals. With no cognitive capacity left to spare, he can’t implement a more complex, dynamic, trading strategy (first assumption), extend his insight to other companies (second assumption), or use prices to form a more sophisticated forecast of the liquidating dividend value (third assumption). These naifs behave similarly to the newswatchers from Hong and Stein (1999) and also neglect correlations in a similar fashion to Eyster and Weizsacker (2010).

5. Baseline Equilibrium

We now have enough structure to characterize a Walrasian equilibrium with private valuations. When no market-wide arbitrageurs are present, the price of each asset is given by:

(10)   \begin{align*} p_{n,1} &= \frac{1}{2} \cdot \left( \frac{\sigma_{\beta}^2}{\sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right) \cdot \left\{ \epsilon_{n,1}^{(0)} + \epsilon_{n,1}^{(k_n)} \right\} \\ p_{n,2} &= \frac{1}{2} \cdot \left( \frac{\sigma_{\beta}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right) \cdot \sum_{t=1}^2 \left\{ \epsilon_{n,t}^{(0)} + \epsilon_{n,t}^{(k_n)} \right\} \end{align*}

where k_n denotes the index of the particular shock affecting the nth asset.

What do these formulas mean for an arbitrageur? Suppose that the big-box store supply-chain innovation occurred and affected assets n=1,2. Naive asset-specific investors neglect the fact that they could use the average returns of assets in the big-box industry to refine their beliefs about the size of the shock. As an arbitrageur, you can profit from this neglected information by deducing the size of the shock from the industry average returns:

(11)   \begin{align*}   \widehat{\beta}_k = \frac{1}{2} \cdot \sum_{n = 1}^2 \Delta \tilde{p}_{n,1} &\sim \mathrm{N}\left( \beta_k, \, 2 \cdot \sigma_{\epsilon}^2 \right) \end{align*}

where \Delta \tilde{p}_{n,1} is given by:

(12)   \begin{align*}  \Delta \tilde{p}_{n,1} = 2 \cdot \left( \frac{\sigma_{\beta}^2 + \sigma_{\epsilon}^2}{\sigma_{\beta}^2}\right) \cdot \Delta p_{n,1} \end{align*}

Simply buy shares of the underpriced big-box stock whose p_{n,1} < \widehat{\beta}_k, and short shares of the overpriced big-box stock whose p_{n,1} > \widehat{\beta}_k.

Of course, in the real world, you wouldn’t have an oracle. You wouldn’t know ahead of time that the big-box store shock had occurred. Instead, you’d have to not only value the big-box store shock but also identify that the shock had occurred in the first place. Let’s now introduce arbitrageurs to the model and study this joint problem.

6. Arbitrageurs’ Objective Function

Arbitrageurs start out with no private information; however, unlike the naifs, they can observe all 4 asset returns in period t=1. They can then use this information to both value and identify feature-specific shocks, submitting market orders to maximize their risk-neutral utility over end-of-game wealth:

(13)   \begin{align*}     \max_{{\boldsymbol \theta}^{(a)} \in \mathrm{R}^4} \left\{ \, \mathrm{E}\left[ \, \sum_{n=1}^4 (v_n - p_{n,2}) \cdot \theta_n^{(a)} \, \middle| \, \widehat{\mathcal{K}} \, \right] \, \right\} \end{align*}

where \widehat{\mathcal{K}} is chosen as the model of the world that minimizes the arbitrageurs’ average prediction error over the assets’ fundamental values given the observed period t=1 prices, \Delta \tilde{\mathbf{p}}_1. In this model, much like that of Hong and Stein (1999), the naifs effectively serve as market makers.

Because there are more features than assets, Q \gg 4, arbitrageurs must engage in model selection a la Barberis, Shleifer, and Vishny (1998) or Hong, Stein, and Yu (2007). Choosing the right model of the world is their main challenge. It’s figuring out whether Facebook’s IPO failed due to Morgan Stanley’s complacency or due to under-appreciated political risks. If arbitrageurs knew which 2 features to analyze ahead of time, \mathcal{K}_{h_\star}, then their problem would be dramatically easier. It would be as if they had an oracle sitting on their shoulder interpreting market events for them. They would then be able to use the usual OLS techniques to form beliefs about the size of the 2 feature-specific shocks:

(14)   \begin{align*}   \widehat{\boldsymbol \beta}[\mathcal{K}_{h_\star}] &= \left( \mathbf{X}[\mathcal{K}_{h_\star}]^{\top}\mathbf{X}[\mathcal{K}_{h_\star}] \right)^{-1}\mathbf{X}[\mathcal{K}_{h_\star}]^{\top}\mathbf{y} \end{align*}

where \mathbf{X}[\mathcal{K}_h] is \mathbf{X} restricted to columns \mathcal{K}_h, and {\boldsymbol \beta}[\mathcal{K}_h] is {\boldsymbol \beta} restricted to rows \mathcal{K}_h. There is no hat over the choice of feature-specific shocks, \mathcal{K}. Only the {\boldsymbol \beta} has a hat over it. Only exact values of the shocks are unknown.

By contrast, the market-wide arbitrageurs in this model have to use some thresholding rule to cull the number of potential features down to a manageable number. They have to both select \widehat{\mathcal{K}} and estimate \widehat{\boldsymbol \beta}[\widehat{\mathcal{K}}]. While this daunting real-time econometrics problem is new to the asset-pricing literature, researchers and traders confront this problem every single day. As Johnstone (2013) argues, this sort of behavior “is very common, even if much of the time it is conducted informally, or perhaps most often, unconsciously. Most empirical data analyses involve, at the exploration stage, some sort of search for large regression coefficients, correlations or variances, with only those that appear ‘large’, or ‘interesting’ being retained for reporting purposes, or in order to guide further analysis.”

7. Bayesian Inference

Let’s now turn our attention to how a fully-rational Bayesian arbitrageur with non-informative priors should select which features to use? Bayes’ rule tells us that the posterior probability of a particular combination of shocks, \mathrm{Pr}( \mathcal{K}_h | \Delta \tilde{\mathbf{p}}_{1} ), is proportional to the likelihood of observing the realized data given the combination, \mathrm{Pr}( \Delta \tilde{\mathbf{p}}_{1} | \mathcal{K}_h ), times the prior probability of Nature choosing the combination of shocks, \mathrm{Pr}( \mathcal{K}_h ):

(15)   \begin{align*}   \mathrm{Pr}( \mathcal{K}_h | \Delta \tilde{\mathbf{p}}_{1} )   \propto    \mathrm{Pr}( \Delta \tilde{\mathbf{p}}_{1} | \mathcal{K}_h ) \times \mathrm{Pr}( \mathcal{K}_h ) \end{align*}

So, this arbitrageur will select the collection of at most 2 features that maximizes the log-likelihood of the observed data:

(16)   \begin{align*}   \widehat{\mathcal{K}}    &=    \arg \max_{\mathcal{K} \subset \mathcal{Q}} \,    \left\{      \,      \log \mathrm{Pr}( \Delta \tilde{\mathbf{p}}_{1} | \mathcal{K})      \ \, \text{s.t.{}} \ \,     |\mathcal{K}| \leq 2     \,    \right\} \end{align*}

since each of the combinations of shocks is equally likely.

Why is there an inequality sign in Equation (16)? That is, why isn’t the constraint |\mathcal{K}| = 2? Because some of the elements in {\boldsymbol \beta}[\mathcal{K}_{h_\star}] will be small. After all, it’s drawn from a Gaussian distribution. A fully-rational Bayesian arbitrageur will want to ignore some of the smaller elements in {\boldsymbol \beta}[\mathcal{K}_{h_\star}] since he faces overfitting risk. For instance, if all Houston-based firms realize a local tax shock that increases their realized returns to the tune of 0.25{\scriptstyle \%} per year, then it will be impossible for a market-wide arbitrageur to spot this shock. Firm-level volatility can exceed 40{\scriptstyle \%} per year. An arbitrageur trying to recover such a weak signal out from amongst so much noise is more likely to overfit the observed data and draw the wrong inference.

Schwartz (1978) showed that fully Bayesian arbitrageurs in this setting should ignore all coefficients smaller than \beta_{\min} = \sigma_{\epsilon} \cdot \sqrt{2 \cdot \log(Q)}. This is the correct threshold for a Gaussian model in the following sense. Suppose that there were no shocks. That is, we had \mathcal{K} = \emptyset and v_n = \beta_{n,0} for each of the 4 assets. Then, we would like our estimator to tell us that there are no shocks with overwhelming probability:

(17)   \begin{align*} \mathrm{Pr}\left[ \max_{q \in \mathcal{Q}} | \langle \Delta \tilde{p}_{n,1} \rangle_q| > \beta_{\min} \right] &\leq \alpha  \end{align*}

where \alpha is an arbitrarily small number that is chosen in advance, and \langle \cdot \rangle_q denotes the average over the set of assets with exposure to feature q. This particular choice of \beta_{\min} comes from the fact that:

(18)   \begin{align*} \lim_{Q \to \infty} \frac{\max_{q \in \mathcal{Q}} \sfrac{| \langle \Delta \tilde{p}_{n,1} \rangle_q|}{\sigma_{\epsilon}}}{\sqrt{2 \cdot \log(Q)}} = 1 \end{align*}

almost surely for a Gaussian model.

8. Equilibrium with Arbitrageurs

Let’s now wrap up by looking at the effect of these market-wide arbitrageurs on equilibrium asset prices. Prices in period t=1 will be the same as before since arbitrageurs have no information in the first period. As a result, they do not trade in period t=1. To solve for time t=2 prices as a function of arbitrageur demand, simply observe that market clearing implies:

(19)   \begin{align*} - \, \theta_n^{(a)} &= \sum_{k=0}^1 \frac{1}{\gamma} \cdot \frac{\mathrm{E}_{n,2}^{(k)}[v_n] - p_{n,2}}{\mathrm{Var}_{n,2}^{(k)}[v_n]} \end{align*}

Some simplification then yields:

(20)   \begin{align*} p_{n,2} &= \frac{1}{2} \cdot \overbrace{\left( \frac{\sigma_{\beta}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right)}^{=B} \cdot \sum_{k=0}^1 \left\{ \epsilon_{n,1}^{(k)} + \epsilon_{n,2}^{(k)} \right\} + \overbrace{\gamma \cdot \sigma_{\beta}^2 \cdot \left( \frac{\sigma_{\beta}^2 + \sigma_{\epsilon}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right)}^{=C} \cdot \theta_n^{(a)} \end{align*}

Thus, we can see that the price of each asset will be weighted average of the signals that the naifs receive and the arbitrageurs’ demand. An asset’s price will be higher if the naifs get more positive asset-specific signals or if arbitrageurs demand more as a result of a more positive feature-specific signal.

Suppose that, after observing period t=1 returns, arbitrageurs believe that features \widehat{\mathcal{K}} have realized a shock. If they are using the Bayesian information criterion, this means that for each k \in \widehat{\mathcal{K}} the estimated \widehat{\beta}_k was larger than \beta_{\min} = \sigma_{\epsilon} \cdot \sqrt{2 \cdot \log(Q)}. It’s possible to write the arbitrageurs’ beliefs about the value of each asset as a linear combination of an asset-specific component, A_n, and the estimated feature-specific shock size, \widehat{\beta}_{k_n}:

(21)   \begin{align*} \mathrm{E}[ v_n | \widehat{\mathcal{K}}, \Delta \tilde{\mathbf{p}}_1] &= A_n + \widehat{\beta}_{k_n} \end{align*}

The asset-specific component, A_n, comes from the fact that, if arbitrageurs believe that an asset’s value is due in part to a feature-specific shock of size \widehat{\beta}_{k_n}, then they can use these beliefs to update their priors about the size of the asset’s idiosyncratic shock. Plugging this linear formula into arbitrageurs’ optimal portfolio holdings yields:

(22)   \begin{align*} \theta_n^{(a)} &= \frac{A_n}{2 \cdot C} + \left(\frac{1- B}{2 \cdot C}\right) \cdot \widehat{\beta}_{k_n} \end{align*}

where the coefficient on \widehat{\beta}_{k_n} can be simplified as follows:

(23)   \begin{align*} \frac{1- B}{2 \cdot C} = \frac{1 - \left( \frac{\sigma_{\beta}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right)}{2 \cdot \gamma \cdot \sigma_{\beta}^2 \cdot \left( \frac{\sigma_{\beta}^2 + \sigma_{\epsilon}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right)} = \frac{\frac{\sigma_{\beta}^2 + \sigma_{\epsilon}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2}}{2 \cdot \gamma \cdot \sigma_{\beta}^2 \cdot \left( \frac{\sigma_{\beta}^2 + \sigma_{\epsilon}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right)} = \frac{1}{2} \cdot \frac{1}{\gamma \cdot \sigma_{\beta}^2} \end{align*}

This result implies that arbitrageurs decrease their demand for an asset with exposure to, say, a negative political-risk shock by 0.50 \times (\gamma \cdot \sigma_{\beta}^2)^{-1} shares for every \mathdollar 1 increase in the size of the shock.

The key implication of this model is that including a shocked feature in the arbitrageurs’ model of the world will yield a price shock of size:

(24)   \begin{align*} \mathrm{E}[p_{n,2}|\widehat{\mathcal{K}} = \mathcal{K}_{h_\star}] - \mathrm{E}[p_{n,2}|\widehat{\mathcal{K}} = \emptyset] &= \frac{1}{2} \cdot \left( \frac{\sigma_{\beta}^2 + \sigma_{\epsilon}^2}{2 \cdot \sigma_{\beta}^2 + \sigma_{\epsilon}^2} \right) \cdot \widehat{\beta}_{k_n} \end{align*}

For instance, if arbitrageurs were using Bayesian updating, then there would be a discontinuous jump in the effect of a political-risk shock on social media companies like Facebook as the size of the shock crossed if the size of the shock crossed the \beta_{\min} threshold.

Filed Under: Uncategorized

« Previous Page
Next Page »

Pages

  • Publications
  • Working Papers
  • Curriculum Vitae
  • Notebook
  • Courses

Copyright © 2025 · eleven40 Pro Theme on Genesis Framework · WordPress · Log in

 

Loading Comments...
 

You must be logged in to post a comment.