R - adfTest ежедневных возвратов - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь выполнить adfTest, чтобы оценить моих ежедневных возвратов. Используя функцию adfTest, я получаю следующую ошибку:

Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] : 
non-numeric argument to binary operator
In addition: Warning message:
In if (class(x) == "timeSeries") x = series(x) :
  the condition has length > 1 and only the first element will be used

Я думаю, это может быть связано с тем, что ежедневные доходы не являются одномерными , но я не понимаю тогда как я могу проверить стационарность своих ежедневных возвратов?

Я вычислил следующий пример для лучшего понимания моей проблемы:

library(fUnitRoots)
library(zoo)
test.date <- as.Date(c("2009-02-01", "2009-02-02", "2009-02-05", "2009-02-06"))
test.return <- c("0.01", "0.02", "-0.05", "0.008")
test.data <- data.frame(test.date, test.return)
test.ts <- read.zoo(test.data, format = "%Y-%m-%d")
adfTest(test.ts)

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 20 марта 2020

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

library(fUnitRoots)
library(zoo)

test.date <- as.Date(c("2009-02-01", "2009-02-02", "2009-02-05", "2009-02-06", "2009-02-09",
                       "2009-02-10", "2009-02-11", "2009-02-12", "2009-02-13", "2009-02-16"))
test.return <- c("0.01", "0.02", "-0.05", "0.008", "-0.001", "0.009", "0.0112", "0.005",
                 "-0.003", "0.014")
test.return <- sapply(test.return, as.numeric)
test.data <- data.frame(test.date, test.return)
test.ts <- read.zoo(test.data, format = "%Y-%m-%d")


adfTest(test.ts)

Title:
 Augmented Dickey-Fuller Test

Test Results:
  PARAMETER:
    Lag Order: 1
  STATISTIC:
    Dickey-Fuller: -2.8031
  P VALUE:
    0.01 

Description:
 Fri Mar 20 19:00:50 2020 by user: MrRLover

Я добавил дополнительные точки данных, поскольку ваш исходный ряд был недостаточно длинным для оценки точек.

...