楼主: xpanda
8543 7

R中能做Diebold Mariano Test吗? [推广有奖]

  • 1关注
  • 1粉丝

已卖:217份资源

硕士生

47%

还不是VIP/贵宾

-

威望
0
论坛币
1477 个
通用积分
1.0750
学术水平
1 点
热心指数
3 点
信用等级
-3 点
经验
1359 点
帖子
50
精华
0
在线时间
266 小时
注册时间
2008-10-28
最后登录
2025-12-20

楼主
xpanda 发表于 2010-2-3 20:07:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
具体是哪个命令啊?
我是新学者
先谢谢了
二维码

扫码加我 拉你入群

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

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

关键词:Mariano Diebold Maria test die test 中能 Diebold Mariano

沙发
epoh 发表于 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)
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
HanghangKE + 5 + 5 + 5 精彩帖子
coral033 + 1 观点有启发

总评分: 学术水平 + 5  热心指数 + 6  信用等级 + 5   查看全部评分

藤椅
xpanda 发表于 2010-2-4 14:55:33
2# epoh
太感谢了

板凳
coral033 在职认证  发表于 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)
Out of difficulties, makes miracles.

报纸
kk22boy 发表于 2011-4-20 14:17:49
都是高手,学习了
如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

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

7
mafeng575 发表于 2011-7-6 21:34:06
4# coral033 你好,请问你做的DMtest 有这三个结果吗?
一个asymptotic test,然后exact finite samples test 里有sign test 和 Wilcoxon's Signed-Rank Test
请教

8
melody7963 发表于 2013-8-18 17:56:35
epoh 发表于 2010-2-3 21:18
diebold.mariano.test
您好。请问这里的k值是什么意思?例子中为什么是3?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 13:55