全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4591 1
2015-12-13

rsFit

function (x, levels = 50, minnpts = 3, cut.off = 10^c(0.7, 2.5),

    doplot = FALSE, trace = FALSE, title = NULL, description = NULL)

{

    call = match.call()

    data = list(x = x)

    x = as.vector(x)

    n = length(x)

    increment = (log10(n/minnpts))/levels

    M = floor(10^((1:levels) * increment))

    M = M[M > 1]

    Y = cumsum(x)

    Y2 = cumsum(x * x)

    RS = NULL

    for (m in M) {

        S = sqrt(Y2[m]/m - (Y[m]/m)^2)

        Z = Y[1:m] - (1:m) * Y[m]/m

        STATS = (max(Z) - min(Z))/S

        RS = c(RS, STATS)

        if (trace)

            cat("\n\tm = \t", m, "\tR/S = \t", STATS)

    }

    if (trace)

        cat("\n")

这是重标极差法(R/S分析法)的算法程序,下图为所依据的算法步骤的一部分:

首先,我对照算法来看程序,不知求所有子区间a的极差的均值这一步在程序哪里体现;

其次,RS = c(RS, STATS)和if (trace)以及cat函数这两步是什么意思;

还有,我用数据运行过,发现S,Z显示都是null,且报错如下,

Error in if (trace) cat("\n\tm = \t", m, "\tR/S = \t", STATS) :

  argument is not interpretable as logical;Error in if (trace) cat("\n") : argument is not interpretable as logical

本人刚接触编程,还想根据经典R/S法来自己编写修正的R/S法和V/S法用于论文,但一上来就被卡住了,希望各位高手帮忙解答下,如能直接提供以上两个程序,必有重谢,非常感谢!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-3-28 10:33:12
哥们,你现在搞定没?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群