Как вычислить автокорреляцию в r (объект zoo)

Я пытаюсь проверить автокорреляцию в объекте зоопарка (ежемесячные данные с несколькими столбцами), используя:

acf(jan, plot=F)$acf[2]

но я получаю следующую ошибку:

Error in na.fail.default(as.ts(x)) : missing values in object

Чтобы упростить, я извлек только один из столбцов, который я назвал "a" (так что теперь у меня есть простой объект зоопарка с индексом и данными) и используется:

acf(a)

но все равно получите ту же ошибку. Невозможно использовать в объектах зоопарка?

Ответ 1

Просто используйте

acf(coredata(jan))

Это должно работать нормально. Имейте в виду, что вам необходимо предоставить регулярные интервальные ряды, чтобы дать вам весомый ответ.

Ответ 2

Поведение по умолчанию для acf - na.action = na.fail. Попробуйте установить его в na.omit или na.pass в своем вызове acf(..., na.action = na.omit)

Ответ 3

У меня была такая же проблема, как и при попытке использовать функцию ACF при ежемесячном возврате S & P. Оказывается, функция coredata решила проблему, поскольку она удалила информацию о дате из результатов в моем наборе данных из yahoo finance.

вы можете сделать снимок!

Ответ 4

Или самостоятельно сделанный

autocorrplot <- function(x)
{
  n <- length(x)
  barplot(sapply(1:10,function(i) cor(x[-i:-1],x[(-n-1+i):-n])))
}