2

我有一个带有时间序列的数据框,我正在尝试迭代测试每个数据框是否是固定的。R 给了我一个奇怪的错误if (interpol==min(tablep)) warning...: missing value where TRUE/FALSE needed

df <- structure(list(DATE = structure(c(15405, 15406, 15407, 15408, 15409, 15405,
  15406, 15407, 15408, 15409, 15405, 15406, 15407, 15408, 15409), class = "Date"),
  ID = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L),
  VALUE = c(5.67, 3.45, 4.56, 20.3, 5.1, 5.67, 3.45, 4.56, 5.28, 5.1, 5.67, 7.8,
  8.79, 9.43, 10.99)), .Names = c("DATE", "ID", "VALUE"), row.names = c(NA, -15L),
  class = "data.frame")
ids <- 1:3

test<-lapply(ids, function(i) {
  if(!any(is.na(df[df$ID==i,3]))) {adf.test(df[df$ID==i, 3])} else {NA} })

Error in if (interpol == min(tablep)) warning("p-value smaller than printed p-value") else warning("p-value greater than printed p-value") : 
  missing value where TRUE/FALSE needed

关于这可能意味着什么的想法?

4

1 回答 1

1

您会遇到错误,因为您尝试使用 3 个数据点估计 4 个参数(常数、时间趋势、滞后 x 水平、滞后 x 差异)。简而言之,您没有足够的数据来运行此测试。

您需要至少 5 个数据点,如果k=0,甚至更多数据点k>0

library(tseries)
adf.test(rnorm(5),k=0)  # works without error
于 2013-06-24T19:11:25.373 回答