В предыдущих параграфах мы познакомились со случайными величинами и научились описывать их поведение через распределения, математическое ожидание и дисперсию. Но в реальных прикладных задачах мы редко работаем с одной случайной величиной.
Обычно мы имеем дело с несколькими характеристиками, которые могут быть зависимыми. Например:
- Количество заказов и выручка за день.
- Время, проведённое пользователем на сайте, и вероятность клика.
- Возраст клиента и средний чек.
Такие случайные величины необходимо анализировать совместно, чтобы улавливать и количественно описывать связи между ними. Для этого мы рассмотрим совместное распределение случайных величин.
Дискретный случай
Если и — дискретные случайные величины, то их совместное распределение задаётся таблицей совместного распределения:
Например, пусть — количество просмотренных пользователем страниц (, или ), а показывает совершил ли пользователь покупку: , если не совершил, и , если совершил. Рассмотрим таблицу совместного распределения и :
|
Y=0 |
Y=1 |
|
|
X=1 |
0.4 |
0.1 |
|
X=2 |
0.15 |
0.15 |
|
X=3 |
0.05 |
0.15 |
Из этой таблицы видно, как связаны значения и . Например, мы можем вычислить следующие вероятности:
Отсюда мы можем сделать вывод, что пользователи, посетившие большее число страниц, гораздо более склонны сделать покупку.
С помощью этой таблицы также несложно найти маргинальные распределения, то есть распределения каждой случайной величины по отдельности — для этого надо просуммировать значения по строкам или по столбцам:
Например, вероятность того, что принимает значение , равна:
Непрерывный случай
Пусть мы снова анализируем пользовательское поведение, но теперь нас интересуют следующие случайные величины:
- — время, проведенное пользователем на сайте.
- — сумма покупок.
Для простоты рассмотрим только покупателей, которые совершили покупку. Тогда обе случайные величины являются непрерывными. Как и в дискретном случае, нас будет интересовать их совместное распределение. Теперь давайте более формально.
Если и — непрерывные случайные величины, то их совместное распределение описывается совместной плотностью распределения , а вероятности событий можно вычислить по следующей формуле:
Для получения маргинальной плотности используется формула:
И аналогично для . Эти формулы — непрерывный аналог суммирования по строкам или столбцам. В нашем примере они позволяют определить, как распределены время пребывания на сайте и сумма покупок для всех пользователей.
Пример
Давайте разберём всё на конкретных числах. Предположим, что совместная плотность времени (в часах) и суммы покупки (в сотнях долларов) для нового пользователя задаётся формулой:
💡Примечание: константа здесь уже подобрана так, чтобы интеграл от плотности был равен :
Это обязательное условие для любой функции плотности вероятности.
Шаг 1. Найдём маргинальную плотность для времени .
Чтобы понять, как распределено только время на сайте (без учёта суммы покупки), проинтегрируем совместную плотность по всем возможным значениям :
Полученная плотность показывает, что вероятность провести на сайте больше времени выше, чем вероятность провести на нём меньше времени (так как функция линейно возрастает). Другими словами, плотность линейно возрастает, значит, большие значения встречаются чаще малых.
Шаг 2. Вычислим конкретную вероятность.
Какова вероятность того, что пользователь проведёт на сайте меньше получаса () и потратит меньше 50 долларов ()? Для этого нужно взять двойной интеграл по соответствующей области:
Сначала интегрируем по :
Теперь результат интегрируем по :
Таким образом, вероятность такого события равна 12.5%. Этот пример показывает, что, зная совместное распределение, мы можем анализировать поведение двух величин одновременно.
Независимость случайных величин
Совместное распределение позволяет описывать, как ведут себя две случайные величины одновременно. Но во многих случаях нам важно понять: влияют ли они друг на друга вообще? Или их поведение полностью независимо?
Для контраста возьмём два примера.
- — количество очков, выпавшее на игральном кубике, а — температура воздуха за окном. Интуитивно связи нет, знание ничего не говорит о .
- — цвет автомобиля; — число ДТП за год. Кажется, что связь должна отсутствовать, но не исключено, что есть косвенные факторы и их стоит проверить: вдруг более рискованные водители предпочитают автомобили красного цвета или зимой больше аварий с авто белого цвета?
Сейчас сформулируем, как именно проверяют независимость.
Две случайные величины и называются независимыми, если для любых события и независимы.
То есть:
Однако на практике такое условие оказывается не очень удобным, поэтому используют следующее эквивалентное условие.
Для дискретных случайных величин:
Для непрерывных случайных величин:
Одним из важных свойств независимых случайных величин и является то, что
Это свойство означает, что для независимых величин среднее значение их произведения равно произведению их средних значений: при независимости «высокие» или «низкие» значения одной величины не сдвигают среднее другой, поэтому среднее от произведения распадается в произведение средних.
Это очень мощный инструмент, который сильно упрощает многие вычисления в теории вероятностей и статистике. Чтобы понять, почему эта формула верна, нужно взглянуть на общие правила вычисления матожидания от функции двух случайных величин.
Матожидание функций от нескольких случайных величин
Как и для функций от одной случайной величины, можно не находить распределение случайной величины для того, чтобы найти её матожидание. В общем случае матожидание можно найти как
для дискретного совместного распределения и
для непрерывных случайных величин. Этими простыми формулами пользуются повсеместно, даже не задумываясь об этом.
Кстати, с их помощью просто доказывается указанное выше свойство матожидания — сумма и интеграл распадаются в произведение отдельных сумм и интегралов по и по .
Теперь, когда мы разобрались с теорией, посмотрим, как это свойство работает на практике.
Пример
Пусть каждый месяц стоимость акций меняется случайным образом, причём в среднем увеличивается на 5%. На сколько процентов в среднем будет меняться стоимость акций за два месяца, если изменения за месяц не зависят друг от друга?
Пусть случайные величины и описывают, во сколько раз изменится стоимость акций за первый и второй месяц соответственно. Тогда за два месяца она изменится в раз. Так как и независимы:
То есть ожидаемое изменение за два месяца .
Таким образом, независимость случайных величин означает полное отсутствие взаимного влияния: знание значения одной случайной величины не даёт никакой информации о другой. Это свойство упрощает вычисления и позволяет разложить сложные задачи на более простые, как в примере выше.
Ковариация
Мы только что обсудили, что означает полная независимость случайных величин. Однако на практике такие ситуации редки. Чаще всего между величинами существует какая-то зависимость — и нам важно не только установить её наличие, но и измерить её силу и направление.
Ковариация — это один из способов количественно описать, как две случайные величины соотносятся между собой. В частности, она позволяет понять, растут ли значения одной величины вместе с другой, убывают или вовсе не связаны.
Например, если мы рассмотрим случайные величины:
- Положительная ковариация (): Рост температуры воздуха () и объём продаж мороженого (). Когда одно растёт, другое тоже имеет тенденцию к росту.
- Отрицательная ковариация (): Количество пройденных километров на автомобиле () и остаток бензина в баке (). Когда одно растёт, другое закономерно уменьшается.
- Нулевая ковариация (): Размер обуви человека () и его словарный запас (). Между этими величинами нет очевидной линейной связи.
💡Важно: в реальных данных возможны скрытые факторы (сезонность, состав выборки и т. п.).
Например, температура и продажи мороженого растут летом; если смешать взрослую и детскую выборки, «размер обуви — словарный запас» может ложно коррелировать через возраст.
И помним: не означает независимость, это лишь отсутствие линейной связи.
Формально ковариацию двух случайных величин и определяют следующим образом:
Чтобы разобраться с этим понятием, вначале давайте поймём, какими свойствами оно обладает. Несложно проверить, что ковариация линейна по каждому из аргументов и не меняется от увеличения их на число
Также можно заметить, что:
То есть ковариация является некоторым билинейным обобщением дисперсии на случай нескольких случайных величин.
💡Можно думать про ковариацию как про аналог обычного скалярного произведения в трёхмерном пространстве для случайных величин с конечной дисперсией вместо векторов. Аналогично дисперсия — аналог квадрата длины вектора.
Ровно как для векторов, чем больше , тем больше похожи друг на друга случайные величины и . А если наоборот, принимает большое отрицательное значение, это означает, что похожа на . Дальше мы обсудим подробнее точный смысл слова «похожа» в этом контексте.
Но прежде чем двигаться дальше, рассмотрим один важный частный случай. Оказывается, если случайные величины независимы, то их ковариация всегда равна нулю. Это легко следует из определения ковариации и свойства математического ожидания произведения независимых величин:
Однако обратное утверждение неверно: нулевая ковариация не гарантирует независимость. Она лишь указывает, что между и нет линейной связи, но они всё ещё могут быть связаны нелинейно.
Допустим, — среднесуточная температура, — число визитов в шиномонтаж для смены резины. Практика показывает: когда температура переходит через , многие «переобуваются», и резко растёт. Когда же долго жарко или долго холодно, низкое.
Итого получается нелинейная зависимость от с пиком около (примерно ∩-образная кривая, то есть наблюдается параболическая зависимость). Если распределение температур за год симметрично вокруг этого уровня, то положительные и отрицательные отклонения дают в среднем компенсирующиеся вклады, и , хотя зависимость очевидно есть. Просто она нелинейная. Зная температуру, мы можем предсказать высокий спрос именно в периоды перехода через , а не в устойчивую жару/стужу.
💡Та же идея работает и для других колоколообразных зависимостей (например, возраст — зарплата/производительность): сильная, но нелинейная связь может давать ковариацию, близкую к нулю. Независимости при этом нет.
Строгий пример
Рассмотрим дискретную случайную величину , принимающую значения , и с равными вероятностями:
Зададим другую величину как . Тогда также дискретна и принимает значения и с вероятностями и соответственно.
Несложно заметить, что полностью определяется через , то есть величины явно зависимы. Теперь вычислим ковариацию.
Посчитаем:
- ,
- ,
- .
Тогда:
То есть несмотря на явную зависимость случайных величин, ковариация оказалась равна нулю. Это значит, что между ними отсутствует линейная связь, хотя зависимость есть — нелинейная.
Ковариация возникает не только при изучении связи между переменными, но и в более прикладном контексте — при вычислении дисперсии суммы двух случайных величин:
Это выражение показывает, как взаимосвязь между и влияет на общую изменчивость их суммы. Если ковариация положительная, то величины «колеблются в одну сторону», и суммарная дисперсия растёт. Если отрицательная — колебания компенсируют друг друга, и итоговая дисперсия может быть даже меньше суммы дисперсий.
Пример
Рассмотрим, например, обратный перевод. Одна модель переводит с русского на китайский, а вторая модель переводит обратно с китайского на русский. Пускай у нас дополнительно есть способ измерять лаконичность текста в любом языке, а и — то, насколько первая и вторая модели меняют лаконичность текста. При этом предположим, что модели аккуратные и в среднем лаконичность текста не меняют. Тогда естественной мерой качества является . Она показывает, насколько сильно в среднем меняется лаконичность.
Если вторая модель будет пытаться предсказать и скорректировать ошибки первой, то и . А если, наоборот, вторая модель будет только сильнее путаться на переводах с изменённой лаконичностью, то и .
Коэффициент корреляции
Основной проблемой ковариации является то, что у неё нет фиксированного масштаба: её численные значения зависят от единиц измерения величин и могут быть сложны для интерпретации.
Чтобы избавиться от этой проблемы и получить универсальную шкалу оценки линейной связи, вводится коэффициент корреляции — нормированная версия ковариации, всегда лежащая в интервале от до .
Доказательство
Для векторов справедливо неравенство Коши — Буняковского, которое утверждает, что:
Доказательство этого неравенства после замены скалярного произведения на ковариацию даёт:
Посмотрим теперь, как интерпретировать коэффициент корреляции.
- Если , то между и существует
положительная линейная связь. То есть , где . - Если — связь
отрицательная. То есть , где . - Если —
линейной зависимости нет(но может быть нелинейная, как мы видели выше).
Коэффициент корреляции можно интерпретировать как аналог косинуса угла между векторами для случайных величин.
Мы определили коэффициент корреляции через математическое ожидание и дисперсию случайных величин. В реальной работе с данными используют коэффициент корреляции Пирсона — это приближённая оценка теоретической корреляции, вычисляемая по данным. Он широко применяется для анализа связей между числовыми признаками и реализован в большинстве библиотек (pandas, numpy, scipy и др.).
Формально выборочный коэффициент корреляции Пирсона определяется так:
где:
- и — значения двух переменных
- и — их выборочные средние.
Эта формула — аналог , применённый к конечной выборке, и именно её чаще всего используют на практике. В числителе стоит оценка ковариации, умноженная на , а в знаменателе стоят корни из оценок дисперсий, умноженные на . Добавление этих множителей упрощает формулу и делает её более удобной для вычислений.
При построении регрессионной модели коэффициент корреляции используется на стадии первичного анализа данных. Высокая (по модулю) корреляция между признаком и целевой переменной может говорить о его предсказательной силе. Высокая корреляция между признаками может говорить об их избыточности и приводить к нестабильной оценке коэффициентов, например, в линейных моделях.
Для удобства восприятия коэффициенты корреляции всех признаков собирают в так называемую корреляционную матрицу. Её удобно вывести в виде тепловой карты, на которой красным отмечены значения, близкие к 1, и синим отмечены значения, близкие к -1.
Например, в задаче диагностирования болезни Альцгеймера часть признаков и целевая переменная дают следующую таблицу:

