Measuring the Predictability of a time series
Fractal Analysis, Statistics December 17th. 2007, 10:11pmIt is reasonable to ask whether a given financial time series is predictable before going about creating a model to predict it. One of the techniques available to do this is the Rescaled Range algorithm, which provides a numerical estimate of the predictability of a time series known as the Hurst Exponent. The reason the Hurst Exponent is an estimate and not a definitive measure is because the algorithm operates under the assumption that the time series is a pure fractal, which of course is not entirely true for most financial time series. This however is of low importance and what really makes the Hurst Exponent appealing is that it provides a means of classifying time series. This is a very useful statistical measure for comparing a model’s performance across different sections of financial data. Here I describe the R/S algorithm and provide an example of a time series whose hurst we calculate.
In terms of data flow, the Rescaled Range algorithm applied to a financial time series is as follows:

The value of the Hurst Exponent is in the range 0 to 1 where 0 means the returns time series is unpredictable and 1 means the returns time series is predictable. It is worth pointing out that the Hurst exponent is calculated for the returns time series, and not the actual time series showing absolute prices. More formally we have

- H < 0.5 indicates an anti-persistent returns time series which means future values will always have a tendency to return to a longer term mean value. The strength of this mean reversion increases as H approaches 0.
- H = 0.5 indicates a random walk and so there is a 50% probability that future return values will go either up or down.
- H > 0.5 indicates the returns time series is trending the strength of which increases as H approaches 1. Series of this type are easier to predict than series falling in the other two categories
Calculating the Hurst Exponent
As outlined in [Rasheed, K. et al], for a returns time series
![]()
We apply the following steps with
![]()
1. Calculate the mean
![]()
2. Calculate the mean adjusted series
![]()
3. Calculate the cumulative deviate series

4. Calculate the range series
![]()
5. Calculate the standard deviation series

6. Calculate the rescaled range series
![]()
7. The rescaled range scales by a power-law as time increases, such that
![]()
8. In order to calculate the hurst exponent we can take the base-n logarithm of the above equation, which gives
![]()
Recall that the form of the above equation is that of a straight line. We can obtain the value of H by calculating the slope of the linear relationship between log(R/S) and log(t). This requires a regression as the line of slope will not always be perfectly straight.
Example
Lets consider the following 1024 bar time series for an equity index. This is a reproduction of results from [Rasheed, K. et al]

In order to calculate the Hurst for this interval, we first need to obtain the returns time series:

Applying the algorithm to the returns time series we find individual points align in a near straight line fashion, the slope of which gives us the Hurst exponent. Note that we chose 1024 points so that we can easily apply base 2 logarithm. A different base can be used instead, but base 2 allows calculation with fewest data points.

Practical Applications of the Hurst Exponent
- The hurst provides a method of classifying time series, which can be beneficial in identifying for instance which stocks have greater short term predictability. We could create a portfolio consisting of stocks with particular hurst values and investigate their profit generating characteristics.
- An application involving automated trading could be something like this: If a particular asset has it’s hurst drop below a threshold value, all investment positions in this asset could be closed in response to a “regime shift”.
- In conjunction with biologically inspired algorithms, hurst classification can help determine which assets to forecast and which ones to ignore. This can be particularly useful in neural nets where models can focus more on time series with higher predictability.
In a future post I will show that Evolutionary Algorithms generate greater profit when applied to time series with hurst greater than 0.5 than time series with hurst below 0.5.

