我使用 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 值会很好。
谢谢