Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как считается корреляции событий? 
:(
    Опции темы
victor79
Дата 9.3.2014, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



пусть будет множество замеров - 1000 штук, из них в 700 разах возникало событие А, в 400 разах возникало событие Б. В 300 разах было одновременное возникновение А и Б.

Исходя из этого, всего замеров где были А или Б:
Код

объед_а_б = колич_а + колич_б - пересеч_а_б

всего замеров без А и без Б было:
Код

прочие_без_а_и_б = всего - объед_а_б


Теперь к формуле корреляции, как я ее понял в приведении к этим данным.
Я так понял, что значениями для параметров Х и У формулы корреляции  здесь будут 1 или 0 - событие в замере есть или события нету.

Код

// Делимое: Сумма( (Х - СредХ)*(У - СредУ) )

ср_а = колич_а / всего
ср_б = колич_б / всего

Делимое =
    (0 - ср_а) * (0 - ср_б) * прочие_без_а_и_б +
    (1 - ср_а) * (0 - ср_б) * (а - пересеч_а_б) +
    (0 - ср_а) * (1 - ср_б) * (б - пересеч_а_б) +
    (1 - ср_а) * (1 - ср_б) * пересеч_а_б

// Делитель: Корень(Сумма( (Х - СредХ)^2 * (У - СредУ)^2 ) )

су_кв_а =
    (0 - ср_а) * (0 - ср_а) * (всего - а) +
    (1 - ср_а) * (1 - ср_а) * а
    
су_кв_б =
    (0 - ср_б) * (0 - ср_б) * (всего - б) +
    (1 - ср_б) * (1 - ср_б) * б;
    
Делитель = корень( су_кв_а * су_кв_б )

Результат = Делимое / Делитель


И в этом я не все понимаю. В моем представлении, корреляция событий А и Б не должна зависить от объема всей выборки, а только от относительности друг с другом.
По этой формуле для цифр:
Всего = 1000, А=700, Б=700, ПересечАБ = 700 - результат единица - как нужно,
а для случая:
Всего = 1000, А=400, Б=400, ПересечАБ = 0 - результат -0.669, но мне казалось д.б. минус один - т.к. не пересекаемые события.

Зачем мне это нужно. У меня есть база данных. Я хочу попробовать замерять зависимости свойств между собой у объектов - для поиска ошибок. Так же там есть текстовые поля, которые распарсивая буду пытаться выводить новые свойства. Данных много, и ручная обработка не представляется возможной.





Это сообщение отредактировал(а) victor79 - 9.3.2014, 22:19
PM MAIL WWW   Вверх
Mirkes
Дата 9.3.2014, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



Цитата(victor79 @  9.3.2014,  22:15 Найти цитируемый пост)
Всего = 1000, А=400, Б=400, ПересечАБ = 0 - результат -0.669, но мне казалось д.б. минус один - т.к. не пересекаемые события.

Конечно не должно быть -1. У Вас небольшая путаница в понятия. Есть случайная величина А и у каждого испытания один из двух исходов А или не А. То же самое со второй случайной величиной В или не В. В результате имеем 4 состояния. Причем коррелировать могут как события А и В так и события не А и не В, А и не В и т.д. Корреляция СЛУЧАЙНЫХ ВЕЛИЧИН а не событий!
В вашем примере 400 А и не В, 400 не А и В, 200 не А и не В. последние 200 вам всю картину и портят.
Если вы собираетесь работать с бинарными признаками, то наверное лучше использовать корреляцию по Хэммингу а не по Пирсону, которую вы описали. Она и считается проще и, наверное, более соответствует Вашим ожиданиям.


--------------------
Mirkes
PM MAIL   Вверх
Фантом
Дата 10.3.2014, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Цитата(victor79 @  9.3.2014,  23:15 Найти цитируемый пост)
Всего = 1000, А=400, Б=400, ПересечАБ = 0 - результат -0.669, но мне казалось д.б. минус один - т.к. не пересекаемые события.

Нет. "Минус один" получился бы в ситуации, когда отсутствие одного из событий гарантировало бы наличие другого. А у Вас из 1000 замеров в 200 случаях это неверно, поэтому антикорреляция есть, но не абсолютная.
PM   Вверх
victor79
Дата 10.3.2014, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



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

В интернете я не нашел "корреляции Хэмминга", есть растояние Хэмминга, которое есть количество различий, но это то не то. Может быть Вы подразумевали какую то другую корреляцию?

Это сообщение отредактировал(а) victor79 - 10.3.2014, 00:44
PM MAIL WWW   Вверх
Mirkes
Дата 10.3.2014, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



С литературой по корреляции Хемминга паршиво даже на английском smile.
Нормализованный коэффициент корреляции Хэмминга считается по простой формуле: (Число совпавших символов - Число не совпавших символов)/(общее число символов в строке). Меняется от -1 до 1. В формуле использовал слово "символ" поскольку расстояние Хэмминга и связанный с ним коэффициент корреляции исходно определялись для строк символов. В вашем случае формула примет вид:
(Число одновременно произошедших событий А и В + Число одновременно произошедших событий не А и не В - Число одновременно произошедших событий А и не В - Число одновременно произошедших событий не А и В)/(Общее число событий)

Цитата(victor79 @  9.3.2014,  22:15 Найти цитируемый пост)
Всего = 1000, А=700, Б=700, ПересечАБ = 700 - результат единица - как нужно,

имеем (700+300-0-0)/1000=1

Цитата(victor79 @  9.3.2014,  22:15 Найти цитируемый пост)
Всего = 1000, А=400, Б=400, ПересечАБ = 0 - результат -0.669, но мне казалось д.б. минус один - т.к. не пересекаемые события.

имеем (200-400-400)/1000=-0.6, как и ожидалось!

Еще раз подчеркну, что отсутствие события А означает наличие события не А! Для случайной величины Х в Вашем примере пространство исходов содержит два элемента А и не А.
А вот если Вы рассмотрите пример Всего = 1000, А=500, Б=500, ПересечАБ = 0, то получите (0+0-500-500)/1000=-1


--------------------
Mirkes
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0417 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.