December 18th, 2007 at 9:27 pm
aiquant - did you recreate the results in excel or download the matlab file? I simply downloaded the yahoo finance info, and tried in excel, however ran into a road block when getting into the log calculations… once I got R/S (calculating S in a cumulative fashion like R), I simply took log base-2 (R/S), but know that isn’t right. I wasn’t able to access the files on the link provided in the paper - any guidance you can give me on recreating the results?
December 19th, 2007 at 8:46 am
I think you are making some (perhaps dangerous) implicit assumptions here in order to use the Hurst exponent to classify time-series. For one, you have to assume that the series are stationary (which is not necessarily the case in financial time-series). Also, how do you classify the accuracy of the estimation? Afterall, you’re not so much calculating the Hurst exponent as you are estimating it. Thus, do you propose some kind of confidence interval to reflect the accuracy of the estimation? What about the case of memory effects in the correlation structure: i.e. persistent autocorrelation, for example?
December 19th, 2007 at 9:44 am
John,
1. I dont see why we need to worry about stationarity if our aim is to comparing the hursts of a group of time series. Obviously statistics relating to different sections of the time series will change, but if I want to compare for instance the hurst for the LIBOR index and the hurst for the DAX over the same time interval then it seems to me applying a direct approach isn’t dangerous.
2. Again if we are comparing the hurst of a group of time series then on a relative scale, the method of estimation doesn’t matter - because we are interested in the difference. But on an absolute scale, the method of estimation would matter. I doubt if one method would yield significantly different results to another method.
3. Confidence interval? Maybe for time series with hurst close to 0.5. But above 0.5 I doubt if it gives more meaning to the estimate as the hurst for a 0.7 time series is not so much different to a 0.75 hurst time series. I would be more interested in other non-linear measures, such as lyapunov exponent, entropy etc over the same interval to give more meaning to the estimated hurst. Again I’m not really worried about the acuracy of the method, but rather relative time series values emerging from a near accurate method.
4. A time series with no autocorrelation for lags other than 0 is random (hurst 0.5). If a time series has autocorrelation then I’d expect it the hurst to be greater.
A thorough discussion is given here http://www.bearcave.com/misl/misl_tech/wavelets/hurst/index.html
where he uses an error measure. But for the work I’ve done so far I find I can avoid this for the moment.
December 19th, 2007 at 9:47 am
foquant,
I downloaded the code from Qian’s website and reproduces his results. You might want to experiment with the alternative hurst estimation algorithm available from the mathworks file exchange. I havent tried doing it in excel - i’ll give it a try aand let you know.
December 19th, 2007 at 11:27 am
Fair enough. At least we generated some good discussion!
December 19th, 2007 at 11:31 am
Do you have a copy of Rasheed’s paper you could send me?
December 19th, 2007 at 2:12 pm
[…] to aiQUANT for his post on the Hurst Exponent. A copy of the paper he references is available […]
December 19th, 2007 at 2:13 pm
John - I have a copy posted on my site you can download, www.foquant.com - most recent post
aiQUANT - thanks for the tip on mathworks, I’ll look, and if you get any results on excel, I’d really appreciate taking a look to see how I need to do the log transformation
December 19th, 2007 at 2:33 pm
as a follow up - that link to bearcave shows me where I was messing up, I should be good in completing this in excel, and will look for the matlab file, maybe at Qian’s site or on mathworks. thanks again!
December 20th, 2007 at 1:12 pm
Interesting. I have a quick question, is the constant c or the logarithmic base relevant ?
December 20th, 2007 at 10:06 pm
Charles,
I dont think it has any relevance as it’s purpose is to preserve the relationship of (R/S) with the power law scaling. I haven’t seen any discussion of this in any paper/book, although coming to think about it, there might be some additional meaning if c were too large.
December 30th, 2007 at 9:16 am
Hi there!
Isn’t anyone concerned about the biased estimation the classical R/S coputation yields?
Using 1024 data points on a random gaussian series the R/S algorithm on average estimates the Hurst coefficient to be 0.53 instead of 0.5 (with std 0.06).
This is 6% off!!
(I did only consider sub-periods with length n = 2^x and n>=32)
Anyone got any suggestions? I tried Lo’s Modified R/S but it seems that this approach does not correctly find long-term memory effects.
December 31st, 2007 at 3:46 pm
Hi petpap,
I think this kind of squares with what John suggested about having a confidence interval particularly for time series close to H=0.5. I am doubtful whether this bias exists for time series with higher hurst, but again further experimentation will confirm this. You might want to have a look at this post at foquant’s blog. There is a suggestion in the comments section for a different method of measuring the same thing.