Art of DS

Вигляд

Палітра
Тема
Доступ $20 одноразово
Увійти або створити акаунт

Вхід до Art of DSСтворіть акаунт Art of DS

Ми надішлемо на пошту посилання й шестизначний код. Увійти можна будь-яким із них; пароля немає.Введіть свою пошту. Ми надішлемо посилання й шестизначний код, щоб її підтвердити, — пароль не потрібен. Акаунт безкоштовний.

  • Ви повернетеся на цю сторінку, туди, де зупинилися.
  • Уже маєте акаунт? З тією самою адресою ви просто ввійдете.

Продовжуючи, ви приймаєте Умови та Політику конфіденційності.

Ваш акаунт

Безкоштовний акаунтДоступ назавжди

складність 2/5 Безкоштовно

Correlation

Визначення

Одне число про те, наскільки щільно дві змінні лягають на пряму. Воно не каже нічого про нахил тієї прямої, а близьке до нуля не означає, що вони не пов’язані.

Формула
r=1n∑(xi−xˉσx)(yi−yˉσy)r = \frac{1}{n}\sum \left(\frac{x_i - \bar{x}}{\sigma_x}\right)\left(\frac{y_i - \bar{y}}{\sigma_y}\right)

Інтуїція

Кореляція стискає зв’язок між двома змінними в одне число між −1 і 1. Це стиснення і є всією суттю, і всією проблемою: одне число не може нести форму зв’язку, а те, яке воно несе, відповідає на вужче питання, ніж припускає більшість читачів.

Питання, на яке вона відповідає, — наскільки щільно ці точки лягають на пряму. Не наскільки сильно вони пов’язані і не наскільки змінюється y, коли змінюється x. Це три різні питання, і кореляція відповідає лише на перше [1, §7.6].

Формальне визначення

Візьміть кожну змінну, відніміть її середнє й поділіть на її стандартне відхилення — те, що [1, §7.3] називає переведенням у стандартні оцінки. Помножте два стандартизовані ряди поточково й візьміть середнє, як каже формула вгорі сторінки.

Саме з кроку стандартизації й походить тлумачення. Сама лише коваріація, яку [1, §7.4] визначає як середній добуток двох відхилень, має одиниці x, помножені на одиниці y, тож її не можна порівнювати між парами змінних. Ділення на обидва стандартні відхилення прибирає одиниці й притискає результат у [−1, 1].

Воно прибирає ще дещо, і це перший сюрприз.

Як це працює

Оскільки обидві змінні стандартизовано, будь-яке масштабування кожної з них скорочується. Наслідок у тому, що кореляція не пов’язана з нахилом [1, §7.6]. Зв’язок, у якому y росте на одну десятитисячну на одиницю x, і зв’язок, у якому він росте на десять тисяч, мають однакову кореляцію, якщо обидва однаково щільні.

За це варто триматися, бо «сильно корельовані» часто чують як «великий ефект». Кореляція 0.99 між двома змінними каже, що точки лежать близько до прямої. Вона не каже геть нічого про те, чи зрушення x на одну одиницю рухає y сильно, чи на щось, не варте вимірювання.

Де застосовується

Як перше просіювання по багатьох парах змінних, де матриця кореляцій дешева й показує, які зв’язки варто намалювати. Як вхід для відбору ознак, де сильно корельовані ознаки сигналять про надлишковість. І як основа R²: у простій лінійній регресії це рівно квадрат кореляції — тож r 0.7 відповідає 49% дисперсії, а не 70% чогось.

[2, §1.3.3.26] перелічує питання, на які відповідає діаграма розсіювання, і сам цей перелік доводить суть: чи пов’язані X і Y та чи пов’язані X і Y лінійно — це два окремі питання в ньому. Кореляція відповідає лише на друге.

Чому і коли

Беріть її, коли маєте підстави чекати лінійного зв’язку, коли обидві змінні приблизно симетричні й коли ви й так подивитеся на діаграму розсіювання. Беріть натомість рангову кореляцію, коли зв’язок монотонний, але викривлений, або коли ймовірні викиди.

