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 には 0.01 という出力された p 値の下限があります。p 値より小さい値は、警告メッセージを作成します。
Warning message:
In adf.test(vals[, 2] - beta * vals[, 1], alternative = "stationary", :
p-value smaller than printed p-value
代わりに、より正確な p 値を adf.test に出力させることは可能ですか?
別の方法は、警告メッセージを抑制することです。
res <- suppressWarnings(adf.test(vals[,2] - beta*vals[,1],
alternative = "stationary", k = 0))
しかし、より正確な p 値を印刷するとよいでしょう。
ありがとう