0

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 値を印刷するとよいでしょう。

ありがとう

4

1 に答える 1