Не беріть її саму. Це число є підсумком картинки, і підсумок вірний лише для однієї форми картинки.

Практичний приклад

Чотири демонстрації, усі в scripts/correlation.py. Перша перевіряє твердження про нахил.

Python 13 рядків Показати код Сховати код
import numpy as np


def pearson(x, y):
    """Standard scores, then the mean of their products (Think Stats 7.4-7.5)."""
    zx = (x - x.mean()) / x.std()
    zy = (y - y.mean()) / y.std()
    return float((zx * zy).mean())


x = np.linspace(-3, 3, 400)
for m in (0.0001, 0.01, 1.0, 10000.0):
    print(f"{'m * x':>14}{m:>12g}{pearson(x, m * x):>12.6f}")

Вивід

  the same relationship at four steepnesses
           y =       slope           r
         m * x      0.0001    1.000000
         m * x        0.01    1.000000
         m * x           1    1.000000
         m * x       10000    1.000000

Вісім порядків величини нахилу, одне значення r.

Нульова кореляція, досконала залежність

[1, §7.6] перестерігає, що кореляція біля нуля не дає права робити висновок про відсутність зв’язку — r Пірсона міряє лише лінійні зв’язки, а там, де зв’язок нелінійний, вона недооцінює силу. Доведено до краю:

  y is an exact function of x in every row below
          relationship           r    R^2 of the right fit
        y = x (linear)    1.000000                1.000000
   y = x^2 (symmetric)   -0.000000                1.000000
               y = |x|   -0.000000                0.937506
         y = cos(pi x)    0.000000                0.893510

У кожному рядку y визначено через x точно — у цій таблиці немає жодного шуму. Три з чотирьох показують кореляцію нуль. Змінна може бути досконалою функцією іншої й не корелювати з нею зовсім.

Той самий підсумок, чотири різні картинки

four datasets that agree on every number belowIa line with scatterIIa clean curveIIIa line and one bad pointIVone point decides itmean x 9.00 · var x 11.00 · mean y 7.50 · var y 4.12 · r 0.816 · y = 3.00 + 0.50x
Anscombe published these four datasets in 1973. Every summary a correlation analysis would report is the same for all of them: both means, both variances, the correlation to three decimals, and the fitted line, which is the dashed line drawn identically across all four panels. What they do not share is any of the structure a reader cares about. The first is a linear relationship with scatter, and is the only one the summary describes honestly. The second is a clean parabola — a perfect, deterministic relationship that the correlation reports as 0.816 because it is not a straight one. The third is an exact line with a single contaminated point, which drags the fit away from every other observation. The fourth has no variation in x at all apart from one observation, so a single point is deciding both the slope and the correlation. The statistics in the strip below are computed in the script rather than quoted, and they agree to the digit.
  Anscombe's quartet: four datasets, one summary
   set    mean x     var x    mean y     var y         r           fitted line
     I      9.00     11.00     7.501     4.127     0.816      y = 3.00 + 0.50x
    II      9.00     11.00     7.501     4.128     0.816      y = 3.00 + 0.50x
   III      9.00     11.00     7.500     4.123     0.816      y = 3.00 + 0.50x
    IV      9.00     11.00     7.501     4.123     0.817      y = 3.00 + 0.50x

Анскомб збудував їх у 1973 році, і вони лишаються найощаднішим аргументом на користь того, щоб малювати дані. Кожне число, яке подає кореляційний аналіз, збігається на всіх чотирьох; лінійним зв’язком із розкидом є лише перший. Другий — чиста парабола, третій — точна пряма з однією зіпсованою точкою, а четвертий не містить жодної варіації в x, крім одного-єдиного спостереження — тож одна точка задає і нахил, і кореляцію.

Що відновлюють ранги

  Pearson against Spearman
              relationship     Pearson    Spearman
      y = exp(x), monotone      0.9012      1.0000
      y = log(x), monotone      0.9248      1.0000
    y = x with one outlier     -0.1792      0.8891
    y = x^2 on symmetric x     -0.0000     -0.0022

