Нулевая корреляция выборки вовсе не обозначает отсутствие линейной взаимосвязи - страница 39

 


Вот из коментов по ссылке от hrenfx 22.03.2011 00:43 понравилось:

корреляция есть! :)
это не значит, что одно — следствие другого.
но явления таки связаные.
(а дальше можно начинать придумывать объяснения )
но не в объяснениях суть.
суть в том, что в некоторой перспективе можно предсказать связь одного с другим. до некоторого момента. )
конечно, четкое понимание механизма связи позволит предсказать, когда связь закончится.
но…
но и просто постоянно анализируя корреляцию — можно предсказать, когда она закончится. )

 
Как у Грува : корреляция есть - она не может не есть))))))))))
 
Neutron:

Частично согласен, но далеко не со всем. Если вы желаете предметно поговорить на поднятую вами тему, вам надо будет прочесть сначала несколько моих постов, вскрывающих мое видение данной тематики. Очень много приходилось повторяться, поэтому делать этого уже не буду. Просто выслал вам две ссылки на мои посты в ЛС.

 
hrenfx

Добрый день! Наблюдаю за вашими темами, и заинтересовала ваша логика,

Появился вопрос - вы не пытались переписать индикатор корреляции из рецикла2 на мт5

 

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

 

Очевидно, прямая взаимосвязь есть. Да, она не очень сильна и очевидна, но при повышении цен на золото, ОИ фьючерса становиться выше, при понижении - ниже.

Чуть позже найдем коэффициенты корреляции между ценой золота и его ОИ. Но для начала рассмотрим самую распространенную формулу корреляции Пирсона:

 

Если внимательно присмотреться, то становиться понятным, что формула детрендезирует данные (x - x ср.), выравнивает волатильности по стандартному отклонению на всей выборки, а затем считает, сколько времени, оба ряда находились в одном и том же направлении. Очевидно, что для расчета требуются первые разности вида I(0), т.к. в случае I(1) нас ждет засада, ведь ряды, с которыми мы имеем дело, всегда положительные (цена всегда больше нуля), но об этом тоже чуть позже.

Корреляция по методу Пирсона: 0.02234314

Корреляция по методу Кендела: 0.002866038 

Корреляция по методу Спирмена: 0.002046104 

Т.е. фактически во всех случаях корреляции не выявлено. Но как же наш зоркий глаз? Неужели нам все это мерещиться? И взаимосвязь между золотом и Открытым интересом такая же как между импортом бананов из Марокко и уровнем рождаемости в стране?

Возможно, причина в запаздывании одного индикатора относительно другого. Лаги просто не совпадают. А вдруг ОИ сначала повышается, а только потом это делает золото? - О, тогда на этом можно было бы заработать:) Проверим идейку с помощью Кросскорреляционной функции:

 

 

Как-то неубедительно. Есть какие-то два значения, которые выделяются из выборки, в целом и здесь картина как будто связи нет, а потому запаздывание роли не играет.

Ладно. Давайте тогда попробуем рассчитать корреляцию на I(1) рядах. Кто сказал что этого делать ни в коем случае нельзя? Пусть будет завышение результата, - но лучше завышенный результат, чем никакой. Для этих целей проведен эксперимент, сгенерируем 100 BP и рассчитаем матрицу корреляций для них. Среднее значение будет показывать то, насколько оценка будет завышена, и просто при работе на I(1) рядах, будем это учитывать, или нет?

Вот скриптик на R, который все это делает:

#
# corexp - эксперимент выявляющий особенности корреляционных функций при работе с I(1) рядами
# exp - количество экспериментов
# lenght - длинна каждой серии
# cortype - тип корреляции (pearson - КК Пирсона, kendall - КК Кендалла, spearman - КК Спирмана)
# retrange - Истина, если требуется сгенерировать I(1) ряды
#
corexp <- function(exp = 10, lenght = 1000, cortype = 'pearson', retrange = TRUE)
{
   bp <- matrix(ncol = exp, nrow = lenght)
   for(i in 1:exp)
   {
      bp[,i] <- rnorm(lenght, mean = 0.000117, sd = 0.0048)
      if(retrange == FALSE)
            bp[,i] <- cumsum(bp[,i])
   }
   #Рассчитываем матрицу корреляций
   mcor <- matrix(ncol=exp, nrow=exp)
   for(k in 1:exp)
   {
      for(i in 1:exp)
      {
         mcor[k,i] <- cor(bp[,k], bp[,i], method = cortype)
      }
   }
   return(mcor)
}

# Статистика корреляций
# При желании считаем здесь все что угодно
corstat <- function(m)
{
   m[m == 1] <- NaN
   mean(m, na.rm = TRUE)
}

Собственно смотрим эту самую 'mean': 0.153359. Вроде неплохо, завышена на всего 15%. Но засада вдругом. Смотрим распределение матрицы корреляций:

 

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

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

2. Выбор конкретной реализации коэффициента корреляции ни на что принципиально не влияет. Ни один из трех распространенных коэффициентов так и не смог выявить взаимосвязь между золотом и его открытым интересом, хотя очевидно, что взаимосвязь такая имеется.

 
C-4:

Корреляция по методу Пирсона: 0.02234314

Корреляция по методу Кендела: 0.002866038 

Корреляция по методу Спирмена: 0.002046104 

А на исходные ряды можно взглянуть? Есть в экселе, например?
 
Исходные ряды не сохраняются. Вот одна из генераций в CSV формате.
Файлы:
bp.txt  2010 kb
 
C-4:
Исходные ряды не сохраняются. Вот одна из генераций в CSV формате.
Какой у вас исходный ряд данных по открытому интересу?
 
Вот данные по ОИ выравненные с ценой золота
Файлы:
gold_oi_2.txt  19 kb
 
Коэффициент корреляции = 0.766654