非整数ブラウン運動のハースト指数またはフラクタル次元の計算
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}]]