Заміна значень їхніми рангами — це друге перетворення, яке описує [1, §7.3], — виправляє перші два рядки точно: монотонний зв’язок є досконало монотонним у рангах, хоч якої він форми.

Третій рядок — той, який варто запам’ятати. П’ятдесят точок, що лежать точно на прямій, плюс один викид, і Пірсон подає −0.18 — не просто ослаблену, а перевернуту за знаком. Спірмен подає 0.89, бо ранг не може бути екстремальним: викид є просто найбільшим значенням, а не значенням, у сорок разів більшим, ніж мало б бути.

Останній рядок є межею цього трюку. Ранги не рятують зв’язку, який не є монотонним.

Типові помилки

Читати r як розмір ефекту. Кореляція за побудовою не залежить від масштабу, тож вона не може сказати вам, наскільки рухається y. Якщо питання саме в цьому, підженіть пряму й подайте нахил у його одиницях [1, §7.6].

Читати r біля нуля як незалежність. Це дає право лише на один висновок: немає лінійного зв’язку. У таблиці вище є три контрприклади, де залежність точна [1, §7.6].

Підносити його до квадрата в голові. r = 0.7 не є «на 70 відсотків пов’язані». Його квадрат є часткою поясненої дисперсії, а 0.49 відчувається інакше, ніж 0.7 [3, §10.5].

Дозволяти одній точці вирішувати. Один викид зрушив кореляцію з +1 до −0.18 вище [1, §7.7]. Завжди малюйте, перш ніж вірити [1, §7.6].

Брати її за свідчення причинності. Кореляція симетрична, а причинність — ні, і третя змінна може породити весь зв’язок [1, §7.8] — див. конфаундинг, де та сама регресія на тому самому ґатунку даних правильна в одному світі й дуже неправильна в іншому.

Ще не прочитаноДочитайте сторінку до кінця — і вона вважатиметься прочитаною.

Зберігайте свій прогресЗ доступом назавжди кожна дочитана сторінка позначається, і ви продовжуєте з того місця, де зупинилися, на всіх своїх пристроях.

Відкрити доступ

Перевірте себе

3 запитання

Кожну відповідь пояснено: який розділ вона перевіряє і з якого джерела.

Джерела

  1. Allen B. Downey. Think Stats — 7. Relationships between variablesbook · звірено 2026-09-20https://greenteapress.com/thinkstats2/html/thinkstats2008.html
  2. NIST/SEMATECH. e-Handbook of Statistical Methods — 1.3.3.26 Scatter Plotstandard · звірено 2026-09-20https://www.itl.nist.gov/div898/handbook/eda/section3/scatterp.htm
  3. Allen B. Downey. Think Stats — 10. Linear least squaresbook · звірено 2026-10-04https://greenteapress.com/thinkstats2/html/thinkstats2011.html

Маєте промокод?

Код зі знижкою 100% одразу відкриває все. Менша знижка віднімається від ціни у вікні оплати: введіть там той самий код.

Написати в підтримку

Питання, проблема з доступом, повернення коштів? Напишіть нам, і ми відповімо листом.

Про що це?

Адресу використаємо лише для відповіді вам.

Повідомлення надіслано

Дякуємо. Відповімо листом на адресу, яку ви вказали.

Або напишіть нам напряму

support@artofds.com

Повідомлення надіслано Дякуємо. Відповімо листом на адресу, яку ви вказали.

Перевірте адресу пошти: вона потрібна, щоб відповісти.

Це наша адреса. Вкажіть свою, щоб відповідь дійшла до вас.

На цю адресу не можна надіслати лист. Перевірте, чи немає помилки.

Напишіть трохи більше: щонайменше 10 символів.

Забагато повідомлень за короткий час. Спробуйте за кілька хвилин.

Не вдалося надіслати повідомлення. Напишіть нам напряму: support@artofds.com