赫斯特与R指数

时间:2012-02-24 15:10:30

标签: r time-series

我想用R计算Hurst指数。是否有可以执行此操作的库或内置函数?任何建议将不胜感激(甚至参考的网站链接)。感谢名单

更新:thanx到Ben Bolker的评论,我在函数示例中找到了这个脚本

hurst.est(wspec, range, nvoice, plot=TRUE)

在此页面http://finzi.psych.upenn.edu/R/library/Rwave/html/hurst.est.html

脚本:

wnoise <- rnorm(8192)
plot.ts(wnoise)
spwnoise <- fft(wnoise)
spwnoise <- Mod(spwnoise)
spwnoise <- spwnoise*spwnoise
plot(spwnoise[1:4096], log="xy", type="l")
lswnoise <- lsfit(log10(1:4096), log10(spwnoise[1:4096]))
abline(lswnoise$coef)
cwtwnoise <- DOG(wnoise, 10, 5, 1, plot=FALSE)
mcwtwnoise <- Mod(cwtwnoise)
mcwtwnoise <- mcwtwnoise*mcwtwnoise
wspwnoise <- tfmean(mcwtwnoise, plot=FALSE)
wspec.pl(wspwnoise, 5)
hurst.est(wspwnoise, 1:50, 5)

我猜第一部分会产生一个具有记忆效应的信号,但是我无法理解第二部分代码的一部分对于扩展赫斯特指数是非常必要的。谁能帮助我并解释一下?

我有疑问
mcwtwnoise <- Mod(cwtwnoise)
mcwtwnoise <- mcwtwnoise*mcwtwnoise 

5 个答案:

答案 0 :(得分:5)

Hurst指数H可以从分形维数D计算得出,D = 2 - H.

我使用fractaldim软件包(可用CRAN)来计算分形维数。对分形维数估计中的方法有完整的描述:评估时间序列和空间数据的粗糙度。华盛顿大学统计系,技术报告no。 577,http://www.stat.washington.edu/research/reports/2010/tr577.pdf

使用此软件包,您可以应用小波变换,boxcount等或推荐的madogram算法来计算分形维数。

答案 1 :(得分:3)

(从评论转换而来。)

这不是答案,而是

install.packages("sos")
library("sos")
findFn("hurst exponent")

应该很快就能到达那里。 注释:(1)每次安装R只需要install.packages(...)一次,但每次会话都需要library("sos"); (2)你仍然需要弄清楚你找到的包装是否能满足你的需要 - 但至少你知道从哪里开始。

答案 2 :(得分:2)

Rwave包使用小波变换来估计Hurst指数,因此您可能想要尝试fArma包。除了小波之外,它还具有各种其他函数来估计Hurst指数。暂时不在CRAN列出归档,但它适用于我。

这是包中的相关文档部分。 http://rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=fArma:LrdModelling

答案 3 :(得分:0)

最全套的方法(九)在包fArma' '(LrdModelling)函数hurstSlider中给出。

答案 4 :(得分:0)

内置的hurst库数量很多,一个在pracma库中,一个在PortfolioAnalytics库中,另一个在下面的分形库示例中

    HurstIndex(nvr)

    library(pracma)
    hurstexp(nvr)
    library(fractal)
    hurstSpec(nvr)````
#They are R scripts.