Ошибка в acorr_ljungbox из statsmodel

Итак, я пытаюсь провести тест box-ljung на результат, но получаю странную ошибку и не могу понять, почему.

x = diag.acorr_ljungbox(np.random.random(20))

Я попытался сделать то же самое со случайным массивом, все та же ошибка:

ValueError: operands could not be broadcast together with shapes (19,) (40,)

person Manu Joseph    schedule 07.10.2016    source источник
comment
Можете ли вы опубликовать окружающий код   -  person Jacques de Hooge    schedule 07.10.2016
comment
Проблема в том, что по умолчанию функция принимает lag=40, а массив был короче. Это решается, если вы явно устанавливаете задержку. Смотрите ответ ниже   -  person Manu Joseph    schedule 18.11.2016


Ответы (1)


Это похоже на ошибку в настройке задержки по умолчанию, которая установлена ​​на 40 независимо от длины данных.

В качестве обходного пути и для получения правильной статистики необходимо ограничить lags, например. используя 5 лагов ниже.

>>> from statsmodels.stats import diagnostic as diag

>>> diag.acorr_ljungbox(np.random.random(50))[0].shape
(40,)

>>> diag.acorr_ljungbox(np.random.random(20), lags=5)
(array([ 0.36718151,  1.02009595,  1.23734092,  3.75338034,  4.35387236]),
array([ 0.54454461,  0.60046677,  0.74406305,  0.44040973,  0.49966951]))
person Josef    schedule 07.10.2016
comment
теперь об этом сообщается здесь github.com/statsmodels/statsmodels/issues/3229 - person Josef; 07.10.2016