hurstSpec              package:fractal              R Documentation

_H_u_r_s_t _c_o_e_f_f_i_c_i_e_n_t _e_s_t_i_m_a_t_i_o_n _v_i_a _s_p_e_c_t_r_a_l _r_e_g_r_e_s_s_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     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.

     _s_t_a_n_d_a_r_d 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.

     _s_m_o_o_t_h_e_d 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.

     _r_o_b_i_n_s_o_n 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.
          .in -5 

_U_s_a_g_e:

     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", ...)

_A_r_g_u_m_e_n_t_s:

       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:

          '"_s_t_a_n_d_a_r_d"' Regression of SDF estimate.

          '"_s_m_o_o_t_h_e_d"' Regression of block averages of the SDF estimate
               taken over dyadic partitions in frequency.

          '"_r_o_b_i_n_s_o_n"' Robinson's SDF integration method. .in -5

               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))'.

_V_a_l_u_e:

     an object of class 'fractalBlock'.

_R_e_f_e_r_e_n_c_e_s:

     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.

_S_e_e _A_l_s_o:

     'hurstBlock', 'fractalBlock', 'HDEst', 'lm'.

_E_x_a_m_p_l_e_s:

     ## 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")

