Проверка автокорреляции значений рыночных тенденций

Что такое автокорреляция и как она рассчитывается я уже писал ранее. Хочется добавить лишь следующее. Во-первых, автокорреляция может быть линейной и нелинейной. Во-вторых, быстро убывающая автокорреляционная функция косвенно свидетельствует о стационарности ВР. И, в-третьих, значение корреляции – это случайное значение, так как получено по случайным данным, и, следовательно, мы можем и должны проверить значимость корреляции.

На практике широко распространён метод оценки автокорреляционной функции с помощью коэффициента линейной корреляции Пирсона, после чего значимость полученных оценок проверяют с помощью таблиц t-распределения (распределение Стьюдента). Все это так при одном существенном условии – если данные подчиняются нормальному распределению.

*Здесь я построил автокорреляционную функцию с использованием коэффициента линейной корреляции Пирсона, что с учетом отклонения от нормального закона распределения рыночных цен является не вполне корректным подходом, хотя и допустимым для величин, распределённых «приближенно» нормально.

В предыдущих экспериментах я показал, что ни значения рыночных цен, ни значения ВРТ не являются нормально распределенными случайными величинами.

Что же делать? Остается применять непараметрические методы оценки автокорреляционной функции. То есть методы, которые работают тогда, когда наше распределение отлично от нормального.

Прежде всего, на помощь приходит непараметрический коэффициент ранговой корреляции Спирмэна (есть и другие!).

В своем классическом варианте этот коэффициент рассчитывается по такому алгоритму:

  1. Берутся две выборки.
  2. Обе выборки ранжируются по правилу, которое я описал здесь.
  3. Рассчитываются разности между парами значений рангов Di.
  4. Вычисляется такая величина: rs=1-6*∑Di/(m*(m*m-1).

*Обе выборки содержат одинаковое количество значений m.

Вот скрипт на языке R для расчета rs для двух выборок xml и xm объёмом m:

xm<-x[(1+l):n]
 xml<-x[1:(n-l)]
 D<-rank(xml)-rank(xm)
 r<-c(r,1-6*sum(D^2)/(m*(m^2-1)))

Можно воспользоваться встроенной функцией оценки коэффициента корреляции Спирмэна. Тогда скрипт будет выглядеть так:

xm<-x[(1+l):n]
 xml<-x[1:(n-l)]
 r<-c(r,cor(xm,xml,method="spearman"))

Для построения автокорреляционной функции я написал такой скрипт:

#Загрузка котировок
 S<-getS(f)
 #Дифференцирование
 dS<-diff(S,1)
 #Получение ВРТ
 csgS<-getCSGS(dS)
 #Последние 1000 значений ВРТ
 x<-csgS[,1][1:1000]
 n<-length(x)
 r<-NULL
 for(l in 0:floor(10*log10(length(x))))
 {
 #Выборка длиной m
 xm<-x[(1+l):n]
 #Выборка с лагом l длиной m
 xml<-x[1:(n-l)]
 #Расчет корреляции
 r<-c(r,cor(xm,xml,method="spearman"))
 }
 plot(r,type="h",col="blue")
 abline(h=0,col="black")

В итоге получаем набор значений коэффициента для лага от 0 до 30. И построенный график автокорреляционной функции.

В качестве исходных данных я взял EUR/USD, GBP/JPY, AUD/CAD, построил по этим данным ВРТ и за тем автокорреляционные функции ВРТ.

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

ac1

Что интересно, так это то, что коэффициент корреляции весьма высок, боле 0.7!
Т.е., следует предположить, что линейная связь между значениями ВРТ существует. При этом не видно какой-либо цикличности. Также нельзя сказать по данным функциям, что ВРТ стационарны… хотя я и показал это ранее (1, 2, 3).

Существует ли на самом деле линейная связь?

Существует (подчеркну) несколько методов проверки значимости коэффициента корреляции Спирмэна. Каждый из них обладает различной точностью.

Выдвигается гипотеза H0: «Линейной связи нет».

Я выбрал такой способ проверки. При выборках (m≥10) вычисляется величина q=|rs|*sqrt(m-2/(1-rs*rs)), которая удачно аппроксимируется t-распределением (распределение Стьюдента) с m-2 степенями свободы.

Если q>tкр(1-α/2) для степеней свободы m-2 и уровня значимости α, то коэффициент корреляции значим и гипотеза H0 отклоняется.

Для моих ВРТ и уровня значимости α=0.05 все коэффициенты автокорреляционной функции значимы!

Это наглядно демонстрирует построенные мной графики:

uz3uz1uz2

Синий цвет – это значения коэффициентов автокорреляции для соответствующего ВРТ, а красный цвет – это критические значения.

Таким образом, я показал, что линейная связь (зависимость) между значениями ВРТ имеется. Это своего рода подсказка для построения МП. Она говорит о том, что мы вправе построить такую МП, где могут вполне обоснованно присутствовать линейные функции прогнозирования.

А что делать с нелинейной корреляцией? Ведь, по сути она также может иметь место. И даже быть больше, чем линейная. Этот вопрос я оставлю до поры до времени открытым. Правило «бритвы Оккамы» говорит о том, что не стоит плодить лишних сущностей. Для начала при создании МП поработаем с «линейной» концепцией. И уж если там будет провал, либо захочется улучшить точность… вот тогда и стоит вернуться обратно и исследовать нелинейную корреляцию.

А на сегодня достаточно.

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

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

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