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 に答える