This post has been de-listed
It is no longer included in search results and normal feeds (front page, hot posts, subreddit posts, etc). It remains visible only via the author's post history.
This RI is meant to challenge/problematize three things:
(1) The idea that we shouldn't assume Gaussian returns for financial time series
(2) Using fat-tailed distributions is better
(3) Neoclassical economics doesn't recognize this problem and is mistakenly assuming things are Gaussian
Summary
Based on a simple density plot for SP500 returns comparing them to a Gaussian distribution with the same mean var, the SP500 returns appear to have fatter tails than the normal fit would imply.
Look at the returns for the SP500, a fitted Gaussian distribution, and a rescaled fat-tailed distribution. The SP500 blows up like the fat-tailed distribution while the normal dist almost never blows up (> 3σ events). However, for the SP500, some periods are characterized by high volatility while others are characterized by low volatility. The plot of squared returns confirms this behavior. The SP500 behaves in a distinctly different way than the two IID distributions. The plot of autocorrelation for the squared returns shows that the SP500 has large and persistent autocorrelation in its volatility.
I provide a simulated ARCH(1) process as a very simple example of a process with autocorrelated volatility. The ARCH(1) plot looks more like the SP500 plot because it has periods characterized by low and high volatility. Also, its unconditional distribution has fatter-than-normal tails. At the same time, innovations in the ARCH(1) model are simply Gaussian with time-varying volatility => N(0,σ_t2 ).
I fit an ARCH(2) model explain the SP500's Squared Residuals (demeaned returns). The ARCH(2) model predictions on the SP500 data do a much better job of explaining volatility in the SP500's returns. A sample process from the fitted ARCH(2) model also unconditionally exhibits fat tails like the SP500. And, a plot of a sample of error terms squared from the fitted ARCH(2) looks a lot like that for the SP500.
In total, the ARCH model (Engle, 1982), which still implies Gaussian innovations in returns, can generate black swan style events without relying on fat-tailed distributions for individual innovations. Also, it explains other characteristics of volatility in financial time series like autocorrelation.
tl;dr: The key point here is that saying stuff is "fat-tailed" isn't enough to disprove the idea that returns on financial assets are Gaussian nor is it particularly new or useful. We can have fat-tailed processes arise even when the process evolves according to a Gaussian distribution (albeit with time-varying variance). Specifically, we can have a model where our innovations are given by e_t = σ_t z_t where z_t is IID N(0,1) and σ_t is time-varying volatility. This model produces a process with fat-tails even though individual increments - returns - are normally distributed. We get fat-tails because the volatility σ_t evolves over time; at the same time, we can also get fat-tails from z_t being not gaussian, even if σ_t were constant. Hence, there are two potential sources of fat tails. In order to identify whether actual, individual financial returns are fat-tailed (whether z_t is normal or fat-tailed), we need to have an effective model for the evolution of volatility over time (this is σ_t) because time-varying volatility could also be responsible for fat-tails in the process. Once we've explained the portion of kurtosis in our returns (e_t) that is due to time-varying volatility (σ_t), we can then think about whether the rest of the unexplained kurtosis of our volatility model is due to fat-tailed innovations (z_t being non-Gaussian). However, this is a non-trivial task, and work is still being done on this.
Definitions
Fat Tails: The tails of the distribution refer to the far left and right of its probability density function. When these are "fat," as in large, the likelihood of seeing extreme events is higher. Here's a picture of fat tails I found on the internet.
Kurtosis: This is equal to E[ ((X-μ)/σ)^4 ]
. It is a common measure of how fat the tails are for a distribution. The kurtosis for a normal distribution is 3, so people usually report excess kurtosis as (Kurt(X) - 3)
.
Stochastic Process: A bunch of random variables with an index. For instance, the price of a stock could be a stochastic process with the index being time. For each time t in [0, infty), we have P_t as some random variable. Note that we can have a stochastic process like {X_t = (IID N(0,t))}
which is just a series of normal distributions that increase in variance; the process has undefined variance even though each observation has finite variance and is gaussian. Additionally, we can have a stochastic process where X_{t 2} - X_{t 1}
and X_{t 1} - X_{t}
are Gaussian but X_{t 2} - X_{t}
is not.
Returns: I use log(price_{t}) - log(price_{t-1})
to generate returns for time t. All mentions of returns below are "log" returns.
Volatility: The standard deviation in log returns.
Data
I get data on the level of the SP500 from 2001-01 to 2019-12 from CRSP (link for subscribers). I construct returns by taking the log difference in the level.
RI
This is written in the same order as the bulleted summary above.
------------------------------------[ Figure 1: Density of Returns ]------------------------------------
Figure 1 contains a histogram and kernel density estimates for the distribution of daily SP500 returns. Additionally, I drew and plotted 1 million samples from a normal distribution N(μ, σ2 ) where μ = E(returns_{SP500})
and σ = StDev(returns_{SP500})
. I call this the fitted normal distribution because its parameters are fit on the returns in the SP500 sample. For visibility, the y-axis is in log_10.
We can immediately see that there are a whole bunch of returns outside the "window" created by the fitted normal distribution. These are the fat tails. This picture basically matches the picture of fat-tails in the definitions section above. You can also just interpret the kernel density estimate as an estimate of the empirical PDF. Near the extremes, the density for the SP500 is above the normal distribution density, so we are more likely to see extreme events than a fitted normal distribution would imply. This table gives descriptive statistics for the plotted data.
Now, here's where I feel like people usually bringing up fat-tails cease to read further. So far, all I've shown you is that the SP500 returns have fat tails. Does this mean we need to assume that returns in the SP500 are non-Gaussian? Does this mean that we should model returns using some distribution D with fat tails? Does this foretell the end of the neoclassical hegemony?
The answer is no. The error comes from thinking about these questions from a random variable standpoint instead of thinking of it as a stochastic process. The fact that the density plot of all returns looks fat-tailed doesn't really tell us anything about individual returns; I give an example in the definitions section where we can have normal returns but undefined variance for our series of returns -- let X_t ~ N(0,t) so variance goes to infinity as time goes to infinity. Furthermore, even if we pick a distribution D with fat tails, we can't know whether its appropriate because we don't know how the distribution of SP500 returns evolves over time. We might fit some fat-tailed distribution based on some history of data and might never work at modeling risk.
I believe these two concerns are substantial. They're basically the crux of why people shouting "fat-tails" are unhelpful and not adding to the discussion. With Figures 2 and 3, I'm going to show you why these people are unhelpful. After that, I'm going to discuss a simple model called ARCH to show you why they're not adding to the discussion.
------------------------------------[ Figure 2: Returns over Time ]------------------------------------
In Figure 2, I plot the returns for the SP500, the fitted normal distribution, and a fat-tailed distribution. The fitted normal is the same as before. The fat-tailed distribution is based on samples from a Weibull(0.75) distribution which I multiply by 2*(Bernoulli(0.5)-0.5) and rescale to the same mean var as the SP500 returns. Multiplying by that the Bernoulli random variable makes each sample get multiplied by {-1,1} each with prob 50%. I picked the Weibull distribution as an arbitrary choice of a fat-tailed distribution, and I just wanted to make it symmetrical so it more closely resembles the data. Finally, the rescaling just makes things more comparable/legible, since it allows me to keep the y-axis limits the same between the three subplots. For the two drawn distributions, I take only 5000 samples since there's about that many observations for the SP500 returns.
We can see from the plots that the latter two sampled distributions (both of which are IID) look very different from the SP500 returns. We can see that during certain periods like the financial crisis, returns were abnormally high/low. At the same time, in other periods, returns remained within the 3σ band which covers 99.7% of observations for a normal distribution. For the normal distribution, since it doesn't have fat-tailed, most returns appear to be covered by the 3σ. However, unlike the SP500 returns, there are not any black swan events like the financial crisis. On the other hand, for the fat-tailed distribution, there are financial crisis style events way more often. In every 1000 observation subset (4 years of trading days), there are more than ten instances of returns exceeding the 3σ bound. But, this distribution still doesn't really look like the SP500 return distribution.
What separates the SP500 returns from the others is that there are subintervals where volatility is high and other subintervals where volatility is low. This doesn't happen in the other two distributions. For those two, volatility appears to be about constant over time. This is because they're IID draws. In the next figure, we will look at volatility more directly by looking at squared returns.
------------------------------------[ Figure 3: Squared Returns over Time ]------------------------------------
The way to think about the plots of return2 is to imagine you're looking at the level for a time series (EG: the price of a stock). You can visually identify periods when the series is high and when it is low; you can also check if the series appears to be IID or if there's any clear patterns. Additionally, if the series was the price of a stock, then looking at the movement of the plotted series would tell us information about returns. In this case, the series is the squared returns. Looking at the average of this series will tell us the average variance across the time period -- technically, we should demean the returns first, but the mean in this data is like 60 times less than the stdev so we can basically ignore this issue. The reason we can identify the variance from the average in this series is because
[; VAR(X_1 ... X_T)/N \approx \sum_t E[X_t^2]/n ;]
for independent {X_t} with small means. It is reasonable to assume that returns are independent based on EMH and the random walk hypothesis. Furthermore, note that we can split up the sum of the second moment into different pieces. For instance, with a continuous time process, we also have
[; \int_0^T \sigma^2_s ds = \int_0^{T_1} \sigma^2_s ds \int_{T_1}^{T_2} \sigma^2_s ds ;]
The point of this equation is to emphasize that we can look at the average squared returns over specific subintervals to figure out the average variance (square of the volatility process [; \sigma_t ;]) over that interval. If volatility σ_t is changing over time, we can simply look at finer subintervals to better identify its movements. Just looking at X_t^2
is basically the finest we can go without changing the sampling interval (this is daily data, so finer would require intradaily data); plus, we don't lose any information by doing this.
Now, look at Figure 3 for squared returns. For the normal distribution subplot, the squared returns are basically flat. Also, most of them are below 9 σ2, which is due to the fact that the probability a normal rv with σ2 variance will be in [-3σ, 3σ] with 99.7% probability -- when we square this normal rv, we instead have 9 σ2 as the new bound. Additionally, look at random subintervals of this subplot. They all have almost exactly the same average. This is because the normal distribution draws are completely independent, and this "independence" includes the variance. In other words, since I drew from some N(μ, σ2 ), all the observations in this series have the same constant variance and the average variance over different subintervals are all the same.
Next, look at the subplot for the SP500. The 9 σ2 bound does not necessarily hold because the returns may not be Gaussian. In this case, 98.28% of squared returns are bounded by 9 σ2. Furthermore, we can see that volatility is high in some periods and low in others. During 2008-2010, the squared returns go past 25 σ2 (the 5 σ bound). Does using a fat-tailed distribution fix this?
Well, let's take a look at the third subplot for the Weibull*Bernoulli distribution. This has fat tails, and it's quite clear from how often the squared returns go way past the 9 σ2 bound. However, these returns explode very consistently! This is because the underlying distribution for the process is still IID, so we end up seeing explosions on a frequent and consistent basis. Even if we lowered the kurtosis of the distribution by adjusting its parameters, we would not get a picture like the SP500 subplot. The reason is that the SP500 subplot has clumps of high volatility -- explosions bunch up in certain subintervals -- while there are other periods characterized by low volatility.
This is autocorrelation in the volatility which we can see in the following figure.
------------------------------------[ Figure 4: Squared Returns Autocorrelation ]------------------------------------
This figure is just an autocorrelation plot using the previous data.
We can see that the two IID distributions have no or barely significant levels of autocorrelation on some lags. On the other hand, the SP500 squared returns have persistent autocorrelation that lasts for almost half a year - 125 trading days. The autocorrelation is also highly significant.
This basically concludes the part of the RI explaining why shouting "fat tails" is unhelpful. Using an IID distribution with fat-tails does not capture the behavior of returns. Specifically, it might be good at explaining the fourth moment, but it does little to explain autocorrelation in the volatility of returns.
Now I'm going to talk about why bringing up fat tails doesn't add anything to the modern discussion. To summarize, it's basically because time-varying volatility creates fat-tails in the process itself even if individual return innovations are normally distributed. Hence, fat-tails in the process as a whole doesn't tell us whether or not our returns are non-Gaussian.
------------------------------------[ Figure 5: ARCH(1) Example ]------------------------------------
ARCH is a model that places a functional form on the variance of the errors for some stochastic process. Suppose we have a random walk with drift:
y_t = y_{t-1} mu e_t
For simplicity, I'll only discuss the ARCH(1) model assumes that the residual term follows the process;
e_t = σ_t z_t
z_t ~ N(0,1) IID
σ_t = alpha_0 alpha_1 e_{t-1}
alpha_0 > 0, alpha_1 >= 0
In other words, we have e_t ~ N(0, σ_t^2)
. So, innovations in the residual (returns if y_t
is log price) are normally distributed with volatility σ_t. The volatility is correlated with e_{t-1}
. So, if volatility was high yesterday, it will be high today. Higher-order ARCH processes just have more lags for e in the σ_t function. Also, it's called ARCH, because the heteroskedasticity (change in volatility) in conditional on past heteroskedasticity in an autoregressive way.
ARCH processes have useful properties. For ARCH(1), we can see that (derivation)
[; Var(e_t) = \frac{\alpha_0}{1-\alpha_1} ;]
[; Kurt(e_t) = \frac{3(1-\alpha_1^2)}{1-3\alpha_1^2} ;]
Notice that the kurtosis is always greater than 3, so this is fatter tailed than a normal distribution. Additionally, we can actually have undefined kurtosis (really thicc tails) while still having a finite variance process if alpha_1 > 3
.
It's REALLY important to note that the above is for the unconditional moments. At time t, we will know e_{t}
, so the variance conditional on time t information for e_{t 1}
is
[; Var(e_{t 1} \, | \, \mathcal{F}_{t} ) = E( \sigma_{t 1}^2 | \, \mathcal{F}_t ) = \alpha_0 \alpha_1 \cdot e_t ;]
which is simply constant. Basically, the return we get on a stock we're holding will be normally distributed with a variance that we can compute using past observations. So innovations conditional on present information are normally distributed, but the process itself is not. That's why it has fat-tails even though returns are Gaussian.
In Figure 5, I draw 5k samples from an ARCH(1) process. The residuals could represent demeaned returns for a stock. We can see that this process looks much more like the SP500 than the previous fixed distribution processes. The squared residuals also show clumping in volatility. There are some high volatility periods and some stretches of very low volatility. The excess kurtosis for this draw was 7.327, while the excess kurtosis for the SP500 was 9.325. So, the tails are looking thick too. We can see this more clearly in the following figure.
------------------------------------[ Figure 6: ARCH(1) Density ]------------------------------------
In this figure, I compare the ARCH(1) sample with a normal distribution scaled to have the same in-sample variance. Like with the SP500 returns, we can see the excess kurtosis.
------------------------------------[ Figure 7: ARCH(1) Autocorrelation ]------------------------------------
This figure has the autocorrelation for the ARCH(1) process. In this case, the ARCH(1) doesn't do that great of a job producing results similar to that of the SP500. A better model would be GARCH, however I don't want to overcomplicate the math in this post.
------------------------------------[ Figure 8: ARCH(1) Normalized Innovations ]------------------------------------
This figure shows that we can construct normalized innovations from an ARCH process. That is, if we have information at time t about et and the parameters for the ARCH process, then we can find σ{t 1}. So, dividing the next period returns by σ_{t 1}, which we now know, allows us to normalize the returns to be N(0,1). This figure is just a plot of that.
Basically, conditional on the present information, the next period returns are just Gaussian with a known or estimable variance. Once again, really important, we get (unconditional) fat tails in the process but (conditional) Gaussian distributions for the one-period innovations. Therefore, it's not necessarily true that fat tails in the data imply that returns are not Gaussian. We can of course reject IID returns, because this model assumes tomorrow's volatility depends on today's volatility. But, if you're deciding to buy options or stocks, you could still assume Gaussian returns with a volatility conditioned on present information.
But, are these volatility predictions good? Well, ARCH(1) is the simplest possible model. I'll fit an ARCH(2) which isn't much better on the SP500 data to show you what the conditional predictions look like. This is a >30 year old model but it's still okay.
------------------------------------[ Figure 9: ARCH(2) Regression Results ]------------------------------------
------------------------------------[ Figure 10: ARCH(2) Predictions ]------------------------------------
I generate a variable called e_hat_sq
by demeaning the returns and then squaring the result. The ARCH model then does AR(2) on this model; this is reported in Figure 9. The result is a prediction function for the variance in the next period.
I plot the fitted ARCH predictions in Figure 10. The conditional model looks okay. The spikes in 08 are not as big as they should be. However, again, I'm using an unsophisticated model with only 2 lags for simplicity, so this is pretty good.
------------------------------------[ Figure 11: ARCH(2) Sample Density ]------------------------------------
In the above figure, I take a sample of 5k observations from an ARCH(2) process with the same coefficients as the fitted ARCH(2) from before. I then plot the density of it along with the SP500 and its fitted normal. We can see that the ARCH(2) generates fat tails in between the normal and the SP500 distributions. Using more lags or a better model may induce a better fit.
------------------------------------[ Figure 12: ARCH(2) Sample Squared Residuals ]------------------------------------
Finally, I plot the squared residuals in Figure 12 for the ARCH(2) sample from Figure 11. Note that the sample process is an ARCH(2) where the parameters are calibrated to SP500; this is not an ARCH(2) predicting on SP500. The way to interpret this is as a plot showing what the SP500 might be in a parallel universe. The point is to see if the DGP generates movements and patterns in volatility that are similar to those of the SP500. Basically, this model looks much better than the two IID processes. We also have some clustering of volatility and stretches of low volatility. Using more lags or a better model may induce a more realistic looking process. But, given how simple this is, it's pretty good
Nowadays, people use all sorts of complicated GARCH models. There's also been a recent trend looking into semivariance, which is just defined as variance computed on positive returns and negative returns separately. Stuff like this can be used to improve volatility forecasting and produce stochastic processes with distributions that better fit the data. However, lots of models are still assuming Gaussian innovations.
So, I've shown, kurtosis can be explained in two ways:
e_t = σ_t z_t
E(e_t^4) = E(σ_t^4) * E(z_t^4)
Either we create kurtosis through variation in σ_t. Or we create kurtosis by picking a fatter-tailed distribution for z_t. This is because these two terms are usually assumed to be independent. People prefer to explain variation through σ_t because we can see time-varying volatility in the data. The other term z_t, which is fixed in distribution and independent, is just not as interesting. Moreover, we can get a lot of mileage from studying σ_t, because it can also explain stuff that z_t does and more.
So, regarding fat tails... everyone has known about them for quite a long time, probably for far more than 30 years (The Black Swan came out in 2007). It seems intellectual to bring them up when people say they're assuming Gaussian returns, but it's mostly just idiotic because you can have both fat-tails in a process and Gaussian innovations. Furthermore, you can define an ARCH/GARCH/whatever model on whatever time scale you want, and then update your portfolio on that time scale with the assumption of Gaussian white noise z_t. This would let your trading strategy account for fat tails through the volatility model without making it too complicated since you get to keep normality for single-period returns.
Finally, to respond to the three things at the top:
(1) Gaussian returns can be okay, we can still get fat-tailed processes
(2) However, fat-tailed processes on their own (like fat-tailed z_t, constant σ_t) are not good at explaining risk
(3) Neoclassical economics does recognize the problem, and Engle even won a Nobel prize for his work on this
Subreddit
Post Details
- Posted
- 4 years ago
- Reddit URL
- View post on reddit.com
- External URL
- reddit.com/r/badeconomic...