notices - See details
Notices
Enterprising Investor Default Hero Image
30 January 2013 Enterprising Investor Blog

Rescaled Range Analysis: A Method for Detecting Persistence, Randomness, or Mean Reversion in Financial Markets

Enterprising Investor Blogs logo thumbnail

Editor's note: Thanks to the diligence of Armin Grueneich this post has been amended to reflect the addition of step #5, below, in the calculation of the rescaled range.

Rescaled range analysis is a statistical technique designed to assess the nature and magnitude of variability in data over time. In investing rescaled range analysis has been used to detect and evaluate the amount of persistence, randomness, or mean reversion in financial markets time series data. Insight of this kind into financial data naturally suggests investment strategies.

Originally invented for the field of hydrology by Harold Edwin Hurst, the technique was developed to predict Nile River flooding in advance of the construction of the Aswan High Dam. The dam needed to fulfill multiple and divergent purposes, including serving as both a store of water to protect against drought for farmers down river, and as flood protection for those same farmers during typical annual flooding. Rainfall levels in Central Africa were seemingly random each year, yet the Nile River flows seemed to show autocorrelation. That is, rainfall in one time period seemed to influence rainfall in subsequent periods. Hurst needed to be able to see if there was a hidden long-term trend — statistically known as a long-memory process — in the Nile River data that might guide him in building a better dam for Egypt.

Does this sound familiar? A time series of varying levels that is seemingly random but in which it is suspected that there might also be a long-term, hidden trend. Not surprisingly rescaled range analysis had its moment in the financial analysis sun in the mid-1990s, when chaos theory, as applied to financial markets was a hot topic. Chaos theory is a branch of science that studies the interconnectedness of events that otherwise, on the surface, seem random.

Closely associated with rescaled range analysis is the Hurst exponent, indicated by H, also known as the “index of dependence” or the “index of long-range dependence.” A Hurst exponent ranges between 0 and 1, and measures three types of trends in a time series: persistence, randomness, or mean reversion.

  • If a time series is persistent with H ≥ 0.5, then a future data point is likely to be like a data point preceding it. So an equity with H of 0.77 that has been up for the past week is more likely to be up next week as well, because its Hurst exponent is greater than 0.5.
  • If the Hurst exponent of a time series is H < 0.5, then it is likely to reverse trend over the time frame considered. Thus, an equity with H = 0.26 that was up last month is more likely than chance to be down next month.
  • Time series that have Hurst exponents near to 0.5 display a random (i.e., a stochastic) process, in which knowing one data point does not provide insight into predicting future data points in the series.

So what are the steps to conducting a rescaled range analysis and to estimating the Hurst exponent? As an instructional example, please reference the spreadsheet of the rescaled range analysis of daily return data for the S&P 500 Index from 3 January 1950 through 15 November 2012.

Rescaled Range Analysis Steps

1. Choose your time series. Do you want to analyze fluctuations in the yield curve? West Texas sweet crude? Apple (AAPL) or Google (GOOG) stock? Or the Dow Jones Industrial Average (DJIA)? Here I am going to select the S&P 500’s daily returns.

2. Choose your ranges. Rescaled range analysis depends on multiple lengths of time (i.e., ranges) to be analyzed and chosen arbitrarily by the analyst. In the example of the S&P 500, there are 15,821 daily returns. So I chose the following ranges, all powers of two:

a. Size of range is the entire data series = one range of 15,821 daily returns.

b. Size of each range is 1/2 of the entire data series = 15,821 ÷ 2 = two ranges of either 7,911 or 7,910 daily returns.

c. Size of each range is 1/4 of the entire data series = 15,821 ÷ 4 = four ranges of either 3,956 or 3,955 daily returns.

d. Size of each range is 1/8 of the entire data series = 15,821 ÷ 8 = eight ranges of either 1,978 or 1,977.

e. Size of each range is 1/16 of the entire data series = 15,821 ÷ 16 = sixteen ranges of either 989 or 988 daily returns.

f. Size of each range is 1/32 of the entire data series = 15,821 ÷ 32 = thirty-two ranges of either 495 or 494 daily returns.

