Nano Hash - криптовалюты, майнинг, программирование

R Ошибка теста ADF во временных рядах Lapply

У меня есть кадр данных с временными рядами, и я пытаюсь итеративно проверить, является ли каждый из них стационарным. 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

Мысли о том, что это может означать?

24.06.2013

  • Более короткий способ написать код — lapply(split(df$VALUE, df$ID), adf.test). Это также позволяет избежать потенциальной проблемы, связанной с тем, что ids может иметь значение, которого нет в df$ID (например, ids <- 1:4). 24.06.2013

Ответы:


1

Вы получаете сообщение об ошибке, потому что пытаетесь оценить 4 параметра (постоянная, временной тренд, запаздывающий уровень x, запаздывающий x разность) с 3 точками данных. Проще говоря, у вас недостаточно данных для запуска этого теста.

Вам нужно как минимум 5 точек данных, если k=0, и даже больше точек данных, если k>0.

library(tseries)
adf.test(rnorm(5),k=0)  # works without error
24.06.2013
  • Ха... очень странно. Но это определенно полезно. Любое слово о том, где вы читали об этом / как вы поняли, что это проблема? 24.06.2013
  • @OlgaMu: я начал с отладки кода adf.test (debug(adf.test)) и заметил, что одна из оценок модели была NA. Затем я просмотрел модель в Википедии и прочитал ?adf.test ( В разделе «Подробности» говорится, что он проверяет коэффициент авторегрессии первого порядка). Потом просто посчитал коэффициенты и данные (теряешь 2 обса от взятия лага и разницы). 24.06.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..