Hurst coefficient estimation via spectral regression

Description

Function to estimate the Hurst parameter H of a time series by linear regression of the log(spectrum) versus log(frequency) with frequency points accumulated into boxes of equal width on a logarithmic scale and spectrum values averaged over each box.

standard

Given an estimate of the SDF for the input time series, this function estimates the Hurst coefficient of the time series by performing a linear regression of log(SDF) versus log(frequency). The range of frequencies to be included in the regression is specified by the dc and freq.max input arguments.

smoothed

Given an estimate of the SDF for the input time series, this function estimates the Hurst coefficient of the time series by performing a linear regression of log(SDF) versus log(frequency). The range of frequencies to be included in the regression is specified by the dc and freq.max input arguments. Frequencies are partitioned into blocks of equal width on a logarithmic scale and the SDF is averaged over each block. The number of blocks is controlled by the n.block argument.

robinson

Estimates the Hurst coefficient by Robinson's SDF integration method. Given an estimate of the SDF for the input time series, this function estimates the Hurst coefficient of a time series by applying Robinson's integral method (typically) to the low- frequency end of the SDF. Use the freq.max argument to define the low-frequency cutoff.

Usage

1
2
hurstSpec(x, method="standard", freq.max=0.25, dc=FALSE, n.block=NULL,
    weight=function(x) rep(1,length(x)), fit=lm, sdf.method="direct", ...)

Arguments

x

a vector containing a uniformly-sampled real-valued time series.

...

optional SDF estimation arguments passed directly to the sdf function. See help documentation for the SDF function for more information.

dc

a logical value. If FALSE, the DC component of the spectrum (corresponding to the sample mean of the series) is not used in fitting the resulting statistics to estimate the Hurst coefficient. Default: FALSE.

fit

a function representing the linear regression scheme to use in fitting the resulting statistics (on a log-log scale). Supported functions are: lm, lmsreg, and ltsreg. See the on-line help documentation for each of these for more information: in R, these are found in the MASS package while in S-PLUS they are indigenous and found in the splus database. Only used when method="standard" or method="smoothed". Default: lm.

freq.max

the largerst normalized frequency to include in the regression scheme. Default: 0.25.

method

a character string indicating the method to be used in estimating the Hurst coefficient (H). Choices are:

"standard"

Regression of SDF estimate.

"smoothed"

Regression of block averages of the SDF estimate taken over dyadic partitions in frequency.

"robinson"

Robinson's SDF integration method.

Default: "standard".

n.block

an integer denoting the number of logarithmic frequency divisions to use in partitioning the estimated SDF. This input argument is only used if method="smoothed". Default: as.integer(floor(logb(length(x),base=2))), which corresponds to the maximum number of decomposition levels possible for a discrete wavelet transformation of the input time seres.

sdf.method

a character string denoting the method to use in estimating the SDF. Choices are "direct", "lag window", "wosa" (Welch's Overlapped Segment Averaging), "multitaper". See help documentation for the sdf function for more information. Default: "direct".

weight

a function with a single required variable (x) used to weight the resulting statistics (x) for each scale during linear regression. Currently, only supported when fit=lm and is only used when method="standard" or method="smoothed". Default: function(x) rep(1,length(x)).

Value

an object of class fractalBlock.

References

P.M. Robinson (1994), Semiparametric analysis of long-memory time series, Annals of Statistics, 22, 515–539.

I. Lobato and P.M. Robinson (1996), Averaged periodogram estimation of long memory, Journal of Econometrics, 73, 303–324.

J. Geweke and Susan Porter-Hudak (1983), The Estimation and Application of Long Memory Time Series Models, Journal of Time Series Analysis, 4, 221–237.

Murad S. Taqqu, Vadim Teverovsky, and Walter Willinger (1995), Estimators for Long-Range Dependence: An Empirical Study, Fractals, 3, 785–798.

See Also

hurstBlock, fractalBlock, HDEst, lm.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
## create test series 
set.seed(100)
x <- rnorm(1024)
walk <- cumsum(x)

## calculate the Hurst coefficient of a random 
## walk series using various techniques. use a 
## multitaper SDF 
methods <- c("standard","smoothed")
z <- lapply(methods, function(method, walk){
    hurstSpec(walk, method=method, sdf.method="multitaper")
},walk=walk )
names(z) <- methods

## plot results 
old.plt <- par("plt")
for (i in 1:2){
    splitplot(2,1,i)
    plot(z[[i]])
}
par(plt=old.plt)

## Robinson's method 
hurstSpec(walk, method="robinson", sdf.method="multitaper")

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.