3. Calculate the mean for each range. For each of the ranges, calculate a mean per the formula below. Note: In the above example of the S&P 500 there are 1 + 2 + 4 + 8 + 16 + 32 = 63 means calculated, one for each range.

Calculation for the mean for the range

Where:

s = series (Series 1 is whole data series for S&P 500, or 15,821 daily returns; series 5 is 16 ranges of either 989 or 988 daily returns.)

n = the size of the range for which you are calculating the mean

X = the value of one element in the range

4. Create a series of deviations for each range. Create another time series of deviations using the mean for each range. Note: In the case of the S&P 500, there will be six new “deviations from the mean” ranges, given the six categories of ranges chosen in Step 2 above (i.e. ranges a, b, c, d, e, and f).

Calculation for deviation

Where:

Y = the new time series adjusted for deviations from the mean

X = the value of one element in the range

m = the mean for the range calculated in Step 3 above

5.Create a series which is the running total of the deviations from the mean.Now that you have a series of deviations from the mean for each range, you need to calculate a running total for each range’s deviations from the mean.

Create-a-series-which-is-the-running-total-of-the-deviations-from-the-mean

Where:

y = the running total of the deviations from the mean for each series

Y = the time series adjusted for deviations from the mean

6. Calculate the widest difference in the series of deviations. Find both the maximum and minimum values in the series of deviations for each range. Take the difference between the maximum and minimum in order to calculate the widest difference. Note: For the S&P 500 example, there are 63 calculations, one for each of the 63 ranges.

Calculation for the widest difference

Where:

R = the widest spread in each range

Y = the value of one element in the “deviations from the mean” range

7. Calculate the standard deviation for each range. Note: There will be 63 standard deviations, one for each range.

Standard deviation for the range

8. Calculate the rescaled range for each range in the time series. This step creates a new measure for each range in the time series that shows how wide is the range measured in standard deviations.

Rescaled range

Where:

R/S = the rescaled range for each range in the time series

R = the range created in step 5 above

σ = the standard deviation for the range under consideration

9. Average the rescaled range values for each region to summarize each range. For each region, average the rescaled range (R/S) values. Using the S&P 500 data as an example, we have the following R/S values for each of the four ranges of ~3,955 in size:

“Range 1/4”, part 1, R/S: 83.04

“Range 1/4”, part 2, R/S: 63.51

“Range 1/4”, part 3, R/S: 84.16

“Range 1/4”, part 4, R/S: 88.09

Average of the four R/S values for “Range 1/4” = (83.04 + 63.51 + 84.16 + 88.09) ÷ 4 = 79.70

For the S&P 500 we have the following values for the rescaled ranges:

SP-500-rescaled-ranges

Now that you have rescaled each range in the time series, you can calculate the Hurst exponent, H, that will summarize in one number the degree of persistence, randomness, or mean reversion in your time series.

Calculating the Hurst Exponent Steps

1. Calculate the logarithmic values for the size of each region and for each region’s rescaled range. For example, consider the above S&P 500 data:

logarithmic-values-for-the-size-of-each-region-and-for-each-region-and-for-each-regions-rescaled-range

2. Plot the logarithm of the size (x axis) of each series versus the logarithm of the rescaled range (y axis). This results in a graph that looks something like this one for the S&P 500:


Rescaled Range Analysis of the S&P 500 (3 January 1950 to 15 November 2012)

Rescaled-Range-Analysis-of-the-SP-500

3. Calculate the slope of the data to find the Hurst exponent. H is the slope of the plot of each range’s log (R/S) versus each range’s log (size). For the S&P 500 for 3 January 1950 to 15 November, H is 0.49. Recall that this means that the S&P 500 demonstrates randomness.

Knowing the H, suggests some hypothetical trading strategies. For example, stocks with H ≥ 0.5 — that is, persistence — and positive price appreciation would be attractive to a growth manager wanting future capital appreciation. Whereas, stocks with H 0.5 with prices declining for some time suggest an eventual price trend reversal to a value investor.

