【问题标题】:How to make adf.test print more precise p-value in R如何使 adf.test 在 R 中打印更精确的 p 值
【发布时间】:2014-02-26 04:44:38
【问题描述】:

我使用 tseries 包中的 add.test 制作了一个简单的协整函数

cointegration <- function(vals)
{
    library(tseries)

    beta <- coef(lm(vals[,2] ~ vals[,1] + 0, data = vals))[1]
    names(beta) <- NULL
    res <- adf.test(vals[,2] - beta*vals[,1], alternative = "stationary", k = 0)
    return( list(beta = beta, p.value = res$p.value) )
}

显然,adf.test 的打印 p 值下限为 0.01。任何较小的 p 值都会产生警告消息:

Warning message:
In adf.test(vals[, 2] - beta * vals[, 1], alternative = "stationary",  :
  p-value smaller than printed p-value

是否可以让 adf.test 打印出更精确的 p 值?

我知道另一种方法是抑制警告消息:

res <- suppressWarnings(adf.test(vals[,2] - beta*vals[,1],
                        alternative = "stationary", k = 0))

但是打印更精确的 p 值会很好。

谢谢

【问题讨论】:

  • 请包含您的数据样本以解决您的问题reproducible

标签: r precision suppress-warnings p-value


【解决方案1】:

来自?adf.test的帮助文件:

p 值是从表 4.2,p 中插值的。班纳吉等人的 103 人。 (1993 年)。如果计算的统计量在关键表之外 值,然后生成警告消息。

所以简短的回答是否定的,您无法获得“更精确”的 p 值。至少不是直接的。无论如何,通常报告p&lt;0.01以外的任何内容都没有多大意义。

如果你真的想得到“精确”的 p 值,你应该看看下面的参考资料。我无权访问它,但他们可能会解释他们是如何提出“临界值表”的,因此可以扩展它。

A. Banerjee、J. J. Dolado、J. W. Galbraith 和 D. F. Hendry (1993): 协整、纠错和计量经济学分析 Non-Stationary Data,牛津大学出版社,牛津。

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 2012-12-22
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多