R/s analysis (or Rescaled Range analysis) was originally devised by Harold Edwin Hurst in its studies of the Nile discharge in 1951. It is a rather simple method, easily implemented in a program and that provides a direct estimation of the Hurst Exponent which is a precious indicator of the state of randomness of a time-series. It is especially interesting in revealing the existence of long-term dependence, which prevents, when it exists, the time-series to be reasonably modelised by a random walk.
I wish to expose here the minimal information for understanding the method, I will also provide a few references for those who wish to deepen their understanding of the matter.
Given a time-series with n elements , the R/s statistic is defined as:
is the arithmetic mean
And is the standard deviation from the mean.
With this R/s value, Hurst found a generalization of a result found by Einstein in 1905 (Investigations on the Theory of the Brownian Movement ) as equation (11) (in the cited paper) in the following formula:
Where H is the Hurst exponent.
From there, it is clear that we can obtain an estimation of the Hurst exponent pretty easily from an R/s analysis.
Several sites and articles propose a detailed methodology to implement R/s Analysis, I primarily use the approach exposed in a paper by O. Rose from February 1996:
Estimation of the Hurst Parameter of Long-Range Dependent Time Series
With a slight difference, however, I shall only plot one value of R/s for each value of d, in a manner similar to the following site: Estimating the Hurst Exponent
Anyway, I feel both articles are not very clear in their notations, and I therefore will detail the analysis I wish to implement.
I- RESCALED RANGE ANALYSIS
Considering the time series above
We divide the time series into (*) non-overlapping blocks of length
And we fix:
Next we get a new time series
From there, we get the following rescaled range:
Taking the mean over , we then get :
Considering equation (1):
We can plot vs for u varying, is then the slope of the regression line which we simply get from the linear least squares method.
(*): and are chosen adequately so that is always an integer.
I implemented this method within an indicator for Metatrader 4 in order to compute a Fractalised Simple Moving Average for FOREX fluctuations. The implementation is not very interesting, partly because the computation time on this platform are not very good, I was therefore constraint to use the R/s method on a very limited number of data.
Anyway, the implementation can be seen on my other blog: Rescaled Range Analysis