Pergunta

Eu faço uma simples cointegration função usando adicionar.teste de tseries pacotes

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) )
}

Aparentemente, o adf.teste tem um limite inferior de impressos p-valor de 0,01.Qualquer valor menor p-valor irá criar uma mensagem de aviso:

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

É possível ter adf.impressão de teste mais preciso do p-valor, em vez disso?

Eu sei o caminho alternativo é para suprimir a mensagem de aviso:

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

Mas a impressão mais precisa p-valor seria bom.

Obrigado

Foi útil?

Solução

A partir do arquivo de ajuda do ?adf.test:

Os p-valores são interpolados a partir da Tabela 4.2, p.103 da Banerjee et al.(1993).Se a estatística calculada é fora da tabela de crítica valores, em seguida, uma mensagem de aviso é gerado.

Então a resposta curta é não, você não pode obter "mais preciso" p-valores.Pelo menos não diretamente.De qualquer forma, normalmente não fazem muito sentido para relatar algo diferente p<0.01.

Se você realmente deseja obter o "exata" p-valor, você provavelmente deve procurar na referência abaixo.Eu não tenho acesso a ele, mas eles provavelmente explicam como eles vieram com suas "tabela de valores críticos", assim pode ser possível estendê-lo.

A.Banerjee, J.J.Dolado, J.W.Galbraith, e D.F.Hendry (1993):Cointegration, Correção de erros e a Análise Econométrica de Não-Estacionária De Dados, Oxford University Press, Oxford.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top