문제

Tseries 패키지에서 add.test에서 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
.

adf.test가 대신보다 정확한 p 값을 인쇄 할 수 있습니까?

나는 대체 방법이 경고 메시지를 억제하는 것입니다 :

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

그러나 더 정확한 p 값을 인쇄하는 것이 좋을 것입니다.

감사합니다

도움이 되었습니까?

해결책

?adf.test의 도움말 파일에서 :

p 값은 표 4.2, p에서 보간됩니다.Banerjee et.의 103 알.(1993).계산 된 통계가 중요한 테이블 밖에있는 경우 값은 경고 메시지가 생성됩니다.

짧은 대답은 아니오, "더 정확한"p 값을 얻을 수 없습니다.적어도 직접적으로 아닙니다.어쨌든, 일반적으로 p<0.01가 아닌 다른 것을보고하는 것이 많은 의미가 없습니다.

정말 "정확한"p-value를 얻고 싶다면 아래 참조를보아야합니다.나는 그것에 접근 할 수 없지만, 그들은 그들이 "중요한 가치의 테이블"을 어떻게 생각해도 기술을 설명하므로 확장 할 수 있습니다.

a.Banerjee, J. J. Dolado, J. W. Galbraith 및 D. F. Hendry (1993) : 동체, 오류 수정 및 이코노테릭 분석 비 고정형 데이터, 옥스포드 대학 프레스, 옥스포드.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top