非整数ブラウン運動のハースト指数またはフラクタル次元の計算



Computing Hurst Exponent



解決:

Mathematica の推定ルーチンは、サンプルからハースト指数を復元できます。

BlockRandom [SeedRandom ['mathematica.SE / 58539']; tlow = 1;太もも= 1000; tinc = 1;ハースト= 0.4; dataz = RandomFunction [FractionalBrownianMotionProcess [hurst]、{tlow、thigh、tinc}、1]]; FindProcessParameters [dataz、FractionalBrownianMotionProcess [h]] 

{h-> 0.397063}



したがって、問題はコードにあるはずです。


この遅い回答は、非整数ブラウン運動の次元を計算する方法の詳細を示しています。 [ヘルプ]> [FractionalBrownianMotionProcess]> [基本的な例]のドキュメントは、差異が



Variance [FractionalBrownianMotionProcess [ [Mu]、 [Sigma]、h] [t]]

は$ t ^ {2 h} sigma ^ 2 $であり、これはPeitgenとSaupeが編集したThe Science of FractalImagesの84ページにあるものと同じです。彼らは$ rm {Var} [X(t_2)-X(t_1)] = sigma ^ 2〜Abs [t_2-t_1] ^ {2〜h} $と書きます。ここで、ハースト指数は$ 0を満たします。

戦略は、ますます大きくなる時間差$ k = t_2-t_1 $によって分離されたデータポイントの分散$ V $を見つけることです。 $ V $対$ k $の両対数プロットでの最適な直線の傾きと切片は、それぞれハースト指数$ h $とボラティリティ$ sigma $を与えます。したがって、$ Log [V] = 2 log [ sigma] + 2 h log [k] $です。この質問は、$ mu = 0 $および$ sigma = 1 $を想定しています。

Block [{tlow、thigh、tinc、hurst、dataz、u、k、fit}、SeedRandom ['mathematica.SE/58539']; tlow = 1;太もも= 1000; tinc = 1;ハースト= 0.4; dataz = RandomFunction [FractionalBrownianMotionProcess [hurst]、{tlow、thigh、tinc}、1]; u = Table [{N [Log [k]]、Log [Variance [Differences [dataz、1、k]]]}、{k、1、500}]; fit = Fit [u、{1、k}、k]; ListLogLogPlot [u、Frame-> True、FrameLabel-> {'Log [k] = Log [t2-t1]'、 'Log [Variance]'}、PlotLabel-> 'Log [V] =' ToString [fit]、エピローグ-> {Text [' [Sigma] =' ToString [E ^(fit [[1]] / 2)]、{0.0、1.3}]、Text ['h =' ToString [fit [[2、1 ]] / 2]、{0.0、1.0}]、太い、赤、線[{ログ[{1、フィット/。 k-> 1}]、Log [{6、fit /。 k-> 6}]}]}、BaseStyle-> {FontSize-> 14}]]

両対数プロットV対k