I'm new to parameter estimation world and I'm studying this model with two parameters $\mu$ and $\sigma$: $$\tag1 dX_t = \mu X_t dt + \sigma X_t dB_t^H $$ where $B_t^H$ is a fractional Brownian motion (fBm) with Hurst parameter $H\in(0,1)$. Moreover I have real data (annual observations of the population size of whooping cranes) and I would like to see how the model fits them.

I already have formulas for the estimator $\hat\mu$ and $\hat\sigma$, but since they contain $H$, I first have to estimate $H$.

I have read plenty of stuff about simulations for parameters estimation, but they are mostly theoretical, they don't give a sequence of steps to follow and I did not find numerical examples.

I am using matlab and for simplicity, I use the built-in function wfbmesti(X) which, given a fBm signal $X$, estimates the parameter $H$.

In our case, $X$ has to be generated from equation $(1)$, but since we don't have values for $\mu$ and $\sigma$, I guess we can pick what we want. Please correct me if I'm wrong. So let's say we pick $\mu = 2$ and $\sigma = 0.5$.

In order to generate $X$ we also have to choose $H$, but is there a standard procedure to apply?

From what I have understood, this is what I would do:

  1. Take $H=0.1$ and generate 1000 (how many exactly?) realizations $(X_1,...,X_n)$ of $X$;
  2. Obtain 1000 estimates of $H$ by means of wfbmesti(X), one for each realization;
  3. Compute the bias and the MSE of the vector containing the 1000 values of $H$.
  4. Repeat steps 1 to 3 with $H=0.2$, $H=0.3$, ...,$H=0.9$.

I think this procedure is called Monte Carlo experiment (isn't it?), does it work this way?

When all is done, what is the correct estimate of $H$ and how to choose it?

  • 1
    $\begingroup$ What is your objective? It is not clear in the question? Do you want to deal with real data or you want to understand about the Monte Carlo method? $\endgroup$ – DanielTheRocketMan Feb 25 at 13:41
  • 1
    $\begingroup$ Hi: your solution is not clear to me because you say Set H = 0.1 but then in the second step, you say obtain 1000 values of H. Also, if you write the formulae for $\sigma$ and $\mu$ in terms of $H$ that might help someone to answer your question. $\endgroup$ – mlofton Feb 25 at 13:46
  • 1
    $\begingroup$ Maybe this worths a different question. Since this is a very general topic that is not connected exactly with this question. But the information provided by @mlofton is correct. $\endgroup$ – DanielTheRocketMan Feb 25 at 14:15
  • 1
    $\begingroup$ @soundwave see the end of the question with the monte carlo recipe. $\endgroup$ – DanielTheRocketMan Feb 25 at 14:25
  • 1
    $\begingroup$ @sound wave: Hi. I've never heard of a procedure such as that which you describe. It's sounds like a strange variant of monte carlo simulation that I'm not familiar with. Could you point to where you read about that approach ? I also don't know of a standard approach for estimating your expression but my first tthought would be to replace $\mu$ and $\sigma$ with their expressions in terms of $H$ and then see what that results in. Atleast then, you only have one parameter which might be possible to estimate ? $\endgroup$ – mlofton Feb 25 at 14:49

I understand that you have real data from the financial market and you want to estimate the Hurst exponent $H$.

The estimative of $H$ is not trivial and there are several methods that can be used to achive this.

Let $X$ be the data you collect from the financial market. In most methods you apply the method to the log return which is $log(X_t/X_{t-1})$. A very small number of methods you apply the method to $log(X_t)$ (for instance DFA and some methods based on frequency)

The classical method used to estimate $H$ is the so-called R/S method. However, due to the bias that it created around $H=0.5$ I believe that today it is used only to comparison purposes. In the R/S you use the log return presented above.

I am not sure about the method based on wavelets, but I believe that you must introduce the $log(X_t)$, but maybe you should check the help of this function in matlab.

A long time ago, I worked in this field (mainly exploring the idea of the rolling sample approach). Some of my papers are ones of the most cited in the literature:

  1. The Hurst exponent over time: testing the assertion that emerging markets are becoming more efficient DO Cajueiro, BM Tabak Physica A: Statistical Mechanics and its Applications 336 (3-4), 521-537, 2004 (375 citations)
  2. Ranking efficiency for emerging markets DO Cajueiro, BM Tabak Chaos, Solitons & Fractals 22 (2), 349-352, 2004 (217 citations)

  3. Are the crude oil markets becoming weakly efficient over time? A test for time-varying long-range dependence in prices and volatility BM Tabak, DO Cajueiro Energy Economics 29 (1), 28-36, 2007 (187 citations)

At that time, we also introduced an idea that we called V/S:

Cajueiro, D. O. and Tabak, B. M. The rescaled variance statistic and the determination of the Hurst exponent. Mathematics and Computers in Simulation 70, 172 -179, 2005. (75 citations)

The codes (I used) are [here][2]. I believe that most of them were implemented in Matlab. You may eventually want to use this code to compare to your results. In these codes, you only have to enter the data (put in the same directory of the code) and the code makes the necessary transformations.

If you want to test the method, start with synthetic functions such as (the most common):

1) The random walk.

2) The weierstrass function.


The fractal brownian motion is too complicated to a start.

About Monte Carlo, the comment provided by @mlofton is correct.

Monte Carlo:

1) Choose H (a fixed value of H).

2) Fix the size of the data (for instance $n$) and generate $m$ samples of it. So, in the end you get $m$ time series with size $n$.

3) Estimate H using the method of your choice for each sample of size $n$. In the end, you have got $m$ estimates of H.

4) Now you can plot the distribution or to evaluate the mean.

| cite | improve this answer | |
  • 1
    $\begingroup$ See the edit about the Monte Carlo method. $\endgroup$ – DanielTheRocketMan Feb 25 at 14:26
  • 1
    $\begingroup$ Usually in monte carlo simulations your intention is to generate several data series in order to estimate the parameter several times. See the update. $\endgroup$ – DanielTheRocketMan Feb 25 at 14:35
  • 1
    $\begingroup$ See now the answer. In your question, you must fix the value of H for each experiment. $\endgroup$ – DanielTheRocketMan Feb 25 at 14:39
  • 1
    $\begingroup$ Thank you very much, so basically the first 3 steps that you wrote are equal to the first 2 steps that I have written in the question. About your step 4, say that we compute the sum of all the estimates and divide it by $m$ (ie we compute the mean). What to do next? Should we repeat the experiment for different values of $H$? $\endgroup$ – sound wave Feb 25 at 14:47
  • 1
    $\begingroup$ If you believe that the quality of estimative of your method is not the same for all values of H, you should test different values (as I mentioned in the answer the R/S method has a bias in the H=0.5). However, to do that you run different Monte Carlo Simulations. $\endgroup$ – DanielTheRocketMan Feb 25 at 14:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.