По ней видно, что характеристики “FunctionalAssessment” и “ADL” заметно связаны с целевой переменной “Diagnosis”, причем относительно небольшие по модулю значения корреляции от 0.3 до 0.4 на самом деле гораздо более значимы, если учесть, что целевая переменная принимает только значения и , а перечисленные признаки числовые.
Помимо корреляции Пирсона, полезны также и другие коэффициенты корреляции, измеряющие степень взаимосвязи по набору значений двух случайных величин. Например, коэффициент корреляции Спирмена, основанный на рангах значений. Он позволяет выявлять монотонные (в том числе и нелинейные) связи между переменными и является более устойчивым к выбросам, чем коэффициент корреляции Пирсона.
💡Связь между и называется монотонной, если при увеличении значения в целом не убывают (неубывающая) или не возрастают (невозрастающая).
Важно: монотонность не требует линейности. Кривая может быть изогнутой, ступенчатой и с плато, главное — порядок сохраняется. Именно поэтому ранговая корреляция Спирмена видит такие зависимости.

Подробнее про коэффициент корреляции Спирмена
Вместо самих значений переменных и в этой корреляции используются ранги — то есть позиции значений в отсортированном списке. Например, если , то ранги будут : — первое, — второе, — третье.
Если все значения различны (нет повторов), коэффициент Спирмена можно вычислить по формуле:
где:
- — разность рангов и ;
- — число наблюдений.
В более общем случае (при наличии одинаковых значений) используется следующий подход:
- Каждое значение заменяется на
средний ранг(например, если три значения совпадают и занимают места 4, 5 и 6, им присваивается ранг ). - После этого считается
обычный коэффициент Пирсона по этим рангам.
Именно так реализован method="spearman" в библиотеках pandas и scipy.
Пример: монотонная, но не линейная связь
Пусть
Мы видим, что зависимость монотонная, но она не линейна. Вычислим коэффициенты корреляции:
- — корреляция Пирсона обнаруживает связь,
- — корреляция Спирмена фиксирует идеальную монотонную зависимость.
В этом параграфе мы научились описывать, как случайные величины взаимодействуют друг с другом через
- совместные распределения;
- условные вероятности;
- ковариацию;
- корреляцию.
Эти инструменты позволяют не только обнаруживать зависимость, но и количественно её оценить. Они лежат в основе анализа связей между переменными и помогают построить более точные и интерпретируемые модели.
Во многом мы говорили именно про форму связи между величинами: совместные/условные распределения, ковариация и корреляция показывают, двигаются ли и вместе и насколько линейно. Но часто нам важнее другое: сколько неопределённости есть в самой величине и насколько различаются целые распределения, например предсказания модели и реальность.
Для таких вопросов удобен язык теории информации. В следующем параграфе мы введём энтропию, то есть меру неопределённости, её интуитивную шкалу — перплексию — и дивергенцию Кульбака-Лейблера как способ сравнивать распределения.
Увидим, почему эти величины естественно стыкуются с совместными/условными распределениями и почему они так популярны в машинном обучении: от решающих деревьев и языковых моделей до методов снижения размерности и визуализации данных.