[R-sig-dyn-mod] How to estimate the Hurst exponent in a stable and effective way?

Thomas Petzoldt Thomas.Petzoldt at TU-Dresden.de
Thu Jun 24 23:53:54 CEST 2010


Hello Mogei Wang,

technically speaking your usage seems mostly correct, though you may 
consider to look the full output of the methods not only H.

Another technical hint: R is not C, so don't use trailing ";"


Now to the contents: as you observe yourself, different methods yield 
different results, and sometimes even values outside (0,1). This can be 
puzzling, but is not uncommon because all methods are approximations 
which rely on certain assumptions.

There are lots of publications around, here are a few sources to start with:

1) A recent paper about the pros and cons, well readable and with 
illustrative figures:

Serinaldi, F. (2010) Use and misuse of some Hurst parameter estimators 
applied to stationary and non-stationary financial time series. Physica 
A 398, 2770--2781.


2) A website with an "experience report" about Hurst exponents and some 
additional links: http://www.bearcave.com/misl/misl_tech/wavelets/hurst/

3) Specifically for periodic time series the following may help you 
(though I assume that periodicity of the test set was not really 
intentional):

Montinari, A. et al. (1999) Estimating Long-Range Dependence in the 
Presence of Periodicity: An Empirical Study. Mathematical and Computer 
Modelling 29, 217--228.


To get some graphical insight you may consider to experiment a little 
bit with time series with known behavior:


library(fractal)

# set.seed(12375) ##
rwalk <- cumsum(rnorm(2^12))
random <- rnorm(2^12)
straigt <- 1:(2^12)

## method "aggabs"
hurstBlock(rwalk)
hurstBlock(random)
hurstBlock(straight)

hurstBlock(rwalk, method="aggvar")
hurstBlock(random, method="aggvar")
hurstBlock(straight, method="aggvar")

hurstBlock(rwalk, method="higuchi")
hurstBlock(random, method="higuchi")
hurstBlock(straight, method="higuchi")

library(fArma)

## hurstSlider gives you a graphical interface and viaualization
hurstSlider(rwalk)
hurstSlider(random)
hurstSlider(straight)


Note also that all these methods have additional tuning parameters!

Thomas Petzoldt


PS: Thanks for pointing to package fArma, that I didn't know yet. As far 
as I can see the results seem plausible, compared to package "fractal" 
that I used recently.



More information about the R-sig-dynamic-models mailing list