Аналізуємо дивні кореляції

кореляції

Нещодавно помітив у стрічці фейсбуку посилання на статтю з купою прикладів «дивних кореляцій» як на картинці. Першоджерело виявляється тут, і там таких прикладів штук 20. Вирішив по-практикуватися в статистиці і перевірити наскільки ці кореляції дивовижні насправді.

Зацікавлених прошу під кат.

Забираємо тренди

Якщо два показники постійно зростають, то в них буде позитивна кореляція, і в цьому немає нічого дивного. Кореляцію потрібно міряти за стаціонарними змінними. Щоб прибрати тренди, я побудував лінійну регресію від часу за кожним показником, вирахував з фактичних даних і перевірив кореляцію залишків.

У деяких випадках кореляція сильно знизилася:

дивні

В інших – нічого не змінилося:

дивні

Значить має бути ще щось!

Яка взагалі можливість отримати таку кореляцію випадково?

Ось тут ми візьмемося за формули! У мене вийшло, що в середньому у цих змінних по 11 точок та після корекції на тренди середня кореляція в районі 70%. Знаючи кореляцію та кількість точок можна отримати змінну, яка розподілена як t-Стьюдента з числом ступенів свободи n-2:

Отримуємо t = 2.98 і можливість отримати таку кореляцію при незалежних змінних - близько 0.77%. Отримана цифра досить вражаюча, але питання не закрите!

До чого тут феномен близнюків?

Імовірність 0.77% здається занадто низькою, щоб вірити у випадковий збіг, але інтуїція тут помиляється. Ця ситуація схожа на відомий парадокс днів народження

Імовірність, що дві людини народилися в один день, дорівнює 1/365. Але серед усього 23 людей з 50% ймовірністю знайдеться пара народжених одного дня. Так відбувається, тому що нам не важливо які саме двалюдину це будуть, а серед 23 осіб можна скласти безліч пар.

По ж саме відбувається і з кореляцією різних показників, якщо не важливо, які з них корелюватимуть. Дві випадкові змінні будуть сильно корелювати в одній спробі з 65. Я множу ймовірність на 2, тому що кореляція нижче -70% теж нас цікавить.

Але якщо взяти лише 9 випадкових змінних (по 11 точок у кожній), то з ймовірністю 50% там буде кореляція понад 70% або менше – 70%

Хардкорна конфа за С++. Ми запрошуємо лише профі.