全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8447 7
2010-02-03
具体是哪个命令啊?
我是新学者
先谢谢了
二维码

扫码加我 拉你入群

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

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

全部回复
2010-2-3 21:18:03
diebold.mariano.test <- function(e1,e2,loss=c("square","abs"),k)
{
        # Compute loss differential
        if (loss == "square") { d <- (e1)^2 - (e2)^2 }
        else { d <- abs(e1) - abs(e2) }
        # Compute sample size and asymptotic variance of loss differential
        n    <- length(d)
            lrv  <- acf(d,lag.max=k,type="covariance",plot=FALSE)$acf[,,1]
            eps  <- 1.0e-8
            lrv  <- max(eps,sum(c(lrv[1],2*lrv[-1]))/n)
            test <- mean(d)/sqrt(lrv)
        p.val <- 2*pnorm(-abs(test))
        return(list(statistic=test,pvalue=p.val))
}
#example
e1 <- rnorm(500, sd=1)
e2 <- rnorm(500, sd=1.3)
diebold.mariano.test (e1,e2,"abs",3)
二维码

扫码加我 拉你入群

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

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

2010-2-4 14:55:33
2# epoh
太感谢了
二维码

扫码加我 拉你入群

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

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

2011-4-19 17:04:03
diebold.mariano.test <- function(x, alternative = c("two.sided", "less", "greater"), k) {

    if (NCOL(x) > 1)

        stop("x is not a vector or univariate time series")     if (any(is.na(x)))

        stop("NAs in x")
    alternative <- match.arg(alternative)     DNAME <- deparse(substitute(x))
    n <- NROW(x)
    cv <- acf(x, lag.max=k, type="covariance", plot=FALSE)$acf[,,1]     eps <- 1.0e-8
    vr <- max(eps, sum(c(cv[1], 2*cv[-1])) / n)     STATISTIC <- mean(x) / sqrt(vr)
    names(STATISTIC) <- "Standard Normal"     METHOD <- "Diebold-Mariano Test"
    if (alternative == "two.sided")

        PVAL <- 2 * pnorm(-abs(STATISTIC))     else if (alternative == "less")

        PVAL <- pnorm(STATISTIC)
    else if (alternative == "greater")

        PVAL <- pnorm(STATISTIC, lower.tail = FALSE)     PARAMETER <- k
    names(PARAMETER) <- "Truncation lag"     structure(list(statistic = STATISTIC, parameter = PARAMETER, alternative = alternative,

                   p.value = PVAL, method = METHOD, data.name = DNAME),
              class = "htest")


}

g <- function(x)
{

    abs(x)
}

e1 <- rnorm(500)
e2 <- rnorm(500)

diebold.mariano.test(g(e1)-g(e2), k = 3)

e1 <- rnorm(500, sd=1)
e2 <- rnorm(500, sd=1.3)

diebold.mariano.test(g(e1)-g(e2), k = 3)
二维码

扫码加我 拉你入群

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

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

2011-4-20 14:17:49
都是高手,学习了
二维码

扫码加我 拉你入群

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

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

2011-7-6 21:33:05
5# kk22boy 你好,请问你做的DMtest 有这三个结果吗?
一个asymptotic test,然后exact finite samples test 里有sign test 和 Wilcoxon's Signed-Rank Test
请教
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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