If you liked this post, don't forget to subscribe to the Enterprising Investor.


All posts are the opinion of the author. As such, they should not be construed as investment advice, nor do the opinions expressed necessarily reflect the views of CFA Institute or the author's employer.

Photo credit: ©iStockphoto.com/ugurhan

75 Comments

JV
Jason Voss, CFA (not verified)
31st December 2015 | 11:28am

Wow! You are so thorough! Well done!

Z
roozi (not verified)
10th April 2016 | 8:45pm

Hello Jason,

Loved your work, such a clear description of the R/S analysis is rare in the literature.
I've implemented this method to data that is sorted by depth rather than time (in geology time and depth are analogues) but my H seems to be too large by a factor of ten, i.e. while I'm expecting 0.73 my slope is 7.3.
I understand that this method looks at the range of the data, and shouldn't really matter what units your range is....
I was wondering if you have any Ideas?

JV
Jason Voss, CFA (not verified)
11th April 2016 | 8:07am

Hello Roozbeh,

Thank you for your kind words...I tried very hard to make the instructions clear. I am sorry that they have failed you in this instance : )

As you know, since you have built out your own R/S model, the calculation is very involved. So it is very difficult for me to evaluate what might be wrong with your calculation based on the limited amount of information you provided. My advice would be to download the spreadsheet that is associated with this article and to work through our calculation as compared with mine. I have a hunch that your difficulty may be in the very final step where slope is calculated based on the number of ranges you have selected.

Yours, in service,

Jason

R
Robert (not verified)
30th April 2016 | 1:04am

Hi, Jason thanks for the work on RRA. It is very simplified unlike other sources I came across. Just one question, Is it possible to test a hypothesis based on your data or construct confidence level?

JV
Jason Voss, CFA (not verified)
2nd May 2016 | 10:10am

Hi Robert,

I am glad that the explanation of how to do rescaled range analysis was easy to understand for you. Yea!

Thank you for your question. I am no statistician, however, I do know that both hypothesis testing and confidence intervals rely on knowing the shape of the distribution of the data. After all, these techniques work because we know the mathematics that describe a distribution. We then make comparisons to these distributions, assuming they are the benchmark. So not knowing the shape of the distributions makes these techniques impossible.

The most common distribution is of course the standard normal distribution, which supposedly describes random processes. In rescaled range analysis only a Hurst exponent of 0.5 describes a random sample of data. Anything other than that is considered non-random. So the usual hypothesis testing and confidence intervals are not going to apply except in that special circumstance. Knowing the shape of the distributions of non-0.50 Hurst exponent samples is too tough for me to answer.

Does anyone in the audience have any information on distribution shapes for non-0.50 Hurst exponent data?

Yours, in service,

Jason

R
Robert (not verified)
2nd May 2016 | 3:02pm

You're right Jason. No asymptotic distribution has been developed for RRA. Therefore it makes it difficult to conduct a hypothesis test. Although Weron (2002) has contructed confidence intervals using Monte-Carlo simulation.

YC
yandy chang (not verified)
3rd May 2016 | 1:18am

I have been looking for an explanation like this for a couple of week now, thank you...
I have 2 Questions:
1-) Step 5: Do we use it to calculate the Standard deviation? because I got the standard deviation from a library, so I presume I could skip this step.
2-) I tried clicking the Excel sheet, and it took me to a Page not found message, is there a place i can find the spread sheet?

J
Jorge (not verified)
3rd April 2019 | 3:04am

Your conclusion is wrong. That can not be a greater or les than 0.50; it has to be greater than 0.5 to say there exist persistence, less than 0.5 to say the reverse and equal to 0.5 to say the series is random.

D
Diego (not verified)
22nd November 2019 | 6:45pm

Sorry Jorge, but your statement is really wrong.

A Hurst exponent less than 0.5 means anti-persistence, which implies in negative (opposite) correlation of future values with respect to the previous (recent past) ones, thus sinalizes TREND REVERSION.

Jason explained it right!

Your post may cause confusion on the readers...

I just want to help!