Цель этой статьи — поделиться результатами сравнительного исследования эффективности статистических тестов для единичных корней.
Дики-Фуллер (ADF) И Квятковски, Филлипс, Шмидт и Шин (КПСС) : В случае почти нестационарных временных рядов тест ADF часто не может отвергнуть нулевую гипотезу нестационарности.
Это означает, что тест ADF имеет высокий риск ошибки II рода, то есть вероятность не отвергнуть ложную нулевую гипотезу.
В этой статье мы рассмотрим, насколько «мощны» тесты ADF и KPSS. Давайте сгенерируем случайный процесс
, не имеющий единичного корня (т.е.
процесс стационарный),
:
и посмотреть, в какой степени различные статистические тесты признают этот процесс стационарным, а также в какой конкретно
Тест АПД завершится неудачно.
Экспериментальный план
Для разных значениймы сгенерируем 1000 процессов
,
, Где
, и посчитайте количество отвергнутых гипотез.
Тест АПД : Истинная модель
, Где
с нулевым средним и конечной дисперсией
.
Оцениваем модель
.
Критические значения для статистики испытаний
, Где
, представлены в таблице ниже.
1% | 5% | 10% |
-2.57 | -1.94 | -1.62 |
, Где
,
с нулевым средним и конечной дисперсией
.
Мы оцениваем ту же модель с
.
Критические значения для тестовой статистики множителей Лагранжа, где
, представлены в таблице ниже.
1% | 5% | 10% |
0.74 | 0.46 | 0.35 |
влияет на окончательное распределение выборки как в тестах ADF, так и в тестах KPSS. На реальном фондовом рынке начальная стоимость
может варьироваться довольно широко, например, от 0,00215 до 204100 (в абсолютных значениях).
В этой статье мы проанализируем мощность тестов ADF и KPSS для малых значений.
.
Генерация случайных процессов
Начнем с генерации нестационарных случайных процессов при.
Во всех последующих таблицах
,
, а количество сгенерированных случайных процессов равно 1000. Мы будем генерировать случайные процессы в Matlab.
На рисунке ниже показан 1 из 1000 сгенерированных нестационарных случайных процессов, который следует модели случайного блуждания (T = 500; count = 1000; epsilon = zeros(T,count); for set = 1 : count epsilon(:,set) = randn(T,1); end y = zeros(T,count); y(1,:) = 0; for t = 2 : T y(t,:) = y(t - 1,:) + epsilon(t,:); end figure plot(y(:,1)) title('Simulated RW Process')
).
Тестирование на разных уровнях значимости
Затем мы тестируем каждый из сгенерированных случайных процессов с помощью тестов ADF и KPSS на разных уровнях значимости (1%, 5% и 10%).
h = zeros(count,1);
for set = 1 : count
h(set,1) = adftest(y(:,set),'alpha',0.01);
h(set,2) = adftest(y(:,set));
h(set,3) = adftest(y(:,set),'alpha',0.1);
h(set,4) = kpsstest(y(:,set),'trend',false,'alpha',0.01);
h(set,5) = kpsstest(y(:,set),'trend',false);
h(set,6) = kpsstest(y(:,set),'trend',false,'alpha',0.1);
end
Напомню, что методический подход теста КПСС полностью отличается от подхода теста АДФ, основное отличие которого следует понимать в перестановке нулевой и альтернативной гипотез.
В тесте KPSS нулевая гипотеза утверждает, что временной ряд является стационарным, альтернативная гипотеза утверждает наличие нестационарности.
Проще говоря, если тест ADF дает ответ 1 (правда), то процесс стационарен.
Если тест KPSS дает ответ 1 (верно), то процесс нестационарен.
Соответственно, чтобы посчитать количество строк, которые по тому или иному тесту идентифицированы как стационарные, необходимо использовать следующий код. nnz(h(:,1))
nnz(h(:,2))
nnz(h(:,3))
nnz(~h(:,4))
nnz(~h(:,5))
nnz(~h(:,6))
Ээксперимент для стационарных процессов
Теперь давайте сгенерируем и протестируем стационарные случайные процессы с теми же начальными условиями, что и нестационарные процессы, сгенерированные и протестированные выше.
Давайте начнем с
.
phi = 0.1;
z = zeros(T,count);
z(1,:) = 0;
for t = 2 : T
z(t,:) = phi * z(t - 1,:) + epsilon(t,:);
end
figure
plot(z(:,1))
title('Simulated AR(1) Process')
На рисунке ниже показан 1 из 1000 сгенерированных стационарных случайных процессов, который следует модели авторегрессии первого порядка (
).
Давайте проверим каждый из сгенерированных случайных процессов с помощью тестов ADF и KPSS на разных уровнях значимости (1%, 5% и 10%).
zh = zeros(count,1);
for set = 1 : count
zh(set,1) = adftest(z(:,set),'alpha',0.01);
zh(set,2) = adftest(z(:,set));
zh(set,3) = adftest(z(:,set),'alpha',0.1);
zh(set,4) = kpsstest(z(:,set),'trend',false,'alpha',0.01);
zh(set,5) = kpsstest(z(:,set),'trend',false);
zh(set,6) = kpsstest(z(:,set),'trend',false,'alpha',0.1);
end
Затем мы подсчитываем количество рядов, которые были определены как стационарные по тому или иному тесту.
nnz(zh(:,1))
nnz(zh(:,2))
nnz(zh(:,3))
nnz(~zh(:,4))
nnz(~zh(:,5))
nnz(~zh(:,6))
Продолжим тестирование на другие значения
.
Результаты эксперимента
В таблице ниже показано, сколько раз процесс был идентифицирован как стационарный для разных тестов и разных значений.
.
Для
количество найденных стационарных процессов соответствует ожидаемому.
Для почти нестационарных процессов
мы получаем много ложных срабатываний теста ADF. Для
мы можем получить ложноотрицательный результат теста KPSS.
Тест АПД | КПСС тест | |||||
|
1% | 5% | 10% | 1% | 5% | 10% |
0.1 | 1000 | 1000 | 1000 | 981 | 924 | 868 |
0.2 | 1000 | 1000 | 1000 | 961 | 885 | 812 |
0.3 | 1000 | 1000 | 1000 | 938 | 834 | 731 |
0.4 | 1000 | 1000 | 1000 | 893 | 758 | 642 |
0.5 | 1000 | 1000 | 1000 | 831 | 665 | 512 |
0.6 | 1000 | 1000 | 1000 | 733 | 516 | 353 |
0.7 | 1000 | 1000 | 1000 | 586 | 339 | 186 |
0.8 | 1000 | 1000 | 1000 | 349 | 145 | 66 |
0.9 | 1000 | 1000 | 1000 | 68 | 17 | 4 |
0.95 | 988 | 1000 | 1000 | 2 | 0 | 0 |
0.975 | 501 | 886 | 981 | 1 | 0 | 0 |
0.99 | 79 | 330 | 536 | 1 | 0 | 0 |
0.995 | 34 | 155 | 288 | 0 | 0 | 0 |
1 | 8 | 46 | 95 | 0 | 0 | 0 |
1.01 | 1 | 4 | 5 | 0 | 0 | 0 |
выводы
Как мы видели, тест Дики-Фуллера не способен различать нестационарные и почти нестационарные временные ряды.Это объясняет, почему это не работает свойство симметрии отношения коинтеграции около 3% пар.
Я проанализировал балансы 8 асимметричных пар на Московской бирже за 2019 год:
варьировался от 0,9593 до 0,9716, т. е.
временной ряд остатков был близок к нестационарному.
На практике полезно классифицировать переменные с высокой степенью устойчивости во времени (небольшое возвращение к среднему) как нестационарные, а переменные со значительной тенденцией к возвращению к среднему — как стационарные.
Однако важно подчеркнуть, что стационарность/нестационарность или, альтернативно, порядок интегрирования переменной, как правило, не является свойством экономической переменной, а представляет собой удобное статистическое приближение, позволяющее различать краткосрочные, среднесрочные и долгосрочные.
колебания данных.
Если временной ряд пересекает свой средний уровень, скажем, 10 раз, то эконометрический анализ обнаружит значительное отклонение среднего значения и, следовательно, сделает вывод, что временной ряд является стационарным.
Однако если расширить горизонт выборки, мы можем получить противоречивые результаты.
В более широком временном диапазоне эконометрический анализ может прийти к выводу, что временной ряд нестационарен.
Существует множество аргументов в пользу того, чтобы рассматривать единичный корень (стохастический тренд) как удобное эконометрическое приближение, а не как глубокий структурный параметр.
Например, если временным измерением нашего исследования является макроэкономическое поведение в среднесрочной перспективе, то большинство макроэкономических переменных демонстрируют значительную устойчивость, что соответствует нестационарному, а не стационарному поведению.
Такой временной ряд не будет статистически отличаться от нестационарного процесса, и рассмотрение его как стационарной переменной (на небольшой выборке), скорее всего, сделает статистический анализ недействительным и, следовательно, приведет к неверным экономическим выводам.
В связи с этим я не вижу особого смысла проверять временной ряд на стационарность перед изучением коинтеграции.
Во-первых, мы можем получить неверный результат. Во-вторых, даже если процесс действительно стационарен в течение определенного периода времени, скорее всего, путем выборки мы просто уловили боковое движение.
Однако если расширить горизонт анализа, то мы увидим в целом нестационарное поведение временного ряда.
Теги: #математика #анализ временных рядов #эконометрика #коинтеграция #финансовая математика #статистический тест
-
Открытый Вебинар «Работа: Своя И Чужая»
19 Oct, 24 -
Новый Взгляд На Habreditor
19 Oct, 24 -
Телефонный Бизнес Nokia Продан Msft
19 Oct, 24