Критерий Андерсона-Дарлинга. А «нормален» ли рынок?

Сегодня в проверю гипотезу о том, что приращения рыночных цен распределены по нормальному закону. Для этого я буду использовать критерия Андерсона-Дарлинга.

Первый раз, когда я решил проверить гипотезу случайного блуждания Л. Башелье, применительно к рынку, утверждающую, что приращения логарифмов цен распределены по нормальному закону, то воспользовался сравнением двух графиков эмпирических частот, построенных для нормального распределения и реального распределения приращений логарифмов цен.

Анализ показал, что приращения логарифмов цен распределены не по нормальному закону. Другой раз я применил достаточно мощный критерий Лиллиефорса для проверки этой гипотезы. И также не нашел подтверждение «нормальности».

Сегодня в последний раз я проверю данную гипотезу с использованием критерия Андерсона-Дарлинга. Если «нормальность» рынка не подтвердиться, приму это за факт и буду думать, что делать дальше.

И так, критерий или тест Андерсона–Дарлинга основан на вычислении такой величины:

A=-n-(1/n)*∑ [2i-1]*[ln(pi)+ln(1-pn-i+1)]   (1).

Здесь сумма ведется по i=1,…,n, а pi =Ф([xi-xср]/σx) – значение функции распределения (функция Лапласа) стандартной нормальной случайной величины (это той у которой математическое ожидание 0, а дисперсия 1) в «точке» xi, которую мы дополнительно центрируем и нормируем с использованием среднего значения xср и дисперсии σx ВР={x1,…,xn}, где все элементы упорядочены по возрастанию и не повторяются.

Скрипт для расчета этой величины на языке R будет таким:

n<-1000
 x<-rnorm(n)
 x<-sort(x) #сортируем по возрастанию
 x<-unique(x) #исключаем одинаковые значения
 x<-(x-mean(x))/sd(x) #центрируем и нормируем
 #вычисляем логарифмы значений функции распределения
 #для упорядоченных по возрастанию значений x:
 xh<-log(pnorm(x))
 #вычисляем логарифмы единицы минус значения функции
 #распределения для упорядоченных по
 #убыванию значений x (это второе слагаемое в сумме у формулы):
 xl<-log(1-pnorm(sort(x,decreasing = TRUE)))
 #сам показатель:
 A=-n-mean((2*(1:n)-1)*(xh+xl))
 #вывод значения:
 print(A)

Теперь, чтобы сделать выводы при проверке какого-либо ВР на нормальность, необходимо рассчитать критические значения для уровня значимости α=0.05.

Воспользуемся методом статистического моделирования и рассчитаем Aкр для n=4250 значений (это примерно столько, сколько будут содержать в себе проверяемые ВР рыночных цен).

У меня получилось, что в этом случае Aкр равно 0.7492. Вот скрипт, по которому я это рассчитал:

A<-NULL
 n<-4250
 for(i in 1:10000)
 {
 x<-rnorm(n)x<-sort(x) #сортируем по возрастанию
 x<-unique(x) #исключаем одинаковые значения
 x<-(x-mean(x))/sd(x) #центрируем и нормируем
 #вычисляем логарифмы значений функции
 #распределения для упорядоченных по
 #возрастанию значений x:
 xh<-log(pnorm(x))
 #вычисляем логарифмы единицы минус значения
 #функции распределения для упорядоченных по
 #убыванию значений x
 #(второе слагаемое в сумме у формулы)
 xl<-log(1-pnorm(sort(x,decreasing = TRUE)))
 A=c(A,-n-mean((2*(1:n)-1)*(xh+xl)))#сам показатель
 }
 A<-sort(A)
 Au<-unique(A)
 ef=cumsum(tabulate(match(A,Au)))/length(A)
 for(i in 1:length(ef))
 {
 if (ef[i]>=0.95)
 {
 print(A[i]);
 break;
 }
 }
 plot(x=Au,y=ef,type='l',col="blue",xlab="a",ylab="F(a)")

Вот полученный график этой статистики: 

adpВообще говоря, в 1986 году D’Agostino при проверке на нормальность распределения величины с неизвестной дисперсией и математическим ожиданием предложил такую поправку:

A*=A*(1+0.75/n+2.25/n2)     (2)

Это считается более точным, при этом Aкр=0.752 для α=0.05.

В пакете расширения nortest есть команда ad.test(x) – которая вычисляет значения показателя Андерсона-Дарлинга с учетом поправки (2). Этой командой я буду пользоваться в дальнейшем.

И так, теперь есть всё, чтобы проверить гипотезу H0: приращения логарифмов рыночных цен распределены нормально. Проверим гипотезу для EUR/USD, GBP/JPY, AUD/CAD.

Проверяем так:
 #Находим приращение логарифмов цен
 S<-log(S[-1]/S[-length(S)])
 S<-(S-mean(S))/sd(S)
 #центрируем и нормируем
 A<-ad.test(S)
 #тестируем на нормальность
 print(A)

Вот, что получилось:

EUR/USD: A=72.05, p-value < 2.2 x 10^-16, Aкр=0.752
GBP/JPY: A=72.141, p-value < 2.2 x 10^-16, Aкр=0.752
AUD/CAD: A=28.977, p-value < 2.2 x 10^-16, Aкр=0.752

Что-то совсем значения А получились большими… Гипотезу следует отклонить….

И так, я трижды показал, что логарифмы приращения рыночных цен не распределены нормально, хотя и очень похоже на то внешне. Понятно, что модель Л. Башелье, является упрощением реальных процессов, но… похоже, что она не годится для тестирования прогнозных моделей и торговых систем. Функция распределения логарифмов рыночных цен – это что-то явно «ненормальное». А значит все методы математической статистики, которые хорошо работают, теоретически и практически исследованы для нормальных распределений, нельзя применять к валютным и фондовым рынкам! Ну, хотя бы самый простой пример, – нельзя рассчитать доверительные интервалы прогноза по известным формулам… Что теперь с этим делать? Нужно обдумать, куда двигаться дальше…

Похожие статьи:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *